Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r76630 - in branches/quickbook-dev: . boost boost/algorithm boost/algorithm/searching boost/algorithm/string/detail boost/asio boost/asio/detail boost/asio/detail/impl boost/asio/impl boost/asio/ip boost/asio/ip/detail boost/asio/ip/detail/impl boost/asio/ip/impl boost/asio/local boost/asio/local/detail boost/asio/local/detail/impl boost/asio/posix boost/asio/ssl boost/asio/ssl/detail boost/asio/ssl/detail/impl boost/asio/ssl/impl boost/asio/ssl/old boost/asio/ssl/old/detail boost/asio/windows boost/config/compiler boost/config/stdlib boost/container boost/container/allocator boost/container/detail boost/detail boost/exception boost/exception/detail boost/filesystem/v3 boost/fusion/view/iterator_range/detail boost/geometry boost/geometry/algorithms boost/geometry/algorithms/detail boost/geometry/algorithms/detail/equals boost/geometry/algorithms/detail/overlay boost/geometry/algorithms/detail/sections boost/geometry/arithmetic boost/geometry/core boost/geometry/extensions/algorithms boost/geometry/extensions/algorithms/buffer boost/geometry/extensions/algorithms/detail/overlay boost/geometry/extensions/arithmetic boost/geometry/extensions/astronomy/core boost/geometry/extensions/contrib boost/geometry/extensions/geometries boost/geometry/extensions/gis/geographic/core boost/geometry/extensions/gis/geographic/detail boost/geometry/extensions/gis/geographic/strategies boost/geometry/extensions/gis/io/shapelib boost/geometry/extensions/gis/io/veshape boost/geometry/extensions/gis/io/wkb boost/geometry/extensions/gis/io/wkb/detail boost/geometry/extensions/gis/latlong boost/geometry/extensions/gis/latlong/detail boost/geometry/extensions/gis/projections boost/geometry/extensions/gis/projections/impl boost/geometry/extensions/io/svg boost/geometry/extensions/iterators boost/geometry/extensions/multi/algorithms boost/geometry/extensions/nsphere boost/geometry/extensions/nsphere/algorithms boost/geometry/extensions/nsphere/core boost/geometry/extensions/nsphere/geometries boost/geometry/extensions/nsphere/geometries/concepts boost/geometry/extensions/strategies boost/geometry/extensions/util boost/geometry/extensions/views boost/geometry/geometries boost/geometry/geometries/adapted boost/geometry/geometries/adapted/boost_polygon boost/geometry/geometries/adapted/boost_range boost/geometry/geometries/concepts boost/geometry/geometries/register boost/geometry/io boost/geometry/io/dsv boost/geometry/io/wkt boost/geometry/io/wkt/detail boost/geometry/iterators boost/geometry/multi boost/geometry/multi/algorithms boost/geometry/multi/algorithms/detail boost/geometry/multi/algorithms/detail/overlay boost/geometry/multi/algorithms/detail/sections boost/geometry/multi/core boost/geometry/multi/geometries boost/geometry/multi/geometries/concepts boost/geometry/multi/geometries/register boost/geometry/multi/io/dsv boost/geometry/multi/io/wkt boost/geometry/multi/io/wkt/detail boost/geometry/multi/strategies/cartesian boost/geometry/multi/util boost/geometry/multi/views/detail boost/geometry/policies boost/geometry/policies/relate boost/geometry/strategies boost/geometry/strategies/agnostic boost/geometry/strategies/cartesian boost/geometry/strategies/concepts boost/geometry/strategies/spherical boost/geometry/strategies/transform boost/geometry/util boost/geometry/views boost/geometry/views/detail boost/graph boost/interprocess boost/interprocess/detail boost/interprocess/smart_ptr/detail boost/intrusive boost/intrusive/detail boost/locale/boundary boost/math boost/math/special_functions boost/math/special_functions/detail boost/math/tools boost/move boost/multi_array boost/numeric/ublas boost/numeric/ublas/detail boost/phoenix/stl/container boost/python boost/python/detail boost/regex/v4 boost/serialization boost/spirit/home/karma/directive boost/spirit/home/lex/qi boost/spirit/home/support boost/spirit/home/support/iterators boost/spirit/home/support/iterators/detail boost/spirit/repository/home/karma/nonterminal boost/test/impl boost/thread boost/thread/detail boost/thread/pthread boost/thread/v2 boost/thread/win32 boost/type_traits boost/unordered boost/unordered/detail boost/uuid libs/algorithm/example libs/algorithm/string/doc libs/algorithm/test libs/asio/doc libs/asio/doc/overview libs/asio/doc/requirements libs/asio/example/allocation libs/asio/example/buffers libs/asio/example/chat libs/asio/example/echo libs/asio/example/fork libs/asio/example/http/client libs/asio/example/http/doc_root libs/asio/example/http/server libs/asio/example/http/server2 libs/asio/example/http/server3 libs/asio/example/http/server4 libs/asio/example/icmp libs/asio/example/invocation libs/asio/example/iostreams libs/asio/example/local libs/asio/example/multicast libs/asio/example/nonblocking libs/asio/example/porthopper libs/asio/example/serialization libs/asio/example/services libs/asio/example/socks4 libs/asio/example/ssl libs/asio/example/timeouts libs/asio/example/timers libs/asio/example/tutorial libs/asio/example/tutorial/daytime1 libs/asio/example/tutorial/daytime2 libs/asio/example/tutorial/daytime3 libs/asio/example/tutorial/daytime4 libs/asio/example/tutorial/daytime5 libs/asio/example/tutorial/daytime6 libs/asio/example/tutorial/daytime7 libs/asio/example/tutorial/timer1 libs/asio/example/tutorial/timer2 libs/asio/example/tutorial/timer3 libs/asio/example/tutorial/timer4 libs/asio/example/tutorial/timer5 libs/asio/example/windows libs/asio/test libs/asio/test/archetypes libs/asio/test/ip libs/asio/test/latency libs/asio/test/local libs/asio/test/posix libs/asio/test/ssl libs/asio/test/windows libs/container/doc libs/conversion libs/conversion/doc libs/conversion/test libs/crc libs/crc/doc libs/exception/test libs/filesystem/v2/src libs/filesystem/v3/doc/src libs/filesystem/v3/src libs/filesystem/v3/test libs/filesystem/v3/test/msvc10 libs/geometry/doc libs/geometry/doc/concept libs/geometry/doc/doxy/doxygen_input/groups libs/geometry/doc/doxy/doxygen_input/pages libs/geometry/doc/doxy/doxygen_input/sourcecode libs/geometry/doc/generated libs/geometry/doc/html libs/geometry/doc/quickbook libs/geometry/doc/reference/algorithms libs/geometry/doc/reference/core libs/geometry/doc/reference/geometries libs/geometry/doc/reference/geometries/adapted libs/geometry/doc/reference/geometries/adapted/boost_polygon libs/geometry/doc/reference/geometries/adapted/boost_range libs/geometry/doc/reference/geometries/register libs/geometry/doc/reference/views libs/geometry/doc/src libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/sample libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/sample/src libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/sample/src/examples libs/geometry/doc/src/docutils/tools/implementation_status libs/geometry/doc/src/docutils/tools/implementation_status/tmp libs/geometry/doc/src/docutils/tools/support_status libs/geometry/doc/src/examples libs/geometry/doc/src/examples/algorithms libs/geometry/doc/src/examples/core libs/geometry/doc/src/examples/geometries libs/geometry/doc/src/examples/geometries/adapted libs/geometry/doc/src/examples/geometries/adapted/boost_range libs/geometry/doc/src/examples/geometries/register libs/geometry/doc/src/examples/views libs/geometry/example libs/geometry/example/with_external_libs libs/geometry/example_extensions libs/geometry/example_extensions/experimental libs/geometry/example_extensions/gis libs/geometry/example_extensions/gis/io/shapelib libs/geometry/example_extensions/gis/latlong libs/geometry/example_extensions/gis/projections libs/geometry/example_extensions/units libs/geometry/test libs/geometry/test/algorithms libs/geometry/test/algorithms/detail libs/geometry/test/algorithms/detail/sections libs/geometry/test/algorithms/overlay libs/geometry/test/algorithms/overlay/robustness libs/geometry/test/arithmetic libs/geometry/test/concepts libs/geometry/test/core libs/geometry/test/geometries libs/geometry/test/geometries/concepts libs/geometry/test/io libs/geometry/test/io/wkt libs/geometry/test/iterators libs/geometry/test/multi libs/geometry/test/multi/algorithms libs/geometry/test/multi/algorithms/overlay libs/geometry/test/multi/io libs/geometry/test/multi/io/dsv libs/geometry/test/multi/io/wkt libs/geometry/test/point_concept libs/geometry/test/policies libs/geometry/test/strategies libs/geometry/test/test_common libs/geometry/test/test_geometries libs/geometry/test/util libs/geometry/test/views libs/geometry/test_extensions libs/geometry/test_extensions/algorithms libs/geometry/test_extensions/algorithms/buffer libs/geometry/test_extensions/arithmetic libs/geometry/test_extensions/gis libs/geometry/test_extensions/gis/io/wkb libs/geometry/test_extensions/gis/latlong libs/geometry/test_extensions/gis/projections libs/geometry/test_extensions/index libs/geometry/test_extensions/iterators libs/geometry/test_extensions/nsphere libs/interprocess/doc libs/intrusive/doc libs/iostreams/src libs/iostreams/test libs/locale/src/posix libs/locale/test libs/math libs/math/doc/sf_and_dist libs/math/doc/sf_and_dist/html libs/math/doc/sf_and_dist/html/index libs/math/doc/sf_and_dist/html/math_toolkit libs/math/doc/sf_and_dist/html/math_toolkit/backgrounders libs/math/doc/sf_and_dist/html/math_toolkit/dist libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/overview libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/nccs_eg libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/neg_binom_eg libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/normal_example libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/st_eg libs/math/doc/sf_and_dist/html/math_toolkit/extern_c libs/math/doc/sf_and_dist/html/math_toolkit/main_overview libs/math/doc/sf_and_dist/html/math_toolkit/perf libs/math/doc/sf_and_dist/html/math_toolkit/policy libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial libs/math/doc/sf_and_dist/html/math_toolkit/special libs/math/doc/sf_and_dist/html/math_toolkit/special/bessel libs/math/doc/sf_and_dist/html/math_toolkit/special/ellint libs/math/doc/sf_and_dist/html/math_toolkit/special/expint libs/math/doc/sf_and_dist/html/math_toolkit/special/factorials libs/math/doc/sf_and_dist/html/math_toolkit/special/inv_hyper libs/math/doc/sf_and_dist/html/math_toolkit/special/powers libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_beta libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_erf libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_poly libs/math/doc/sf_and_dist/html/math_toolkit/special/sinc libs/math/doc/sf_and_dist/html/math_toolkit/special/zetas libs/math/doc/sf_and_dist/html/math_toolkit/status libs/math/doc/sf_and_dist/html/math_toolkit/toolkit libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals1 libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals2 libs/math/doc/sf_and_dist/html/math_toolkit/using_udt libs/math/doc/sf_and_dist/html/math_toolkit/utils libs/math/doc/sf_and_dist/html/math_toolkit/utils/fp_facets libs/math/doc/sf_and_dist/html/math_toolkit/utils/next_float libs/math/doc/sf_and_dist/html/math_toolkit/utils/rounding libs/math/test libs/move/doc libs/mpi/src/python libs/multi_array/doc libs/multi_array/doc/xml libs/proto/doc libs/proto/doc/reference libs/proto/doc/reference/concepts libs/proto/doc/reference/context libs/proto/doc/reference/functional libs/proto/doc/reference/functional/fusion libs/proto/doc/reference/functional/std libs/proto/doc/reference/transform libs/proto/example libs/python/doc/tutorial/doc libs/python/doc/tutorial/doc/html libs/python/doc/tutorial/doc/html/python libs/regex/build libs/spirit/doc libs/spirit/repository/example/karma libs/spirit/test libs/spirit/test/karma libs/thread/build libs/thread/doc libs/thread/src libs/thread/src/pthread libs/thread/src/win32 libs/thread/test libs/thread/test/sync libs/thread/test/threads libs/unordered/test/objects libs/unordered/test/unordered libs/uuid/test status tools tools/boostbook/xsl tools/build/v2/tools tools/quickbook tools/quickbook/src tools/regression/src
From: dnljms_at_[hidden]
Date: 2012-01-21 16:47:00


Author: danieljames
Date: 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
New Revision: 76630
URL: http://svn.boost.org/trac/boost/changeset/76630

Log:
Quickbook: Merge to quickbook-dev
Added:
   branches/quickbook-dev/boost/algorithm/clamp.hpp
      - copied unchanged from r76628, /trunk/boost/algorithm/clamp.hpp
   branches/quickbook-dev/boost/algorithm/searching/
      - copied from r76628, /trunk/boost/algorithm/searching/
   branches/quickbook-dev/boost/asio/basic_waitable_timer.hpp
      - copied unchanged from r76628, /trunk/boost/asio/basic_waitable_timer.hpp
   branches/quickbook-dev/boost/asio/detail/chrono_time_traits.hpp
      - copied unchanged from r76628, /trunk/boost/asio/detail/chrono_time_traits.hpp
   branches/quickbook-dev/boost/asio/detail/date_time_fwd.hpp
      - copied unchanged from r76628, /trunk/boost/asio/detail/date_time_fwd.hpp
   branches/quickbook-dev/boost/asio/detail/impl/timer_queue_ptime.ipp
      - copied unchanged from r76628, /trunk/boost/asio/detail/impl/timer_queue_ptime.ipp
   branches/quickbook-dev/boost/asio/detail/impl/win_object_handle_service.ipp
      - copied unchanged from r76628, /trunk/boost/asio/detail/impl/win_object_handle_service.ipp
   branches/quickbook-dev/boost/asio/detail/timer_queue_ptime.hpp
      - copied unchanged from r76628, /trunk/boost/asio/detail/timer_queue_ptime.hpp
   branches/quickbook-dev/boost/asio/detail/wait_op.hpp
      - copied unchanged from r76628, /trunk/boost/asio/detail/wait_op.hpp
   branches/quickbook-dev/boost/asio/detail/win_object_handle_service.hpp
      - copied unchanged from r76628, /trunk/boost/asio/detail/win_object_handle_service.hpp
   branches/quickbook-dev/boost/asio/high_resolution_timer.hpp
      - copied unchanged from r76628, /trunk/boost/asio/high_resolution_timer.hpp
   branches/quickbook-dev/boost/asio/steady_timer.hpp
      - copied unchanged from r76628, /trunk/boost/asio/steady_timer.hpp
   branches/quickbook-dev/boost/asio/system_timer.hpp
      - copied unchanged from r76628, /trunk/boost/asio/system_timer.hpp
   branches/quickbook-dev/boost/asio/wait_traits.hpp
      - copied unchanged from r76628, /trunk/boost/asio/wait_traits.hpp
   branches/quickbook-dev/boost/asio/waitable_timer_service.hpp
      - copied unchanged from r76628, /trunk/boost/asio/waitable_timer_service.hpp
   branches/quickbook-dev/boost/asio/windows/basic_object_handle.hpp
      - copied unchanged from r76628, /trunk/boost/asio/windows/basic_object_handle.hpp
   branches/quickbook-dev/boost/asio/windows/object_handle.hpp
      - copied unchanged from r76628, /trunk/boost/asio/windows/object_handle.hpp
   branches/quickbook-dev/boost/asio/windows/object_handle_service.hpp
      - copied unchanged from r76628, /trunk/boost/asio/windows/object_handle_service.hpp
   branches/quickbook-dev/boost/geometry/algorithms/detail/throw_on_empty_input.hpp
      - copied unchanged from r76628, /trunk/boost/geometry/algorithms/detail/throw_on_empty_input.hpp
   branches/quickbook-dev/boost/geometry/multi/algorithms/append.hpp
      - copied unchanged from r76628, /trunk/boost/geometry/multi/algorithms/append.hpp
   branches/quickbook-dev/boost/geometry/multi/io/dsv/
      - copied from r76628, /trunk/boost/geometry/multi/io/dsv/
   branches/quickbook-dev/boost/thread/cv_status.hpp
      - copied unchanged from r76628, /trunk/boost/thread/cv_status.hpp
   branches/quickbook-dev/boost/thread/v2/
      - copied from r76628, /trunk/boost/thread/v2/
   branches/quickbook-dev/libs/algorithm/example/
      - copied from r76628, /trunk/libs/algorithm/example/
   branches/quickbook-dev/libs/algorithm/test/
      - copied from r76628, /trunk/libs/algorithm/test/
   branches/quickbook-dev/libs/asio/doc/requirements/ObjectHandleService.qbk
      - copied unchanged from r76628, /trunk/libs/asio/doc/requirements/ObjectHandleService.qbk
   branches/quickbook-dev/libs/asio/doc/requirements/WaitTraits.qbk
      - copied unchanged from r76628, /trunk/libs/asio/doc/requirements/WaitTraits.qbk
   branches/quickbook-dev/libs/asio/doc/requirements/WaitableTimerService.qbk
      - copied unchanged from r76628, /trunk/libs/asio/doc/requirements/WaitableTimerService.qbk
   branches/quickbook-dev/libs/asio/test/basic_waitable_timer.cpp
      - copied unchanged from r76628, /trunk/libs/asio/test/basic_waitable_timer.cpp
   branches/quickbook-dev/libs/asio/test/high_resolution_timer.cpp
      - copied unchanged from r76628, /trunk/libs/asio/test/high_resolution_timer.cpp
   branches/quickbook-dev/libs/asio/test/steady_timer.cpp
      - copied unchanged from r76628, /trunk/libs/asio/test/steady_timer.cpp
   branches/quickbook-dev/libs/asio/test/system_timer.cpp
      - copied unchanged from r76628, /trunk/libs/asio/test/system_timer.cpp
   branches/quickbook-dev/libs/asio/test/wait_traits.cpp
      - copied unchanged from r76628, /trunk/libs/asio/test/wait_traits.cpp
   branches/quickbook-dev/libs/asio/test/waitable_timer_service.cpp
      - copied unchanged from r76628, /trunk/libs/asio/test/waitable_timer_service.cpp
   branches/quickbook-dev/libs/asio/test/windows/basic_object_handle.cpp
      - copied unchanged from r76628, /trunk/libs/asio/test/windows/basic_object_handle.cpp
   branches/quickbook-dev/libs/asio/test/windows/object_handle.cpp
      - copied unchanged from r76628, /trunk/libs/asio/test/windows/object_handle.cpp
   branches/quickbook-dev/libs/asio/test/windows/object_handle_service.cpp
      - copied unchanged from r76628, /trunk/libs/asio/test/windows/object_handle_service.cpp
   branches/quickbook-dev/libs/conversion/test/lexical_cast_pointers_test.cpp
      - copied unchanged from r76628, /trunk/libs/conversion/test/lexical_cast_pointers_test.cpp
   branches/quickbook-dev/libs/crc/doc/
      - copied from r76628, /trunk/libs/crc/doc/
   branches/quickbook-dev/libs/filesystem/v3/doc/src/
      - copied from r76628, /trunk/libs/filesystem/v3/doc/src/
   branches/quickbook-dev/libs/geometry/doc/generated/append_status.qbk
      - copied unchanged from r76628, /trunk/libs/geometry/doc/generated/append_status.qbk
   branches/quickbook-dev/libs/geometry/doc/generated/clear_status.qbk
      - copied unchanged from r76628, /trunk/libs/geometry/doc/generated/clear_status.qbk
   branches/quickbook-dev/libs/geometry/doc/generated/convert_status.qbk
      - copied unchanged from r76628, /trunk/libs/geometry/doc/generated/convert_status.qbk
   branches/quickbook-dev/libs/geometry/doc/generated/convex_hull_status.qbk
      - copied unchanged from r76628, /trunk/libs/geometry/doc/generated/convex_hull_status.qbk
   branches/quickbook-dev/libs/geometry/doc/release_notes.qbk
      - copied unchanged from r76628, /trunk/libs/geometry/doc/release_notes.qbk
   branches/quickbook-dev/libs/geometry/test/multi/io/dsv/
      - copied from r76628, /trunk/libs/geometry/test/multi/io/dsv/
   branches/quickbook-dev/libs/geometry/test_extensions/algorithms/buffer/Jamfile.v2
      - copied unchanged from r76628, /trunk/libs/geometry/test_extensions/algorithms/buffer/Jamfile.v2
   branches/quickbook-dev/libs/math/test/pch_light.hpp
      - copied unchanged from r76628, /trunk/libs/math/test/pch_light.hpp
   branches/quickbook-dev/libs/math/test/table_type.hpp
      - copied unchanged from r76628, /trunk/libs/math/test/table_type.hpp
   branches/quickbook-dev/libs/proto/doc/reference/context.xml
      - copied unchanged from r76628, /trunk/libs/proto/doc/reference/context.xml
   branches/quickbook-dev/libs/proto/doc/reference/transform.xml
      - copied unchanged from r76628, /trunk/libs/proto/doc/reference/transform.xml
   branches/quickbook-dev/libs/spirit/test/karma/regression_center_alignment.cpp
      - copied unchanged from r76628, /trunk/libs/spirit/test/karma/regression_center_alignment.cpp
   branches/quickbook-dev/libs/spirit/test/karma/regression_container_variant_sequence.cpp
      - copied unchanged from r76628, /trunk/libs/spirit/test/karma/regression_container_variant_sequence.cpp
   branches/quickbook-dev/libs/thread/src/future.cpp
      - copied unchanged from r76628, /trunk/libs/thread/src/future.cpp
   branches/quickbook-dev/libs/thread/test/sync/
      - copied from r76628, /trunk/libs/thread/test/sync/
   branches/quickbook-dev/libs/thread/test/test_2309.cpp
      - copied unchanged from r76628, /trunk/libs/thread/test/test_2309.cpp
   branches/quickbook-dev/libs/thread/test/test_2501.cpp
      - copied unchanged from r76628, /trunk/libs/thread/test/test_2501.cpp
   branches/quickbook-dev/libs/thread/test/test_2741.cpp
      - copied unchanged from r76628, /trunk/libs/thread/test/test_2741.cpp
   branches/quickbook-dev/libs/thread/test/test_4521.cpp
      - copied unchanged from r76628, /trunk/libs/thread/test/test_4521.cpp
   branches/quickbook-dev/libs/thread/test/test_4648.cpp
      - copied unchanged from r76628, /trunk/libs/thread/test/test_4648.cpp
   branches/quickbook-dev/libs/thread/test/test_4882.cpp
      - copied unchanged from r76628, /trunk/libs/thread/test/test_4882.cpp
   branches/quickbook-dev/libs/thread/test/test_5351.cpp
      - copied unchanged from r76628, /trunk/libs/thread/test/test_5351.cpp
   branches/quickbook-dev/libs/thread/test/test_5502.cpp
      - copied unchanged from r76628, /trunk/libs/thread/test/test_5502.cpp
   branches/quickbook-dev/libs/thread/test/test_5542_1.cpp
      - copied unchanged from r76628, /trunk/libs/thread/test/test_5542_1.cpp
   branches/quickbook-dev/libs/thread/test/test_5542_2.cpp
      - copied unchanged from r76628, /trunk/libs/thread/test/test_5542_2.cpp
   branches/quickbook-dev/libs/thread/test/test_5542_3.cpp
      - copied unchanged from r76628, /trunk/libs/thread/test/test_5542_3.cpp
   branches/quickbook-dev/libs/thread/test/test_5891.cpp
      - copied unchanged from r76628, /trunk/libs/thread/test/test_5891.cpp
   branches/quickbook-dev/libs/thread/test/test_6130.cpp
      - copied unchanged from r76628, /trunk/libs/thread/test/test_6130.cpp
   branches/quickbook-dev/libs/thread/test/test_6170.cpp
      - copied unchanged from r76628, /trunk/libs/thread/test/test_6170.cpp
   branches/quickbook-dev/libs/thread/test/test_6174.cpp
      - copied unchanged from r76628, /trunk/libs/thread/test/test_6174.cpp
   branches/quickbook-dev/libs/thread/test/threads/
      - copied from r76628, /trunk/libs/thread/test/threads/
Removed:
   branches/quickbook-dev/boost/asio/detail/impl/timer_queue.ipp
   branches/quickbook-dev/boost/asio/detail/timer_op.hpp
   branches/quickbook-dev/boost/geometry/multi/util/
Properties modified:
   branches/quickbook-dev/ (props changed)
   branches/quickbook-dev/boost/interprocess/ (props changed)
   branches/quickbook-dev/boost/intrusive/ (props changed)
   branches/quickbook-dev/boost/math/ (props changed)
   branches/quickbook-dev/boost/numeric/ublas/ (props changed)
   branches/quickbook-dev/boost/serialization/ (props changed)
   branches/quickbook-dev/libs/math/ (props changed)
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/faq.html (contents, props changed)
   branches/quickbook-dev/status/explicit-failures-markup.xml (contents, props changed)
   branches/quickbook-dev/tools/ (props changed)
   branches/quickbook-dev/tools/quickbook/ (props changed)
Binary files modified:
   branches/quickbook-dev/libs/geometry/example/ml02_distance_strategy.cpp
Text files modified:
   branches/quickbook-dev/boost/algorithm/string/detail/case_conv.hpp | 6
   branches/quickbook-dev/boost/asio.hpp | 8
   branches/quickbook-dev/boost/asio/basic_datagram_socket.hpp | 2
   branches/quickbook-dev/boost/asio/basic_deadline_timer.hpp | 2
   branches/quickbook-dev/boost/asio/basic_io_object.hpp | 2
   branches/quickbook-dev/boost/asio/basic_raw_socket.hpp | 2
   branches/quickbook-dev/boost/asio/basic_seq_packet_socket.hpp | 2
   branches/quickbook-dev/boost/asio/basic_serial_port.hpp | 2
   branches/quickbook-dev/boost/asio/basic_signal_set.hpp | 2
   branches/quickbook-dev/boost/asio/basic_socket.hpp | 2
   branches/quickbook-dev/boost/asio/basic_socket_acceptor.hpp | 2
   branches/quickbook-dev/boost/asio/basic_socket_iostream.hpp | 2
   branches/quickbook-dev/boost/asio/basic_socket_streambuf.hpp | 2
   branches/quickbook-dev/boost/asio/basic_stream_socket.hpp | 2
   branches/quickbook-dev/boost/asio/basic_streambuf.hpp | 2
   branches/quickbook-dev/boost/asio/basic_streambuf_fwd.hpp | 2
   branches/quickbook-dev/boost/asio/buffer.hpp | 2
   branches/quickbook-dev/boost/asio/buffered_read_stream.hpp | 2
   branches/quickbook-dev/boost/asio/buffered_read_stream_fwd.hpp | 2
   branches/quickbook-dev/boost/asio/buffered_stream.hpp | 2
   branches/quickbook-dev/boost/asio/buffered_stream_fwd.hpp | 2
   branches/quickbook-dev/boost/asio/buffered_write_stream.hpp | 5
   branches/quickbook-dev/boost/asio/buffered_write_stream_fwd.hpp | 2
   branches/quickbook-dev/boost/asio/buffers_iterator.hpp | 2
   branches/quickbook-dev/boost/asio/completion_condition.hpp | 2
   branches/quickbook-dev/boost/asio/connect.hpp | 2
   branches/quickbook-dev/boost/asio/datagram_socket_service.hpp | 2
   branches/quickbook-dev/boost/asio/deadline_timer.hpp | 2
   branches/quickbook-dev/boost/asio/deadline_timer_service.hpp | 3
   branches/quickbook-dev/boost/asio/detail/array.hpp | 2
   branches/quickbook-dev/boost/asio/detail/array_fwd.hpp | 2
   branches/quickbook-dev/boost/asio/detail/atomic_count.hpp | 2
   branches/quickbook-dev/boost/asio/detail/base_from_completion_cond.hpp | 2
   branches/quickbook-dev/boost/asio/detail/bind_handler.hpp | 2
   branches/quickbook-dev/boost/asio/detail/buffer_resize_guard.hpp | 2
   branches/quickbook-dev/boost/asio/detail/buffer_sequence_adapter.hpp | 2
   branches/quickbook-dev/boost/asio/detail/buffered_stream_storage.hpp | 2
   branches/quickbook-dev/boost/asio/detail/call_stack.hpp | 2
   branches/quickbook-dev/boost/asio/detail/completion_handler.hpp | 2
   branches/quickbook-dev/boost/asio/detail/config.hpp | 33
   branches/quickbook-dev/boost/asio/detail/consuming_buffers.hpp | 2
   branches/quickbook-dev/boost/asio/detail/deadline_timer_service.hpp | 28
   branches/quickbook-dev/boost/asio/detail/dependent_type.hpp | 2
   branches/quickbook-dev/boost/asio/detail/descriptor_ops.hpp | 2
   branches/quickbook-dev/boost/asio/detail/descriptor_read_op.hpp | 2
   branches/quickbook-dev/boost/asio/detail/descriptor_write_op.hpp | 2
   branches/quickbook-dev/boost/asio/detail/dev_poll_reactor.hpp | 6
   branches/quickbook-dev/boost/asio/detail/dev_poll_reactor_fwd.hpp | 2
   branches/quickbook-dev/boost/asio/detail/epoll_reactor.hpp | 6
   branches/quickbook-dev/boost/asio/detail/epoll_reactor_fwd.hpp | 2
   branches/quickbook-dev/boost/asio/detail/event.hpp | 2
   branches/quickbook-dev/boost/asio/detail/eventfd_select_interrupter.hpp | 2
   branches/quickbook-dev/boost/asio/detail/fd_set_adapter.hpp | 2
   branches/quickbook-dev/boost/asio/detail/fenced_block.hpp | 2
   branches/quickbook-dev/boost/asio/detail/gcc_arm_fenced_block.hpp | 2
   branches/quickbook-dev/boost/asio/detail/gcc_hppa_fenced_block.hpp | 2
   branches/quickbook-dev/boost/asio/detail/gcc_sync_fenced_block.hpp | 2
   branches/quickbook-dev/boost/asio/detail/gcc_x86_fenced_block.hpp | 2
   branches/quickbook-dev/boost/asio/detail/handler_alloc_helpers.hpp | 2
   branches/quickbook-dev/boost/asio/detail/handler_invoke_helpers.hpp | 2
   branches/quickbook-dev/boost/asio/detail/handler_tracking.hpp | 2
   branches/quickbook-dev/boost/asio/detail/handler_type_requirements.hpp | 2
   branches/quickbook-dev/boost/asio/detail/hash_map.hpp | 2
   branches/quickbook-dev/boost/asio/detail/impl/descriptor_ops.ipp | 2
   branches/quickbook-dev/boost/asio/detail/impl/dev_poll_reactor.hpp | 4
   branches/quickbook-dev/boost/asio/detail/impl/dev_poll_reactor.ipp | 2
   branches/quickbook-dev/boost/asio/detail/impl/epoll_reactor.hpp | 4
   branches/quickbook-dev/boost/asio/detail/impl/epoll_reactor.ipp | 2
   branches/quickbook-dev/boost/asio/detail/impl/eventfd_select_interrupter.ipp | 2
   branches/quickbook-dev/boost/asio/detail/impl/handler_tracking.ipp | 2
   branches/quickbook-dev/boost/asio/detail/impl/kqueue_reactor.hpp | 4
   branches/quickbook-dev/boost/asio/detail/impl/kqueue_reactor.ipp | 6
   branches/quickbook-dev/boost/asio/detail/impl/pipe_select_interrupter.ipp | 2
   branches/quickbook-dev/boost/asio/detail/impl/posix_event.ipp | 2
   branches/quickbook-dev/boost/asio/detail/impl/posix_mutex.ipp | 2
   branches/quickbook-dev/boost/asio/detail/impl/posix_thread.ipp | 2
   branches/quickbook-dev/boost/asio/detail/impl/posix_tss_ptr.ipp | 2
   branches/quickbook-dev/boost/asio/detail/impl/reactive_descriptor_service.ipp | 2
   branches/quickbook-dev/boost/asio/detail/impl/reactive_serial_port_service.ipp | 2
   branches/quickbook-dev/boost/asio/detail/impl/reactive_socket_service_base.ipp | 2
   branches/quickbook-dev/boost/asio/detail/impl/resolver_service_base.ipp | 2
   branches/quickbook-dev/boost/asio/detail/impl/select_reactor.hpp | 4
   branches/quickbook-dev/boost/asio/detail/impl/select_reactor.ipp | 2
   branches/quickbook-dev/boost/asio/detail/impl/service_registry.hpp | 2
   branches/quickbook-dev/boost/asio/detail/impl/service_registry.ipp | 2
   branches/quickbook-dev/boost/asio/detail/impl/signal_set_service.ipp | 2
   branches/quickbook-dev/boost/asio/detail/impl/socket_ops.ipp | 6
   branches/quickbook-dev/boost/asio/detail/impl/socket_select_interrupter.ipp | 2
   branches/quickbook-dev/boost/asio/detail/impl/strand_service.hpp | 2
   branches/quickbook-dev/boost/asio/detail/impl/strand_service.ipp | 2
   branches/quickbook-dev/boost/asio/detail/impl/task_io_service.hpp | 2
   branches/quickbook-dev/boost/asio/detail/impl/task_io_service.ipp | 7
   branches/quickbook-dev/boost/asio/detail/impl/throw_error.ipp | 2
   branches/quickbook-dev/boost/asio/detail/impl/timer_queue_set.ipp | 2
   branches/quickbook-dev/boost/asio/detail/impl/win_event.ipp | 2
   branches/quickbook-dev/boost/asio/detail/impl/win_iocp_handle_service.ipp | 2
   branches/quickbook-dev/boost/asio/detail/impl/win_iocp_io_service.hpp | 4
   branches/quickbook-dev/boost/asio/detail/impl/win_iocp_io_service.ipp | 10
   branches/quickbook-dev/boost/asio/detail/impl/win_iocp_serial_port_service.ipp | 2
   branches/quickbook-dev/boost/asio/detail/impl/win_iocp_socket_service_base.ipp | 2
   branches/quickbook-dev/boost/asio/detail/impl/win_mutex.ipp | 2
   branches/quickbook-dev/boost/asio/detail/impl/win_static_mutex.ipp | 2
   branches/quickbook-dev/boost/asio/detail/impl/win_thread.ipp | 2
   branches/quickbook-dev/boost/asio/detail/impl/win_tss_ptr.ipp | 2
   branches/quickbook-dev/boost/asio/detail/impl/winsock_init.ipp | 2
   branches/quickbook-dev/boost/asio/detail/io_control.hpp | 2
   branches/quickbook-dev/boost/asio/detail/kqueue_reactor.hpp | 6
   branches/quickbook-dev/boost/asio/detail/kqueue_reactor_fwd.hpp | 2
   branches/quickbook-dev/boost/asio/detail/local_free_on_block_exit.hpp | 2
   branches/quickbook-dev/boost/asio/detail/macos_fenced_block.hpp | 2
   branches/quickbook-dev/boost/asio/detail/mutex.hpp | 2
   branches/quickbook-dev/boost/asio/detail/noncopyable.hpp | 2
   branches/quickbook-dev/boost/asio/detail/null_event.hpp | 2
   branches/quickbook-dev/boost/asio/detail/null_fenced_block.hpp | 2
   branches/quickbook-dev/boost/asio/detail/null_mutex.hpp | 2
   branches/quickbook-dev/boost/asio/detail/null_signal_blocker.hpp | 2
   branches/quickbook-dev/boost/asio/detail/null_static_mutex.hpp | 2
   branches/quickbook-dev/boost/asio/detail/null_thread.hpp | 2
   branches/quickbook-dev/boost/asio/detail/null_tss_ptr.hpp | 2
   branches/quickbook-dev/boost/asio/detail/object_pool.hpp | 2
   branches/quickbook-dev/boost/asio/detail/old_win_sdk_compat.hpp | 2
   branches/quickbook-dev/boost/asio/detail/op_queue.hpp | 2
   branches/quickbook-dev/boost/asio/detail/operation.hpp | 2
   branches/quickbook-dev/boost/asio/detail/pipe_select_interrupter.hpp | 2
   branches/quickbook-dev/boost/asio/detail/pop_options.hpp | 2
   branches/quickbook-dev/boost/asio/detail/posix_event.hpp | 2
   branches/quickbook-dev/boost/asio/detail/posix_fd_set_adapter.hpp | 2
   branches/quickbook-dev/boost/asio/detail/posix_mutex.hpp | 2
   branches/quickbook-dev/boost/asio/detail/posix_signal_blocker.hpp | 2
   branches/quickbook-dev/boost/asio/detail/posix_static_mutex.hpp | 2
   branches/quickbook-dev/boost/asio/detail/posix_thread.hpp | 2
   branches/quickbook-dev/boost/asio/detail/posix_tss_ptr.hpp | 2
   branches/quickbook-dev/boost/asio/detail/push_options.hpp | 2
   branches/quickbook-dev/boost/asio/detail/reactive_descriptor_service.hpp | 2
   branches/quickbook-dev/boost/asio/detail/reactive_null_buffers_op.hpp | 2
   branches/quickbook-dev/boost/asio/detail/reactive_serial_port_service.hpp | 2
   branches/quickbook-dev/boost/asio/detail/reactive_socket_accept_op.hpp | 2
   branches/quickbook-dev/boost/asio/detail/reactive_socket_connect_op.hpp | 2
   branches/quickbook-dev/boost/asio/detail/reactive_socket_recv_op.hpp | 2
   branches/quickbook-dev/boost/asio/detail/reactive_socket_recvfrom_op.hpp | 2
   branches/quickbook-dev/boost/asio/detail/reactive_socket_recvmsg_op.hpp | 2
   branches/quickbook-dev/boost/asio/detail/reactive_socket_send_op.hpp | 2
   branches/quickbook-dev/boost/asio/detail/reactive_socket_sendto_op.hpp | 2
   branches/quickbook-dev/boost/asio/detail/reactive_socket_service.hpp | 2
   branches/quickbook-dev/boost/asio/detail/reactive_socket_service_base.hpp | 2
   branches/quickbook-dev/boost/asio/detail/reactor.hpp | 2
   branches/quickbook-dev/boost/asio/detail/reactor_fwd.hpp | 2
   branches/quickbook-dev/boost/asio/detail/reactor_op.hpp | 2
   branches/quickbook-dev/boost/asio/detail/reactor_op_queue.hpp | 2
   branches/quickbook-dev/boost/asio/detail/regex_fwd.hpp | 2
   branches/quickbook-dev/boost/asio/detail/resolve_endpoint_op.hpp | 2
   branches/quickbook-dev/boost/asio/detail/resolve_op.hpp | 2
   branches/quickbook-dev/boost/asio/detail/resolver_service.hpp | 2
   branches/quickbook-dev/boost/asio/detail/resolver_service_base.hpp | 2
   branches/quickbook-dev/boost/asio/detail/scoped_lock.hpp | 2
   branches/quickbook-dev/boost/asio/detail/scoped_ptr.hpp | 2
   branches/quickbook-dev/boost/asio/detail/select_interrupter.hpp | 2
   branches/quickbook-dev/boost/asio/detail/select_reactor.hpp | 6
   branches/quickbook-dev/boost/asio/detail/select_reactor_fwd.hpp | 2
   branches/quickbook-dev/boost/asio/detail/service_registry.hpp | 2
   branches/quickbook-dev/boost/asio/detail/service_registry_fwd.hpp | 2
   branches/quickbook-dev/boost/asio/detail/shared_ptr.hpp | 2
   branches/quickbook-dev/boost/asio/detail/signal_blocker.hpp | 2
   branches/quickbook-dev/boost/asio/detail/signal_handler.hpp | 2
   branches/quickbook-dev/boost/asio/detail/signal_init.hpp | 2
   branches/quickbook-dev/boost/asio/detail/signal_op.hpp | 2
   branches/quickbook-dev/boost/asio/detail/signal_set_service.hpp | 2
   branches/quickbook-dev/boost/asio/detail/socket_holder.hpp | 2
   branches/quickbook-dev/boost/asio/detail/socket_ops.hpp | 2
   branches/quickbook-dev/boost/asio/detail/socket_option.hpp | 2
   branches/quickbook-dev/boost/asio/detail/socket_select_interrupter.hpp | 2
   branches/quickbook-dev/boost/asio/detail/socket_types.hpp | 2
   branches/quickbook-dev/boost/asio/detail/solaris_fenced_block.hpp | 2
   branches/quickbook-dev/boost/asio/detail/static_mutex.hpp | 2
   branches/quickbook-dev/boost/asio/detail/strand_service.hpp | 2
   branches/quickbook-dev/boost/asio/detail/task_io_service.hpp | 4
   branches/quickbook-dev/boost/asio/detail/task_io_service_fwd.hpp | 2
   branches/quickbook-dev/boost/asio/detail/task_io_service_operation.hpp | 2
   branches/quickbook-dev/boost/asio/detail/thread.hpp | 2
   branches/quickbook-dev/boost/asio/detail/throw_error.hpp | 2
   branches/quickbook-dev/boost/asio/detail/timer_queue.hpp | 141
   branches/quickbook-dev/boost/asio/detail/timer_queue_base.hpp | 2
   branches/quickbook-dev/boost/asio/detail/timer_queue_fwd.hpp | 2
   branches/quickbook-dev/boost/asio/detail/timer_queue_set.hpp | 2
   branches/quickbook-dev/boost/asio/detail/timer_scheduler.hpp | 2
   branches/quickbook-dev/boost/asio/detail/timer_scheduler_fwd.hpp | 2
   branches/quickbook-dev/boost/asio/detail/tss_ptr.hpp | 2
   branches/quickbook-dev/boost/asio/detail/wait_handler.hpp | 9
   branches/quickbook-dev/boost/asio/detail/weak_ptr.hpp | 2
   branches/quickbook-dev/boost/asio/detail/win_event.hpp | 2
   branches/quickbook-dev/boost/asio/detail/win_fd_set_adapter.hpp | 2
   branches/quickbook-dev/boost/asio/detail/win_fenced_block.hpp | 2
   branches/quickbook-dev/boost/asio/detail/win_iocp_handle_read_op.hpp | 2
   branches/quickbook-dev/boost/asio/detail/win_iocp_handle_service.hpp | 2
   branches/quickbook-dev/boost/asio/detail/win_iocp_handle_write_op.hpp | 2
   branches/quickbook-dev/boost/asio/detail/win_iocp_io_service.hpp | 10
   branches/quickbook-dev/boost/asio/detail/win_iocp_io_service_fwd.hpp | 2
   branches/quickbook-dev/boost/asio/detail/win_iocp_null_buffers_op.hpp | 2
   branches/quickbook-dev/boost/asio/detail/win_iocp_operation.hpp | 3
   branches/quickbook-dev/boost/asio/detail/win_iocp_overlapped_op.hpp | 2
   branches/quickbook-dev/boost/asio/detail/win_iocp_overlapped_ptr.hpp | 2
   branches/quickbook-dev/boost/asio/detail/win_iocp_serial_port_service.hpp | 2
   branches/quickbook-dev/boost/asio/detail/win_iocp_socket_accept_op.hpp | 2
   branches/quickbook-dev/boost/asio/detail/win_iocp_socket_recv_op.hpp | 2
   branches/quickbook-dev/boost/asio/detail/win_iocp_socket_recvfrom_op.hpp | 2
   branches/quickbook-dev/boost/asio/detail/win_iocp_socket_recvmsg_op.hpp | 2
   branches/quickbook-dev/boost/asio/detail/win_iocp_socket_send_op.hpp | 2
   branches/quickbook-dev/boost/asio/detail/win_iocp_socket_service.hpp | 2
   branches/quickbook-dev/boost/asio/detail/win_iocp_socket_service_base.hpp | 2
   branches/quickbook-dev/boost/asio/detail/win_mutex.hpp | 2
   branches/quickbook-dev/boost/asio/detail/win_static_mutex.hpp | 2
   branches/quickbook-dev/boost/asio/detail/win_thread.hpp | 2
   branches/quickbook-dev/boost/asio/detail/win_tss_ptr.hpp | 2
   branches/quickbook-dev/boost/asio/detail/wince_thread.hpp | 2
   branches/quickbook-dev/boost/asio/detail/winsock_init.hpp | 2
   branches/quickbook-dev/boost/asio/detail/wrapped_handler.hpp | 2
   branches/quickbook-dev/boost/asio/error.hpp | 2
   branches/quickbook-dev/boost/asio/handler_alloc_hook.hpp | 2
   branches/quickbook-dev/boost/asio/handler_invoke_hook.hpp | 2
   branches/quickbook-dev/boost/asio/impl/connect.hpp | 2
   branches/quickbook-dev/boost/asio/impl/error.ipp | 2
   branches/quickbook-dev/boost/asio/impl/io_service.hpp | 2
   branches/quickbook-dev/boost/asio/impl/io_service.ipp | 2
   branches/quickbook-dev/boost/asio/impl/read.hpp | 2
   branches/quickbook-dev/boost/asio/impl/read_at.hpp | 2
   branches/quickbook-dev/boost/asio/impl/read_until.hpp | 2
   branches/quickbook-dev/boost/asio/impl/serial_port_base.hpp | 2
   branches/quickbook-dev/boost/asio/impl/serial_port_base.ipp | 2
   branches/quickbook-dev/boost/asio/impl/src.cpp | 2
   branches/quickbook-dev/boost/asio/impl/src.hpp | 5
   branches/quickbook-dev/boost/asio/impl/write.hpp | 2
   branches/quickbook-dev/boost/asio/impl/write_at.hpp | 2
   branches/quickbook-dev/boost/asio/io_service.hpp | 2
   branches/quickbook-dev/boost/asio/ip/address.hpp | 2
   branches/quickbook-dev/boost/asio/ip/address_v4.hpp | 2
   branches/quickbook-dev/boost/asio/ip/address_v6.hpp | 2
   branches/quickbook-dev/boost/asio/ip/basic_endpoint.hpp | 2
   branches/quickbook-dev/boost/asio/ip/basic_resolver.hpp | 2
   branches/quickbook-dev/boost/asio/ip/basic_resolver_entry.hpp | 2
   branches/quickbook-dev/boost/asio/ip/basic_resolver_iterator.hpp | 2
   branches/quickbook-dev/boost/asio/ip/basic_resolver_query.hpp | 2
   branches/quickbook-dev/boost/asio/ip/detail/endpoint.hpp | 2
   branches/quickbook-dev/boost/asio/ip/detail/impl/endpoint.ipp | 2
   branches/quickbook-dev/boost/asio/ip/detail/socket_option.hpp | 2
   branches/quickbook-dev/boost/asio/ip/host_name.hpp | 2
   branches/quickbook-dev/boost/asio/ip/icmp.hpp | 2
   branches/quickbook-dev/boost/asio/ip/impl/address.hpp | 2
   branches/quickbook-dev/boost/asio/ip/impl/address.ipp | 2
   branches/quickbook-dev/boost/asio/ip/impl/address_v4.hpp | 2
   branches/quickbook-dev/boost/asio/ip/impl/address_v4.ipp | 2
   branches/quickbook-dev/boost/asio/ip/impl/address_v6.hpp | 2
   branches/quickbook-dev/boost/asio/ip/impl/address_v6.ipp | 2
   branches/quickbook-dev/boost/asio/ip/impl/basic_endpoint.hpp | 2
   branches/quickbook-dev/boost/asio/ip/impl/host_name.ipp | 2
   branches/quickbook-dev/boost/asio/ip/multicast.hpp | 2
   branches/quickbook-dev/boost/asio/ip/resolver_query_base.hpp | 2
   branches/quickbook-dev/boost/asio/ip/resolver_service.hpp | 2
   branches/quickbook-dev/boost/asio/ip/tcp.hpp | 2
   branches/quickbook-dev/boost/asio/ip/udp.hpp | 2
   branches/quickbook-dev/boost/asio/ip/unicast.hpp | 2
   branches/quickbook-dev/boost/asio/ip/v6_only.hpp | 2
   branches/quickbook-dev/boost/asio/is_read_buffered.hpp | 2
   branches/quickbook-dev/boost/asio/is_write_buffered.hpp | 2
   branches/quickbook-dev/boost/asio/local/basic_endpoint.hpp | 2
   branches/quickbook-dev/boost/asio/local/connect_pair.hpp | 2
   branches/quickbook-dev/boost/asio/local/datagram_protocol.hpp | 2
   branches/quickbook-dev/boost/asio/local/detail/endpoint.hpp | 2
   branches/quickbook-dev/boost/asio/local/detail/impl/endpoint.ipp | 2
   branches/quickbook-dev/boost/asio/local/stream_protocol.hpp | 2
   branches/quickbook-dev/boost/asio/placeholders.hpp | 2
   branches/quickbook-dev/boost/asio/posix/basic_descriptor.hpp | 2
   branches/quickbook-dev/boost/asio/posix/basic_stream_descriptor.hpp | 2
   branches/quickbook-dev/boost/asio/posix/descriptor_base.hpp | 2
   branches/quickbook-dev/boost/asio/posix/stream_descriptor.hpp | 2
   branches/quickbook-dev/boost/asio/posix/stream_descriptor_service.hpp | 2
   branches/quickbook-dev/boost/asio/raw_socket_service.hpp | 2
   branches/quickbook-dev/boost/asio/read.hpp | 2
   branches/quickbook-dev/boost/asio/read_at.hpp | 2
   branches/quickbook-dev/boost/asio/read_until.hpp | 2
   branches/quickbook-dev/boost/asio/seq_packet_socket_service.hpp | 2
   branches/quickbook-dev/boost/asio/serial_port.hpp | 2
   branches/quickbook-dev/boost/asio/serial_port_base.hpp | 2
   branches/quickbook-dev/boost/asio/serial_port_service.hpp | 2
   branches/quickbook-dev/boost/asio/signal_set.hpp | 2
   branches/quickbook-dev/boost/asio/signal_set_service.hpp | 2
   branches/quickbook-dev/boost/asio/socket_acceptor_service.hpp | 2
   branches/quickbook-dev/boost/asio/socket_base.hpp | 2
   branches/quickbook-dev/boost/asio/ssl.hpp | 2
   branches/quickbook-dev/boost/asio/ssl/basic_context.hpp | 2
   branches/quickbook-dev/boost/asio/ssl/context.hpp | 2
   branches/quickbook-dev/boost/asio/ssl/context_base.hpp | 2
   branches/quickbook-dev/boost/asio/ssl/context_service.hpp | 2
   branches/quickbook-dev/boost/asio/ssl/detail/engine.hpp | 2
   branches/quickbook-dev/boost/asio/ssl/detail/handshake_op.hpp | 2
   branches/quickbook-dev/boost/asio/ssl/detail/impl/engine.ipp | 2
   branches/quickbook-dev/boost/asio/ssl/detail/impl/openssl_init.ipp | 2
   branches/quickbook-dev/boost/asio/ssl/detail/io.hpp | 2
   branches/quickbook-dev/boost/asio/ssl/detail/openssl_init.hpp | 2
   branches/quickbook-dev/boost/asio/ssl/detail/openssl_types.hpp | 2
   branches/quickbook-dev/boost/asio/ssl/detail/password_callback.hpp | 2
   branches/quickbook-dev/boost/asio/ssl/detail/read_op.hpp | 2
   branches/quickbook-dev/boost/asio/ssl/detail/shutdown_op.hpp | 2
   branches/quickbook-dev/boost/asio/ssl/detail/stream_core.hpp | 2
   branches/quickbook-dev/boost/asio/ssl/detail/verify_callback.hpp | 2
   branches/quickbook-dev/boost/asio/ssl/detail/write_op.hpp | 2
   branches/quickbook-dev/boost/asio/ssl/error.hpp | 2
   branches/quickbook-dev/boost/asio/ssl/impl/context.hpp | 2
   branches/quickbook-dev/boost/asio/ssl/impl/context.ipp | 2
   branches/quickbook-dev/boost/asio/ssl/impl/error.ipp | 2
   branches/quickbook-dev/boost/asio/ssl/impl/rfc2818_verification.ipp | 2
   branches/quickbook-dev/boost/asio/ssl/impl/src.hpp | 2
   branches/quickbook-dev/boost/asio/ssl/old/basic_context.hpp | 2
   branches/quickbook-dev/boost/asio/ssl/old/context_service.hpp | 2
   branches/quickbook-dev/boost/asio/ssl/old/detail/openssl_context_service.hpp | 2
   branches/quickbook-dev/boost/asio/ssl/old/detail/openssl_stream_service.hpp | 2
   branches/quickbook-dev/boost/asio/ssl/old/stream.hpp | 2
   branches/quickbook-dev/boost/asio/ssl/old/stream_service.hpp | 2
   branches/quickbook-dev/boost/asio/ssl/rfc2818_verification.hpp | 2
   branches/quickbook-dev/boost/asio/ssl/stream.hpp | 2
   branches/quickbook-dev/boost/asio/ssl/stream_base.hpp | 2
   branches/quickbook-dev/boost/asio/ssl/stream_service.hpp | 2
   branches/quickbook-dev/boost/asio/ssl/verify_context.hpp | 2
   branches/quickbook-dev/boost/asio/ssl/verify_mode.hpp | 2
   branches/quickbook-dev/boost/asio/strand.hpp | 2
   branches/quickbook-dev/boost/asio/stream_socket_service.hpp | 2
   branches/quickbook-dev/boost/asio/streambuf.hpp | 2
   branches/quickbook-dev/boost/asio/time_traits.hpp | 2
   branches/quickbook-dev/boost/asio/version.hpp | 2
   branches/quickbook-dev/boost/asio/windows/basic_handle.hpp | 4
   branches/quickbook-dev/boost/asio/windows/basic_random_access_handle.hpp | 2
   branches/quickbook-dev/boost/asio/windows/basic_stream_handle.hpp | 2
   branches/quickbook-dev/boost/asio/windows/overlapped_ptr.hpp | 2
   branches/quickbook-dev/boost/asio/windows/random_access_handle.hpp | 2
   branches/quickbook-dev/boost/asio/windows/random_access_handle_service.hpp | 2
   branches/quickbook-dev/boost/asio/windows/stream_handle.hpp | 2
   branches/quickbook-dev/boost/asio/windows/stream_handle_service.hpp | 2
   branches/quickbook-dev/boost/asio/write.hpp | 2
   branches/quickbook-dev/boost/asio/write_at.hpp | 2
   branches/quickbook-dev/boost/config/compiler/intel.hpp | 11
   branches/quickbook-dev/boost/config/compiler/pgi.hpp | 47
   branches/quickbook-dev/boost/config/compiler/visualc.hpp | 62
   branches/quickbook-dev/boost/config/stdlib/libstdcpp3.hpp | 3
   branches/quickbook-dev/boost/container/allocator/memory_util.hpp | 22
   branches/quickbook-dev/boost/container/deque.hpp | 36
   branches/quickbook-dev/boost/container/detail/algorithms.hpp | 123
   branches/quickbook-dev/boost/container/stable_vector.hpp | 13
   branches/quickbook-dev/boost/container/string.hpp | 38
   branches/quickbook-dev/boost/container/vector.hpp | 2
   branches/quickbook-dev/boost/crc.hpp | 15
   branches/quickbook-dev/boost/detail/container_fwd.hpp | 6
   branches/quickbook-dev/boost/detail/fenv.hpp | 5
   branches/quickbook-dev/boost/exception/detail/attribute_noreturn.hpp | 2
   branches/quickbook-dev/boost/exception/error_info.hpp | 3
   branches/quickbook-dev/boost/exception/info_tuple.hpp | 24
   branches/quickbook-dev/boost/filesystem/v3/operations.hpp | 9
   branches/quickbook-dev/boost/filesystem/v3/path.hpp | 48
   branches/quickbook-dev/boost/filesystem/v3/path_traits.hpp | 2
   branches/quickbook-dev/boost/fusion/view/iterator_range/detail/at_impl.hpp | 2
   branches/quickbook-dev/boost/geometry/algorithms/append.hpp | 8
   branches/quickbook-dev/boost/geometry/algorithms/area.hpp | 12
   branches/quickbook-dev/boost/geometry/algorithms/assign.hpp | 6
   branches/quickbook-dev/boost/geometry/algorithms/buffer.hpp | 8
   branches/quickbook-dev/boost/geometry/algorithms/centroid.hpp | 12
   branches/quickbook-dev/boost/geometry/algorithms/clear.hpp | 30
   branches/quickbook-dev/boost/geometry/algorithms/comparable_distance.hpp | 6
   branches/quickbook-dev/boost/geometry/algorithms/convert.hpp | 6
   branches/quickbook-dev/boost/geometry/algorithms/convex_hull.hpp | 114
   branches/quickbook-dev/boost/geometry/algorithms/correct.hpp | 8
   branches/quickbook-dev/boost/geometry/algorithms/covered_by.hpp | 8
   branches/quickbook-dev/boost/geometry/algorithms/detail/as_range.hpp | 6
   branches/quickbook-dev/boost/geometry/algorithms/detail/assign_box_corners.hpp | 6
   branches/quickbook-dev/boost/geometry/algorithms/detail/assign_indexed_point.hpp | 6
   branches/quickbook-dev/boost/geometry/algorithms/detail/assign_values.hpp | 6
   branches/quickbook-dev/boost/geometry/algorithms/detail/calculate_null.hpp | 6
   branches/quickbook-dev/boost/geometry/algorithms/detail/calculate_sum.hpp | 6
   branches/quickbook-dev/boost/geometry/algorithms/detail/convert_indexed_to_indexed.hpp | 6
   branches/quickbook-dev/boost/geometry/algorithms/detail/convert_point_to_point.hpp | 6
   branches/quickbook-dev/boost/geometry/algorithms/detail/disjoint.hpp | 6
   branches/quickbook-dev/boost/geometry/algorithms/detail/equals/collect_vectors.hpp | 6
   branches/quickbook-dev/boost/geometry/algorithms/detail/for_each_range.hpp | 33
   branches/quickbook-dev/boost/geometry/algorithms/detail/has_self_intersections.hpp | 2
   branches/quickbook-dev/boost/geometry/algorithms/detail/not.hpp | 6
   branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/add_rings.hpp | 2
   branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/append_no_duplicates.hpp | 2
   branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/assign_parents.hpp | 2
   branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/backtrack_check_si.hpp | 2
   branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/calculate_distance_policy.hpp | 2
   branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/check_enrich.hpp | 2
   branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/clip_linestring.hpp | 2
   branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/convert_ring.hpp | 2
   branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/copy_segment_point.hpp | 2
   branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/copy_segments.hpp | 2
   branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/debug_turn_info.hpp | 2
   branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/enrich_intersection_points.hpp | 8
   branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/enrichment_info.hpp | 2
   branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/follow.hpp | 14
   branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/get_intersection_points.hpp | 4
   branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/get_relative_order.hpp | 2
   branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/get_ring.hpp | 2
   branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/get_turn_info.hpp | 14
   branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/get_turns.hpp | 6
   branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/handle_tangencies.hpp | 26
   branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/intersection_insert.hpp | 14
   branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/overlay.hpp | 2
   branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/overlay_type.hpp | 2
   branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/ring_properties.hpp | 2
   branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/segment_identifier.hpp | 2
   branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/select_rings.hpp | 10
   branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/self_turn_points.hpp | 19
   branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/stream_info.hpp | 2
   branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/traversal_info.hpp | 2
   branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/traverse.hpp | 10
   branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/turn_info.hpp | 2
   branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/visit_info.hpp | 2
   branches/quickbook-dev/boost/geometry/algorithms/detail/partition.hpp | 122
   branches/quickbook-dev/boost/geometry/algorithms/detail/point_on_border.hpp | 6
   branches/quickbook-dev/boost/geometry/algorithms/detail/ring_identifier.hpp | 2
   branches/quickbook-dev/boost/geometry/algorithms/detail/sections/range_by_section.hpp | 8
   branches/quickbook-dev/boost/geometry/algorithms/detail/sections/sectionalize.hpp | 6
   branches/quickbook-dev/boost/geometry/algorithms/difference.hpp | 2
   branches/quickbook-dev/boost/geometry/algorithms/disjoint.hpp | 6
   branches/quickbook-dev/boost/geometry/algorithms/distance.hpp | 12
   branches/quickbook-dev/boost/geometry/algorithms/envelope.hpp | 6
   branches/quickbook-dev/boost/geometry/algorithms/equals.hpp | 6
   branches/quickbook-dev/boost/geometry/algorithms/expand.hpp | 6
   branches/quickbook-dev/boost/geometry/algorithms/for_each.hpp | 10
   branches/quickbook-dev/boost/geometry/algorithms/intersection.hpp | 2
   branches/quickbook-dev/boost/geometry/algorithms/intersects.hpp | 6
   branches/quickbook-dev/boost/geometry/algorithms/length.hpp | 11
   branches/quickbook-dev/boost/geometry/algorithms/make.hpp | 6
   branches/quickbook-dev/boost/geometry/algorithms/not_implemented.hpp | 6
   branches/quickbook-dev/boost/geometry/algorithms/num_geometries.hpp | 6
   branches/quickbook-dev/boost/geometry/algorithms/num_interior_rings.hpp | 6
   branches/quickbook-dev/boost/geometry/algorithms/num_points.hpp | 6
   branches/quickbook-dev/boost/geometry/algorithms/overlaps.hpp | 6
   branches/quickbook-dev/boost/geometry/algorithms/perimeter.hpp | 11
   branches/quickbook-dev/boost/geometry/algorithms/reverse.hpp | 6
   branches/quickbook-dev/boost/geometry/algorithms/simplify.hpp | 10
   branches/quickbook-dev/boost/geometry/algorithms/sym_difference.hpp | 2
   branches/quickbook-dev/boost/geometry/algorithms/transform.hpp | 6
   branches/quickbook-dev/boost/geometry/algorithms/union.hpp | 2
   branches/quickbook-dev/boost/geometry/algorithms/unique.hpp | 6
   branches/quickbook-dev/boost/geometry/algorithms/within.hpp | 6
   branches/quickbook-dev/boost/geometry/arithmetic/arithmetic.hpp | 6
   branches/quickbook-dev/boost/geometry/arithmetic/dot_product.hpp | 6
   branches/quickbook-dev/boost/geometry/core/access.hpp | 6
   branches/quickbook-dev/boost/geometry/core/closure.hpp | 6
   branches/quickbook-dev/boost/geometry/core/coordinate_dimension.hpp | 6
   branches/quickbook-dev/boost/geometry/core/coordinate_system.hpp | 6
   branches/quickbook-dev/boost/geometry/core/coordinate_type.hpp | 6
   branches/quickbook-dev/boost/geometry/core/cs.hpp | 6
   branches/quickbook-dev/boost/geometry/core/exception.hpp | 32
   branches/quickbook-dev/boost/geometry/core/exterior_ring.hpp | 6
   branches/quickbook-dev/boost/geometry/core/geometry_id.hpp | 6
   branches/quickbook-dev/boost/geometry/core/interior_rings.hpp | 6
   branches/quickbook-dev/boost/geometry/core/interior_type.hpp | 6
   branches/quickbook-dev/boost/geometry/core/is_areal.hpp | 6
   branches/quickbook-dev/boost/geometry/core/mutable_range.hpp | 6
   branches/quickbook-dev/boost/geometry/core/point_order.hpp | 6
   branches/quickbook-dev/boost/geometry/core/point_type.hpp | 6
   branches/quickbook-dev/boost/geometry/core/radian_access.hpp | 6
   branches/quickbook-dev/boost/geometry/core/reverse_dispatch.hpp | 6
   branches/quickbook-dev/boost/geometry/core/ring_type.hpp | 6
   branches/quickbook-dev/boost/geometry/core/tag.hpp | 6
   branches/quickbook-dev/boost/geometry/core/tag_cast.hpp | 6
   branches/quickbook-dev/boost/geometry/core/tags.hpp | 6
   branches/quickbook-dev/boost/geometry/core/topological_dimension.hpp | 6
   branches/quickbook-dev/boost/geometry/extensions/algorithms/buffer/intersecting_inserter.hpp | 2
   branches/quickbook-dev/boost/geometry/extensions/algorithms/buffer/line_line_intersection.hpp | 2
   branches/quickbook-dev/boost/geometry/extensions/algorithms/buffer/linestring_buffer.hpp | 2
   branches/quickbook-dev/boost/geometry/extensions/algorithms/buffer/polygon_buffer.hpp | 9
   branches/quickbook-dev/boost/geometry/extensions/algorithms/buffer/remove_within_distance.hpp | 2
   branches/quickbook-dev/boost/geometry/extensions/algorithms/buffer/sectionalizing_buffer.hpp | 2
   branches/quickbook-dev/boost/geometry/extensions/algorithms/buffer/segmenting_buffer.hpp | 4
   branches/quickbook-dev/boost/geometry/extensions/algorithms/buffer/splitting_buffer.hpp | 2
   branches/quickbook-dev/boost/geometry/extensions/algorithms/buffer/traversing_buffer.hpp | 2
   branches/quickbook-dev/boost/geometry/extensions/algorithms/connect.hpp | 2
   branches/quickbook-dev/boost/geometry/extensions/algorithms/detail/overlay/dissolver.hpp | 2
   branches/quickbook-dev/boost/geometry/extensions/algorithms/detail/overlay/msm_state.hpp | 2
   branches/quickbook-dev/boost/geometry/extensions/algorithms/detail/overlay/split_rings.hpp | 2
   branches/quickbook-dev/boost/geometry/extensions/algorithms/dissolve.hpp | 2
   branches/quickbook-dev/boost/geometry/extensions/algorithms/mark_spikes.hpp | 2
   branches/quickbook-dev/boost/geometry/extensions/algorithms/midpoints.hpp | 2
   branches/quickbook-dev/boost/geometry/extensions/algorithms/offset.hpp | 2
   branches/quickbook-dev/boost/geometry/extensions/algorithms/parse.hpp | 6
   branches/quickbook-dev/boost/geometry/extensions/algorithms/point_on_line.hpp | 6
   branches/quickbook-dev/boost/geometry/extensions/algorithms/remove_holes_if.hpp | 2
   branches/quickbook-dev/boost/geometry/extensions/algorithms/remove_marked.hpp | 2
   branches/quickbook-dev/boost/geometry/extensions/algorithms/remove_spikes.hpp | 2
   branches/quickbook-dev/boost/geometry/extensions/algorithms/selected.hpp | 6
   branches/quickbook-dev/boost/geometry/extensions/arithmetic/cross_product.hpp | 2
   branches/quickbook-dev/boost/geometry/extensions/astronomy/core/cs.hpp | 6
   branches/quickbook-dev/boost/geometry/extensions/contrib/ttmath_stub.hpp | 6
   branches/quickbook-dev/boost/geometry/extensions/geometries/quantity_point.hpp | 6
   branches/quickbook-dev/boost/geometry/extensions/gis/geographic/core/cs.hpp | 6
   branches/quickbook-dev/boost/geometry/extensions/gis/geographic/detail/ellipsoid.hpp | 6
   branches/quickbook-dev/boost/geometry/extensions/gis/geographic/strategies/andoyer.hpp | 2
   branches/quickbook-dev/boost/geometry/extensions/gis/geographic/strategies/area_huiller_earth.hpp | 2
   branches/quickbook-dev/boost/geometry/extensions/gis/geographic/strategies/distance_cross_track.hpp | 2
   branches/quickbook-dev/boost/geometry/extensions/gis/geographic/strategies/dms_parser.hpp | 2
   branches/quickbook-dev/boost/geometry/extensions/gis/geographic/strategies/vincenty.hpp | 2
   branches/quickbook-dev/boost/geometry/extensions/gis/io/shapelib/dbf_write_attribute.hpp | 2
   branches/quickbook-dev/boost/geometry/extensions/gis/io/shapelib/shape_creator.hpp | 2
   branches/quickbook-dev/boost/geometry/extensions/gis/io/shapelib/shape_reader.hpp | 2
   branches/quickbook-dev/boost/geometry/extensions/gis/io/shapelib/shp_create_object.hpp | 2
   branches/quickbook-dev/boost/geometry/extensions/gis/io/shapelib/shp_create_object_multi.hpp | 2
   branches/quickbook-dev/boost/geometry/extensions/gis/io/shapelib/shp_read_object.hpp | 2
   branches/quickbook-dev/boost/geometry/extensions/gis/io/veshape/write_veshape.hpp | 2
   branches/quickbook-dev/boost/geometry/extensions/gis/io/wkb/detail/endian.hpp | 2
   branches/quickbook-dev/boost/geometry/extensions/gis/io/wkb/detail/ogc.hpp | 2
   branches/quickbook-dev/boost/geometry/extensions/gis/io/wkb/detail/parser.hpp | 2
   branches/quickbook-dev/boost/geometry/extensions/gis/io/wkb/read_wkb.hpp | 2
   branches/quickbook-dev/boost/geometry/extensions/gis/io/wkb/utility.hpp | 2
   branches/quickbook-dev/boost/geometry/extensions/gis/latlong/detail/graticule.hpp | 6
   branches/quickbook-dev/boost/geometry/extensions/gis/latlong/latlong.hpp | 6
   branches/quickbook-dev/boost/geometry/extensions/gis/latlong/point_ll.hpp | 6
   branches/quickbook-dev/boost/geometry/extensions/gis/projections/epsg.hpp | 2
   branches/quickbook-dev/boost/geometry/extensions/gis/projections/epsg_traits.hpp | 2
   branches/quickbook-dev/boost/geometry/extensions/gis/projections/factory.hpp | 2
   branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/aasincos.hpp | 2
   branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/adjlon.hpp | 2
   branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/base_dynamic.hpp | 2
   branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/base_static.hpp | 2
   branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/factory_entry.hpp | 2
   branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/function_overloads.hpp | 2
   branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/pj_auth.hpp | 2
   branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/pj_datum_set.hpp | 2
   branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/pj_datums.hpp | 2
   branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/pj_ell_set.hpp | 2
   branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/pj_ellps.hpp | 2
   branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/pj_fwd.hpp | 2
   branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/pj_gauss.hpp | 2
   branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/pj_init.hpp | 2
   branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/pj_inv.hpp | 2
   branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/pj_mlfn.hpp | 2
   branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/pj_msfn.hpp | 2
   branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/pj_param.hpp | 2
   branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/pj_phi2.hpp | 2
   branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/pj_qsfn.hpp | 2
   branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/pj_tsfn.hpp | 2
   branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/pj_units.hpp | 2
   branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/pj_zpoly1.hpp | 2
   branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/proj_mdist.hpp | 2
   branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/projects.hpp | 2
   branches/quickbook-dev/boost/geometry/extensions/gis/projections/parameters.hpp | 2
   branches/quickbook-dev/boost/geometry/extensions/gis/projections/project_inverse_transformer.hpp | 2
   branches/quickbook-dev/boost/geometry/extensions/gis/projections/project_transformer.hpp | 2
   branches/quickbook-dev/boost/geometry/extensions/gis/projections/projection.hpp | 2
   branches/quickbook-dev/boost/geometry/extensions/io/svg/svg_mapper.hpp | 2
   branches/quickbook-dev/boost/geometry/extensions/io/svg/write_svg.hpp | 2
   branches/quickbook-dev/boost/geometry/extensions/io/svg/write_svg_multi.hpp | 2
   branches/quickbook-dev/boost/geometry/extensions/iterators/circular_iterator.hpp | 6
   branches/quickbook-dev/boost/geometry/extensions/iterators/section_iterators.hpp | 6
   branches/quickbook-dev/boost/geometry/extensions/iterators/segment_returning_iterator.hpp | 4
   branches/quickbook-dev/boost/geometry/extensions/multi/algorithms/dissolve.hpp | 2
   branches/quickbook-dev/boost/geometry/extensions/nsphere/algorithms/append.hpp | 6
   branches/quickbook-dev/boost/geometry/extensions/nsphere/algorithms/area.hpp | 6
   branches/quickbook-dev/boost/geometry/extensions/nsphere/algorithms/assign.hpp | 6
   branches/quickbook-dev/boost/geometry/extensions/nsphere/algorithms/clear.hpp | 6
   branches/quickbook-dev/boost/geometry/extensions/nsphere/algorithms/envelope.hpp | 6
   branches/quickbook-dev/boost/geometry/extensions/nsphere/algorithms/num_points.hpp | 6
   branches/quickbook-dev/boost/geometry/extensions/nsphere/algorithms/within.hpp | 6
   branches/quickbook-dev/boost/geometry/extensions/nsphere/core/access.hpp | 6
   branches/quickbook-dev/boost/geometry/extensions/nsphere/core/geometry_id.hpp | 6
   branches/quickbook-dev/boost/geometry/extensions/nsphere/core/radius.hpp | 6
   branches/quickbook-dev/boost/geometry/extensions/nsphere/core/replace_point_type.hpp | 6
   branches/quickbook-dev/boost/geometry/extensions/nsphere/core/tags.hpp | 6
   branches/quickbook-dev/boost/geometry/extensions/nsphere/core/topological_dimension.hpp | 6
   branches/quickbook-dev/boost/geometry/extensions/nsphere/geometries/concepts/check.hpp | 6
   branches/quickbook-dev/boost/geometry/extensions/nsphere/geometries/concepts/nsphere_concept.hpp | 6
   branches/quickbook-dev/boost/geometry/extensions/nsphere/geometries/nsphere.hpp | 6
   branches/quickbook-dev/boost/geometry/extensions/nsphere/nsphere.hpp | 6
   branches/quickbook-dev/boost/geometry/extensions/strategies/buffer.hpp | 26
   branches/quickbook-dev/boost/geometry/extensions/strategies/buffer_join_round.hpp | 6
   branches/quickbook-dev/boost/geometry/extensions/strategies/buffer_side.hpp | 6
   branches/quickbook-dev/boost/geometry/extensions/strategies/parse.hpp | 6
   branches/quickbook-dev/boost/geometry/extensions/util/get_cs_as_radian.hpp | 6
   branches/quickbook-dev/boost/geometry/extensions/util/replace_point_type.hpp | 6
   branches/quickbook-dev/boost/geometry/extensions/views/enveloped_view.hpp | 6
   branches/quickbook-dev/boost/geometry/extensions/views/section_view.hpp | 6
   branches/quickbook-dev/boost/geometry/geometries/adapted/boost_array.hpp | 2
   branches/quickbook-dev/boost/geometry/geometries/adapted/boost_fusion.hpp | 4
   branches/quickbook-dev/boost/geometry/geometries/adapted/boost_polygon.hpp | 2
   branches/quickbook-dev/boost/geometry/geometries/adapted/boost_polygon/box.hpp | 2
   branches/quickbook-dev/boost/geometry/geometries/adapted/boost_polygon/hole_iterator.hpp | 2
   branches/quickbook-dev/boost/geometry/geometries/adapted/boost_polygon/holes_proxy.hpp | 2
   branches/quickbook-dev/boost/geometry/geometries/adapted/boost_polygon/point.hpp | 2
   branches/quickbook-dev/boost/geometry/geometries/adapted/boost_polygon/polygon.hpp | 2
   branches/quickbook-dev/boost/geometry/geometries/adapted/boost_polygon/ring.hpp | 2
   branches/quickbook-dev/boost/geometry/geometries/adapted/boost_polygon/ring_proxy.hpp | 2
   branches/quickbook-dev/boost/geometry/geometries/adapted/boost_range/adjacent_filtered.hpp | 2
   branches/quickbook-dev/boost/geometry/geometries/adapted/boost_range/filtered.hpp | 2
   branches/quickbook-dev/boost/geometry/geometries/adapted/boost_range/reversed.hpp | 2
   branches/quickbook-dev/boost/geometry/geometries/adapted/boost_range/sliced.hpp | 2
   branches/quickbook-dev/boost/geometry/geometries/adapted/boost_range/strided.hpp | 2
   branches/quickbook-dev/boost/geometry/geometries/adapted/boost_range/uniqued.hpp | 2
   branches/quickbook-dev/boost/geometry/geometries/adapted/boost_tuple.hpp | 6
   branches/quickbook-dev/boost/geometry/geometries/adapted/c_array.hpp | 6
   branches/quickbook-dev/boost/geometry/geometries/adapted/std_pair_as_segment.hpp | 6
   branches/quickbook-dev/boost/geometry/geometries/box.hpp | 6
   branches/quickbook-dev/boost/geometry/geometries/concepts/box_concept.hpp | 6
   branches/quickbook-dev/boost/geometry/geometries/concepts/check.hpp | 6
   branches/quickbook-dev/boost/geometry/geometries/concepts/linestring_concept.hpp | 6
   branches/quickbook-dev/boost/geometry/geometries/concepts/point_concept.hpp | 6
   branches/quickbook-dev/boost/geometry/geometries/concepts/polygon_concept.hpp | 6
   branches/quickbook-dev/boost/geometry/geometries/concepts/ring_concept.hpp | 6
   branches/quickbook-dev/boost/geometry/geometries/concepts/segment_concept.hpp | 6
   branches/quickbook-dev/boost/geometry/geometries/geometries.hpp | 6
   branches/quickbook-dev/boost/geometry/geometries/linestring.hpp | 6
   branches/quickbook-dev/boost/geometry/geometries/point.hpp | 6
   branches/quickbook-dev/boost/geometry/geometries/point_xy.hpp | 6
   branches/quickbook-dev/boost/geometry/geometries/polygon.hpp | 6
   branches/quickbook-dev/boost/geometry/geometries/register/box.hpp | 6
   branches/quickbook-dev/boost/geometry/geometries/register/linestring.hpp | 6
   branches/quickbook-dev/boost/geometry/geometries/register/point.hpp | 6
   branches/quickbook-dev/boost/geometry/geometries/register/ring.hpp | 6
   branches/quickbook-dev/boost/geometry/geometries/register/segment.hpp | 6
   branches/quickbook-dev/boost/geometry/geometries/ring.hpp | 6
   branches/quickbook-dev/boost/geometry/geometries/segment.hpp | 6
   branches/quickbook-dev/boost/geometry/geometry.hpp | 7
   branches/quickbook-dev/boost/geometry/io/dsv/write.hpp | 6
   branches/quickbook-dev/boost/geometry/io/io.hpp | 6
   branches/quickbook-dev/boost/geometry/io/wkt/detail/prefix.hpp | 6
   branches/quickbook-dev/boost/geometry/io/wkt/detail/wkt_multi.hpp | 6
   branches/quickbook-dev/boost/geometry/io/wkt/iomanip.hpp | 6
   branches/quickbook-dev/boost/geometry/io/wkt/read.hpp | 6
   branches/quickbook-dev/boost/geometry/io/wkt/wkt.hpp | 6
   branches/quickbook-dev/boost/geometry/io/wkt/write.hpp | 6
   branches/quickbook-dev/boost/geometry/iterators/base.hpp | 6
   branches/quickbook-dev/boost/geometry/iterators/closing_iterator.hpp | 6
   branches/quickbook-dev/boost/geometry/iterators/ever_circling_iterator.hpp | 6
   branches/quickbook-dev/boost/geometry/multi/algorithms/area.hpp | 7
   branches/quickbook-dev/boost/geometry/multi/algorithms/centroid.hpp | 6
   branches/quickbook-dev/boost/geometry/multi/algorithms/clear.hpp | 8
   branches/quickbook-dev/boost/geometry/multi/algorithms/convert.hpp | 6
   branches/quickbook-dev/boost/geometry/multi/algorithms/correct.hpp | 6
   branches/quickbook-dev/boost/geometry/multi/algorithms/covered_by.hpp | 6
   branches/quickbook-dev/boost/geometry/multi/algorithms/detail/for_each_range.hpp | 6
   branches/quickbook-dev/boost/geometry/multi/algorithms/detail/modify.hpp | 6
   branches/quickbook-dev/boost/geometry/multi/algorithms/detail/modify_with_predicate.hpp | 6
   branches/quickbook-dev/boost/geometry/multi/algorithms/detail/multi_sum.hpp | 6
   branches/quickbook-dev/boost/geometry/multi/algorithms/detail/overlay/copy_segment_point.hpp | 2
   branches/quickbook-dev/boost/geometry/multi/algorithms/detail/overlay/copy_segments.hpp | 2
   branches/quickbook-dev/boost/geometry/multi/algorithms/detail/overlay/get_ring.hpp | 2
   branches/quickbook-dev/boost/geometry/multi/algorithms/detail/overlay/get_turns.hpp | 2
   branches/quickbook-dev/boost/geometry/multi/algorithms/detail/overlay/select_rings.hpp | 2
   branches/quickbook-dev/boost/geometry/multi/algorithms/detail/overlay/self_turn_points.hpp | 2
   branches/quickbook-dev/boost/geometry/multi/algorithms/detail/point_on_border.hpp | 6
   branches/quickbook-dev/boost/geometry/multi/algorithms/detail/sections/range_by_section.hpp | 6
   branches/quickbook-dev/boost/geometry/multi/algorithms/detail/sections/sectionalize.hpp | 6
   branches/quickbook-dev/boost/geometry/multi/algorithms/distance.hpp | 37
   branches/quickbook-dev/boost/geometry/multi/algorithms/envelope.hpp | 6
   branches/quickbook-dev/boost/geometry/multi/algorithms/equals.hpp | 6
   branches/quickbook-dev/boost/geometry/multi/algorithms/for_each.hpp | 6
   branches/quickbook-dev/boost/geometry/multi/algorithms/intersection.hpp | 4
   branches/quickbook-dev/boost/geometry/multi/algorithms/length.hpp | 7
   branches/quickbook-dev/boost/geometry/multi/algorithms/num_geometries.hpp | 6
   branches/quickbook-dev/boost/geometry/multi/algorithms/num_interior_rings.hpp | 6
   branches/quickbook-dev/boost/geometry/multi/algorithms/num_points.hpp | 6
   branches/quickbook-dev/boost/geometry/multi/algorithms/perimeter.hpp | 7
   branches/quickbook-dev/boost/geometry/multi/algorithms/reverse.hpp | 6
   branches/quickbook-dev/boost/geometry/multi/algorithms/simplify.hpp | 6
   branches/quickbook-dev/boost/geometry/multi/algorithms/transform.hpp | 6
   branches/quickbook-dev/boost/geometry/multi/algorithms/unique.hpp | 6
   branches/quickbook-dev/boost/geometry/multi/algorithms/within.hpp | 6
   branches/quickbook-dev/boost/geometry/multi/core/closure.hpp | 6
   branches/quickbook-dev/boost/geometry/multi/core/geometry_id.hpp | 6
   branches/quickbook-dev/boost/geometry/multi/core/interior_rings.hpp | 6
   branches/quickbook-dev/boost/geometry/multi/core/is_areal.hpp | 6
   branches/quickbook-dev/boost/geometry/multi/core/point_order.hpp | 6
   branches/quickbook-dev/boost/geometry/multi/core/point_type.hpp | 6
   branches/quickbook-dev/boost/geometry/multi/core/ring_type.hpp | 6
   branches/quickbook-dev/boost/geometry/multi/core/tags.hpp | 6
   branches/quickbook-dev/boost/geometry/multi/core/topological_dimension.hpp | 6
   branches/quickbook-dev/boost/geometry/multi/geometries/concepts/check.hpp | 6
   branches/quickbook-dev/boost/geometry/multi/geometries/concepts/multi_linestring_concept.hpp | 6
   branches/quickbook-dev/boost/geometry/multi/geometries/concepts/multi_point_concept.hpp | 6
   branches/quickbook-dev/boost/geometry/multi/geometries/concepts/multi_polygon_concept.hpp | 6
   branches/quickbook-dev/boost/geometry/multi/geometries/multi_geometries.hpp | 6
   branches/quickbook-dev/boost/geometry/multi/geometries/multi_linestring.hpp | 6
   branches/quickbook-dev/boost/geometry/multi/geometries/multi_point.hpp | 6
   branches/quickbook-dev/boost/geometry/multi/geometries/multi_polygon.hpp | 6
   branches/quickbook-dev/boost/geometry/multi/geometries/register/multi_linestring.hpp | 6
   branches/quickbook-dev/boost/geometry/multi/geometries/register/multi_point.hpp | 6
   branches/quickbook-dev/boost/geometry/multi/geometries/register/multi_polygon.hpp | 6
   branches/quickbook-dev/boost/geometry/multi/io/wkt/detail/prefix.hpp | 6
   branches/quickbook-dev/boost/geometry/multi/io/wkt/read.hpp | 6
   branches/quickbook-dev/boost/geometry/multi/io/wkt/wkt.hpp | 6
   branches/quickbook-dev/boost/geometry/multi/io/wkt/write.hpp | 6
   branches/quickbook-dev/boost/geometry/multi/multi.hpp | 12
   branches/quickbook-dev/boost/geometry/multi/strategies/cartesian/centroid_average.hpp | 6
   branches/quickbook-dev/boost/geometry/multi/views/detail/range_type.hpp | 6
   branches/quickbook-dev/boost/geometry/policies/compare.hpp | 2
   branches/quickbook-dev/boost/geometry/policies/relate/de9im.hpp | 2
   branches/quickbook-dev/boost/geometry/policies/relate/direction.hpp | 4
   branches/quickbook-dev/boost/geometry/policies/relate/intersection_points.hpp | 8
   branches/quickbook-dev/boost/geometry/policies/relate/intersection_points_determinant.hpp | 2
   branches/quickbook-dev/boost/geometry/policies/relate/intersection_points_slope.hpp | 2
   branches/quickbook-dev/boost/geometry/policies/relate/tupled.hpp | 2
   branches/quickbook-dev/boost/geometry/strategies/agnostic/hull_graham_andrew.hpp | 11
   branches/quickbook-dev/boost/geometry/strategies/agnostic/point_in_box_by_side.hpp | 6
   branches/quickbook-dev/boost/geometry/strategies/agnostic/point_in_poly_oriented_winding.hpp | 2
   branches/quickbook-dev/boost/geometry/strategies/agnostic/point_in_poly_winding.hpp | 2
   branches/quickbook-dev/boost/geometry/strategies/agnostic/simplify_douglas_peucker.hpp | 5
   branches/quickbook-dev/boost/geometry/strategies/area.hpp | 6
   branches/quickbook-dev/boost/geometry/strategies/cartesian/area_surveyor.hpp | 6
   branches/quickbook-dev/boost/geometry/strategies/cartesian/box_in_box.hpp | 6
   branches/quickbook-dev/boost/geometry/strategies/cartesian/cart_intersect.hpp | 2
   branches/quickbook-dev/boost/geometry/strategies/cartesian/centroid_bashein_detmer.hpp | 6
   branches/quickbook-dev/boost/geometry/strategies/cartesian/centroid_weighted_length.hpp | 4
   branches/quickbook-dev/boost/geometry/strategies/cartesian/distance_projected_point.hpp | 6
   branches/quickbook-dev/boost/geometry/strategies/cartesian/distance_pythagoras.hpp | 10
   branches/quickbook-dev/boost/geometry/strategies/cartesian/point_in_box.hpp | 6
   branches/quickbook-dev/boost/geometry/strategies/cartesian/point_in_poly_crossings_multiply.hpp | 6
   branches/quickbook-dev/boost/geometry/strategies/cartesian/point_in_poly_franklin.hpp | 6
   branches/quickbook-dev/boost/geometry/strategies/cartesian/side_by_triangle.hpp | 6
   branches/quickbook-dev/boost/geometry/strategies/centroid.hpp | 6
   branches/quickbook-dev/boost/geometry/strategies/compare.hpp | 6
   branches/quickbook-dev/boost/geometry/strategies/concepts/area_concept.hpp | 12
   branches/quickbook-dev/boost/geometry/strategies/concepts/centroid_concept.hpp | 14
   branches/quickbook-dev/boost/geometry/strategies/concepts/convex_hull_concept.hpp | 6
   branches/quickbook-dev/boost/geometry/strategies/concepts/distance_concept.hpp | 20
   branches/quickbook-dev/boost/geometry/strategies/concepts/segment_intersect_concept.hpp | 6
   branches/quickbook-dev/boost/geometry/strategies/concepts/simplify_concept.hpp | 12
   branches/quickbook-dev/boost/geometry/strategies/concepts/within_concept.hpp | 26
   branches/quickbook-dev/boost/geometry/strategies/convex_hull.hpp | 13
   branches/quickbook-dev/boost/geometry/strategies/covered_by.hpp | 6
   branches/quickbook-dev/boost/geometry/strategies/default_area_result.hpp | 6
   branches/quickbook-dev/boost/geometry/strategies/default_distance_result.hpp | 6
   branches/quickbook-dev/boost/geometry/strategies/default_length_result.hpp | 6
   branches/quickbook-dev/boost/geometry/strategies/distance.hpp | 6
   branches/quickbook-dev/boost/geometry/strategies/intersection.hpp | 2
   branches/quickbook-dev/boost/geometry/strategies/intersection_result.hpp | 2
   branches/quickbook-dev/boost/geometry/strategies/side.hpp | 6
   branches/quickbook-dev/boost/geometry/strategies/side_info.hpp | 6
   branches/quickbook-dev/boost/geometry/strategies/spherical/area_huiller.hpp | 2
   branches/quickbook-dev/boost/geometry/strategies/spherical/compare_circular.hpp | 2
   branches/quickbook-dev/boost/geometry/strategies/spherical/distance_cross_track.hpp | 2
   branches/quickbook-dev/boost/geometry/strategies/spherical/distance_haversine.hpp | 2
   branches/quickbook-dev/boost/geometry/strategies/spherical/side_by_cross_track.hpp | 2
   branches/quickbook-dev/boost/geometry/strategies/spherical/ssf.hpp | 2
   branches/quickbook-dev/boost/geometry/strategies/strategies.hpp | 6
   branches/quickbook-dev/boost/geometry/strategies/strategy_transform.hpp | 8
   branches/quickbook-dev/boost/geometry/strategies/tags.hpp | 6
   branches/quickbook-dev/boost/geometry/strategies/transform.hpp | 6
   branches/quickbook-dev/boost/geometry/strategies/transform/inverse_transformer.hpp | 6
   branches/quickbook-dev/boost/geometry/strategies/transform/map_transformer.hpp | 6
   branches/quickbook-dev/boost/geometry/strategies/transform/matrix_transformers.hpp | 10
   branches/quickbook-dev/boost/geometry/strategies/within.hpp | 6
   branches/quickbook-dev/boost/geometry/util/add_const_if_c.hpp | 6
   branches/quickbook-dev/boost/geometry/util/closure_as_bool.hpp | 6
   branches/quickbook-dev/boost/geometry/util/coordinate_cast.hpp | 6
   branches/quickbook-dev/boost/geometry/util/for_each_coordinate.hpp | 8
   branches/quickbook-dev/boost/geometry/util/math.hpp | 6
   branches/quickbook-dev/boost/geometry/util/order_as_direction.hpp | 6
   branches/quickbook-dev/boost/geometry/util/parameter_type_of.hpp | 6
   branches/quickbook-dev/boost/geometry/util/promote_floating_point.hpp | 6
   branches/quickbook-dev/boost/geometry/util/rational.hpp | 6
   branches/quickbook-dev/boost/geometry/util/select_calculation_type.hpp | 6
   branches/quickbook-dev/boost/geometry/util/select_coordinate_type.hpp | 6
   branches/quickbook-dev/boost/geometry/util/select_most_precise.hpp | 6
   branches/quickbook-dev/boost/geometry/views/box_view.hpp | 6
   branches/quickbook-dev/boost/geometry/views/closeable_view.hpp | 6
   branches/quickbook-dev/boost/geometry/views/detail/points_view.hpp | 6
   branches/quickbook-dev/boost/geometry/views/detail/range_type.hpp | 33
   branches/quickbook-dev/boost/geometry/views/identity_view.hpp | 6
   branches/quickbook-dev/boost/geometry/views/reversible_view.hpp | 6
   branches/quickbook-dev/boost/geometry/views/segment_view.hpp | 6
   branches/quickbook-dev/boost/graph/adjacency_list_io.hpp | 2
   branches/quickbook-dev/boost/graph/directed_graph.hpp | 2
   branches/quickbook-dev/boost/graph/reverse_graph.hpp | 9
   branches/quickbook-dev/boost/graph/undirected_graph.hpp | 2
   branches/quickbook-dev/boost/interprocess/detail/intermodule_singleton.hpp | 23
   branches/quickbook-dev/boost/interprocess/offset_ptr.hpp | 4
   branches/quickbook-dev/boost/interprocess/segment_manager.hpp | 2
   branches/quickbook-dev/boost/interprocess/smart_ptr/detail/shared_count.hpp | 10
   branches/quickbook-dev/boost/interprocess/smart_ptr/detail/sp_counted_impl.hpp | 18
   branches/quickbook-dev/boost/intrusive/detail/has_member_function_callable_with.hpp | 3
   branches/quickbook-dev/boost/intrusive/detail/memory_util.hpp | 4
   branches/quickbook-dev/boost/lexical_cast.hpp | 79
   branches/quickbook-dev/boost/locale/boundary/index.hpp | 39
   branches/quickbook-dev/boost/math/special_functions/beta.hpp | 42
   branches/quickbook-dev/boost/math/special_functions/detail/bessel_yn.hpp | 2
   branches/quickbook-dev/boost/math/special_functions/detail/lgamma_small.hpp | 30
   branches/quickbook-dev/boost/math/special_functions/erf.hpp | 6
   branches/quickbook-dev/boost/math/special_functions/gamma.hpp | 44
   branches/quickbook-dev/boost/math/special_functions/zeta.hpp | 19
   branches/quickbook-dev/boost/math/tools/test.hpp | 68
   branches/quickbook-dev/boost/move/move.hpp | 71
   branches/quickbook-dev/boost/multi_array/base.hpp | 32
   branches/quickbook-dev/boost/multi_array/concept_checks.hpp | 1
   branches/quickbook-dev/boost/multi_array/iterator.hpp | 18
   branches/quickbook-dev/boost/numeric/ublas/detail/config.hpp | 4
   branches/quickbook-dev/boost/phoenix/stl/container/container.hpp | 84
   branches/quickbook-dev/boost/python/detail/config.hpp | 4
   branches/quickbook-dev/boost/python/module_init.hpp | 2
   branches/quickbook-dev/boost/regex/v4/regex_format.hpp | 6
   branches/quickbook-dev/boost/serialization/vector.hpp | 2
   branches/quickbook-dev/boost/serialization/vector_135.hpp | 2
   branches/quickbook-dev/boost/spirit/home/karma/directive/center_alignment.hpp | 32
   branches/quickbook-dev/boost/spirit/home/lex/qi/plain_raw_token.hpp | 2
   branches/quickbook-dev/boost/spirit/home/lex/qi/plain_token.hpp | 2
   branches/quickbook-dev/boost/spirit/home/lex/qi/plain_tokenid.hpp | 4
   branches/quickbook-dev/boost/spirit/home/support/attributes.hpp | 25
   branches/quickbook-dev/boost/spirit/home/support/iterators/detail/combine_policies.hpp | 162
   branches/quickbook-dev/boost/spirit/home/support/iterators/multi_pass.hpp | 22
   branches/quickbook-dev/boost/spirit/repository/home/karma/nonterminal/subrule.hpp | 10
   branches/quickbook-dev/boost/test/impl/exception_safety.ipp | 4
   branches/quickbook-dev/boost/thread/barrier.hpp | 8
   branches/quickbook-dev/boost/thread/detail/config.hpp | 29
   branches/quickbook-dev/boost/thread/detail/move.hpp | 21
   branches/quickbook-dev/boost/thread/detail/thread.hpp | 338
   branches/quickbook-dev/boost/thread/exceptions.hpp | 210
   branches/quickbook-dev/boost/thread/future.hpp | 808
   branches/quickbook-dev/boost/thread/locks.hpp | 469
   branches/quickbook-dev/boost/thread/once.hpp | 3
   branches/quickbook-dev/boost/thread/pthread/condition_variable.hpp | 173
   branches/quickbook-dev/boost/thread/pthread/condition_variable_fwd.hpp | 152
   branches/quickbook-dev/boost/thread/pthread/mutex.hpp | 109
   branches/quickbook-dev/boost/thread/pthread/once.hpp | 33
   branches/quickbook-dev/boost/thread/pthread/recursive_mutex.hpp | 106
   branches/quickbook-dev/boost/thread/pthread/shared_mutex.hpp | 3
   branches/quickbook-dev/boost/thread/pthread/thread_data.hpp | 51
   branches/quickbook-dev/boost/thread/thread.hpp | 3
   branches/quickbook-dev/boost/thread/win32/basic_recursive_mutex.hpp | 41
   branches/quickbook-dev/boost/thread/win32/basic_timed_mutex.hpp | 47
   branches/quickbook-dev/boost/thread/win32/condition_variable.hpp | 116
   branches/quickbook-dev/boost/thread/win32/shared_mutex.hpp | 2
   branches/quickbook-dev/boost/thread/win32/thread_data.hpp | 50
   branches/quickbook-dev/boost/type_traits/type_with_alignment.hpp | 6
   branches/quickbook-dev/boost/unordered/detail/emplace_args.hpp | 45
   branches/quickbook-dev/boost/unordered/detail/extract_key.hpp | 6
   branches/quickbook-dev/boost/unordered/detail/unique.hpp | 6
   branches/quickbook-dev/boost/unordered/unordered_map.hpp | 63
   branches/quickbook-dev/boost/unordered/unordered_set.hpp | 62
   branches/quickbook-dev/boost/uuid/sha1.hpp | 52
   branches/quickbook-dev/libs/algorithm/string/doc/quickref.xml | 14
   branches/quickbook-dev/libs/asio/doc/Jamfile.v2 | 2
   branches/quickbook-dev/libs/asio/doc/asio.qbk | 4
   branches/quickbook-dev/libs/asio/doc/doxy2qbk.pl | 2
   branches/quickbook-dev/libs/asio/doc/examples.qbk | 2
   branches/quickbook-dev/libs/asio/doc/history.qbk | 25
   branches/quickbook-dev/libs/asio/doc/index.xml | 2
   branches/quickbook-dev/libs/asio/doc/noncopyable_dox.txt | 2
   branches/quickbook-dev/libs/asio/doc/overview.qbk | 4
   branches/quickbook-dev/libs/asio/doc/overview/allocation.qbk | 2
   branches/quickbook-dev/libs/asio/doc/overview/async.qbk | 2
   branches/quickbook-dev/libs/asio/doc/overview/basics.qbk | 2
   branches/quickbook-dev/libs/asio/doc/overview/bsd_sockets.qbk | 2
   branches/quickbook-dev/libs/asio/doc/overview/buffers.qbk | 2
   branches/quickbook-dev/libs/asio/doc/overview/cpp2011.qbk | 27
   branches/quickbook-dev/libs/asio/doc/overview/handler_tracking.qbk | 2
   branches/quickbook-dev/libs/asio/doc/overview/implementation.qbk | 2
   branches/quickbook-dev/libs/asio/doc/overview/iostreams.qbk | 2
   branches/quickbook-dev/libs/asio/doc/overview/line_based.qbk | 2
   branches/quickbook-dev/libs/asio/doc/overview/posix.qbk | 2
   branches/quickbook-dev/libs/asio/doc/overview/protocols.qbk | 2
   branches/quickbook-dev/libs/asio/doc/overview/rationale.qbk | 2
   branches/quickbook-dev/libs/asio/doc/overview/reactor.qbk | 2
   branches/quickbook-dev/libs/asio/doc/overview/serial_ports.qbk | 2
   branches/quickbook-dev/libs/asio/doc/overview/signals.qbk | 2
   branches/quickbook-dev/libs/asio/doc/overview/ssl.qbk | 2
   branches/quickbook-dev/libs/asio/doc/overview/strands.qbk | 2
   branches/quickbook-dev/libs/asio/doc/overview/streams.qbk | 2
   branches/quickbook-dev/libs/asio/doc/overview/threads.qbk | 2
   branches/quickbook-dev/libs/asio/doc/overview/timers.qbk | 2
   branches/quickbook-dev/libs/asio/doc/overview/windows.qbk | 43
   branches/quickbook-dev/libs/asio/doc/quickref.xml | 14
   branches/quickbook-dev/libs/asio/doc/reference.qbk | 48065 +++++++++++++++++++++------------------
   branches/quickbook-dev/libs/asio/doc/reference.xsl | 19
   branches/quickbook-dev/libs/asio/doc/requirements.qbk | 2
   branches/quickbook-dev/libs/asio/doc/requirements/AcceptHandler.qbk | 2
   branches/quickbook-dev/libs/asio/doc/requirements/AsyncRandomAccessReadDevice.qbk | 2
   branches/quickbook-dev/libs/asio/doc/requirements/AsyncRandomAccessWriteDevice.qbk | 2
   branches/quickbook-dev/libs/asio/doc/requirements/AsyncReadStream.qbk | 2
   branches/quickbook-dev/libs/asio/doc/requirements/AsyncWriteStream.qbk | 2
   branches/quickbook-dev/libs/asio/doc/requirements/CompletionHandler.qbk | 2
   branches/quickbook-dev/libs/asio/doc/requirements/ComposedConnectHandler.qbk | 2
   branches/quickbook-dev/libs/asio/doc/requirements/ConnectHandler.qbk | 2
   branches/quickbook-dev/libs/asio/doc/requirements/ConstBufferSequence.qbk | 2
   branches/quickbook-dev/libs/asio/doc/requirements/ConvertibleToConstBuffer.qbk | 2
   branches/quickbook-dev/libs/asio/doc/requirements/ConvertibleToMutableBuffer.qbk | 2
   branches/quickbook-dev/libs/asio/doc/requirements/DatagramSocketService.qbk | 2
   branches/quickbook-dev/libs/asio/doc/requirements/DescriptorService.qbk | 2
   branches/quickbook-dev/libs/asio/doc/requirements/Endpoint.qbk | 2
   branches/quickbook-dev/libs/asio/doc/requirements/GettableSerialPortOption.qbk | 2
   branches/quickbook-dev/libs/asio/doc/requirements/GettableSocketOption.qbk | 2
   branches/quickbook-dev/libs/asio/doc/requirements/HandleService.qbk | 2
   branches/quickbook-dev/libs/asio/doc/requirements/Handler.qbk | 2
   branches/quickbook-dev/libs/asio/doc/requirements/HandshakeHandler.qbk | 2
   branches/quickbook-dev/libs/asio/doc/requirements/InternetProtocol.qbk | 2
   branches/quickbook-dev/libs/asio/doc/requirements/IoControlCommand.qbk | 2
   branches/quickbook-dev/libs/asio/doc/requirements/IoObjectService.qbk | 2
   branches/quickbook-dev/libs/asio/doc/requirements/MutableBufferSequence.qbk | 2
   branches/quickbook-dev/libs/asio/doc/requirements/Protocol.qbk | 2
   branches/quickbook-dev/libs/asio/doc/requirements/RandomAccessHandleService.qbk | 2
   branches/quickbook-dev/libs/asio/doc/requirements/RawSocketService.qbk | 2
   branches/quickbook-dev/libs/asio/doc/requirements/ReadHandler.qbk | 2
   branches/quickbook-dev/libs/asio/doc/requirements/ResolveHandler.qbk | 2
   branches/quickbook-dev/libs/asio/doc/requirements/ResolverService.qbk | 2
   branches/quickbook-dev/libs/asio/doc/requirements/SeqPacketSocketService.qbk | 2
   branches/quickbook-dev/libs/asio/doc/requirements/SerialPortService.qbk | 2
   branches/quickbook-dev/libs/asio/doc/requirements/Service.qbk | 2
   branches/quickbook-dev/libs/asio/doc/requirements/SettableSerialPortOption.qbk | 2
   branches/quickbook-dev/libs/asio/doc/requirements/SettableSocketOption.qbk | 2
   branches/quickbook-dev/libs/asio/doc/requirements/ShutdownHandler.qbk | 2
   branches/quickbook-dev/libs/asio/doc/requirements/SignalHandler.qbk | 2
   branches/quickbook-dev/libs/asio/doc/requirements/SignalSetService.qbk | 2
   branches/quickbook-dev/libs/asio/doc/requirements/SocketAcceptorService.qbk | 2
   branches/quickbook-dev/libs/asio/doc/requirements/SocketService.qbk | 2
   branches/quickbook-dev/libs/asio/doc/requirements/StreamDescriptorService.qbk | 2
   branches/quickbook-dev/libs/asio/doc/requirements/StreamHandleService.qbk | 2
   branches/quickbook-dev/libs/asio/doc/requirements/StreamSocketService.qbk | 2
   branches/quickbook-dev/libs/asio/doc/requirements/SyncRandomAccessReadDevice.qbk | 2
   branches/quickbook-dev/libs/asio/doc/requirements/SyncRandomAccessWriteDevice.qbk | 2
   branches/quickbook-dev/libs/asio/doc/requirements/SyncReadStream.qbk | 2
   branches/quickbook-dev/libs/asio/doc/requirements/SyncWriteStream.qbk | 2
   branches/quickbook-dev/libs/asio/doc/requirements/TimeTraits.qbk | 2
   branches/quickbook-dev/libs/asio/doc/requirements/TimerService.qbk | 2
   branches/quickbook-dev/libs/asio/doc/requirements/WaitHandler.qbk | 2
   branches/quickbook-dev/libs/asio/doc/requirements/WriteHandler.qbk | 2
   branches/quickbook-dev/libs/asio/doc/requirements/asynchronous_operations.qbk | 2
   branches/quickbook-dev/libs/asio/doc/std_exception_dox.txt | 2
   branches/quickbook-dev/libs/asio/doc/tutorial.qbk | 26
   branches/quickbook-dev/libs/asio/doc/tutorial.xsl | 4
   branches/quickbook-dev/libs/asio/doc/using.qbk | 2
   branches/quickbook-dev/libs/asio/example/allocation/Jamfile | 2
   branches/quickbook-dev/libs/asio/example/allocation/Jamfile.v2 | 2
   branches/quickbook-dev/libs/asio/example/allocation/server.cpp | 2
   branches/quickbook-dev/libs/asio/example/buffers/Jamfile | 2
   branches/quickbook-dev/libs/asio/example/buffers/Jamfile.v2 | 2
   branches/quickbook-dev/libs/asio/example/buffers/reference_counted.cpp | 2
   branches/quickbook-dev/libs/asio/example/chat/Jamfile | 2
   branches/quickbook-dev/libs/asio/example/chat/Jamfile.v2 | 2
   branches/quickbook-dev/libs/asio/example/chat/chat_client.cpp | 2
   branches/quickbook-dev/libs/asio/example/chat/chat_message.hpp | 2
   branches/quickbook-dev/libs/asio/example/chat/chat_server.cpp | 2
   branches/quickbook-dev/libs/asio/example/chat/posix_chat_client.cpp | 2
   branches/quickbook-dev/libs/asio/example/echo/Jamfile | 2
   branches/quickbook-dev/libs/asio/example/echo/Jamfile.v2 | 2
   branches/quickbook-dev/libs/asio/example/echo/async_tcp_echo_server.cpp | 2
   branches/quickbook-dev/libs/asio/example/echo/async_udp_echo_server.cpp | 2
   branches/quickbook-dev/libs/asio/example/echo/blocking_tcp_echo_client.cpp | 2
   branches/quickbook-dev/libs/asio/example/echo/blocking_tcp_echo_server.cpp | 2
   branches/quickbook-dev/libs/asio/example/echo/blocking_udp_echo_client.cpp | 2
   branches/quickbook-dev/libs/asio/example/echo/blocking_udp_echo_server.cpp | 2
   branches/quickbook-dev/libs/asio/example/fork/Jamfile | 2
   branches/quickbook-dev/libs/asio/example/fork/Jamfile.v2 | 2
   branches/quickbook-dev/libs/asio/example/fork/daemon.cpp | 2
   branches/quickbook-dev/libs/asio/example/fork/process_per_connection.cpp | 2
   branches/quickbook-dev/libs/asio/example/http/client/Jamfile | 2
   branches/quickbook-dev/libs/asio/example/http/client/Jamfile.v2 | 2
   branches/quickbook-dev/libs/asio/example/http/client/async_client.cpp | 2
   branches/quickbook-dev/libs/asio/example/http/client/sync_client.cpp | 2
   branches/quickbook-dev/libs/asio/example/http/doc_root/data_1K.html | 2
   branches/quickbook-dev/libs/asio/example/http/doc_root/data_2K.html | 2
   branches/quickbook-dev/libs/asio/example/http/doc_root/data_4K.html | 2
   branches/quickbook-dev/libs/asio/example/http/doc_root/data_8K.html | 2
   branches/quickbook-dev/libs/asio/example/http/server/Jamfile | 2
   branches/quickbook-dev/libs/asio/example/http/server/Jamfile.v2 | 2
   branches/quickbook-dev/libs/asio/example/http/server/connection.cpp | 2
   branches/quickbook-dev/libs/asio/example/http/server/connection.hpp | 2
   branches/quickbook-dev/libs/asio/example/http/server/connection_manager.cpp | 2
   branches/quickbook-dev/libs/asio/example/http/server/connection_manager.hpp | 2
   branches/quickbook-dev/libs/asio/example/http/server/header.hpp | 2
   branches/quickbook-dev/libs/asio/example/http/server/main.cpp | 2
   branches/quickbook-dev/libs/asio/example/http/server/mime_types.cpp | 2
   branches/quickbook-dev/libs/asio/example/http/server/mime_types.hpp | 2
   branches/quickbook-dev/libs/asio/example/http/server/reply.cpp | 2
   branches/quickbook-dev/libs/asio/example/http/server/reply.hpp | 2
   branches/quickbook-dev/libs/asio/example/http/server/request.hpp | 2
   branches/quickbook-dev/libs/asio/example/http/server/request_handler.cpp | 2
   branches/quickbook-dev/libs/asio/example/http/server/request_handler.hpp | 2
   branches/quickbook-dev/libs/asio/example/http/server/request_parser.cpp | 2
   branches/quickbook-dev/libs/asio/example/http/server/request_parser.hpp | 2
   branches/quickbook-dev/libs/asio/example/http/server/server.cpp | 2
   branches/quickbook-dev/libs/asio/example/http/server/server.hpp | 2
   branches/quickbook-dev/libs/asio/example/http/server2/Jamfile | 2
   branches/quickbook-dev/libs/asio/example/http/server2/Jamfile.v2 | 2
   branches/quickbook-dev/libs/asio/example/http/server2/connection.cpp | 2
   branches/quickbook-dev/libs/asio/example/http/server2/connection.hpp | 2
   branches/quickbook-dev/libs/asio/example/http/server2/header.hpp | 2
   branches/quickbook-dev/libs/asio/example/http/server2/io_service_pool.cpp | 2
   branches/quickbook-dev/libs/asio/example/http/server2/io_service_pool.hpp | 2
   branches/quickbook-dev/libs/asio/example/http/server2/main.cpp | 2
   branches/quickbook-dev/libs/asio/example/http/server2/mime_types.cpp | 2
   branches/quickbook-dev/libs/asio/example/http/server2/mime_types.hpp | 2
   branches/quickbook-dev/libs/asio/example/http/server2/reply.cpp | 2
   branches/quickbook-dev/libs/asio/example/http/server2/reply.hpp | 2
   branches/quickbook-dev/libs/asio/example/http/server2/request.hpp | 2
   branches/quickbook-dev/libs/asio/example/http/server2/request_handler.cpp | 2
   branches/quickbook-dev/libs/asio/example/http/server2/request_handler.hpp | 2
   branches/quickbook-dev/libs/asio/example/http/server2/request_parser.cpp | 2
   branches/quickbook-dev/libs/asio/example/http/server2/request_parser.hpp | 2
   branches/quickbook-dev/libs/asio/example/http/server2/server.cpp | 2
   branches/quickbook-dev/libs/asio/example/http/server2/server.hpp | 2
   branches/quickbook-dev/libs/asio/example/http/server3/Jamfile | 2
   branches/quickbook-dev/libs/asio/example/http/server3/Jamfile.v2 | 2
   branches/quickbook-dev/libs/asio/example/http/server3/connection.cpp | 2
   branches/quickbook-dev/libs/asio/example/http/server3/connection.hpp | 2
   branches/quickbook-dev/libs/asio/example/http/server3/header.hpp | 2
   branches/quickbook-dev/libs/asio/example/http/server3/main.cpp | 2
   branches/quickbook-dev/libs/asio/example/http/server3/mime_types.cpp | 2
   branches/quickbook-dev/libs/asio/example/http/server3/mime_types.hpp | 2
   branches/quickbook-dev/libs/asio/example/http/server3/reply.cpp | 2
   branches/quickbook-dev/libs/asio/example/http/server3/reply.hpp | 2
   branches/quickbook-dev/libs/asio/example/http/server3/request.hpp | 2
   branches/quickbook-dev/libs/asio/example/http/server3/request_handler.cpp | 2
   branches/quickbook-dev/libs/asio/example/http/server3/request_handler.hpp | 2
   branches/quickbook-dev/libs/asio/example/http/server3/request_parser.cpp | 2
   branches/quickbook-dev/libs/asio/example/http/server3/request_parser.hpp | 2
   branches/quickbook-dev/libs/asio/example/http/server3/server.cpp | 2
   branches/quickbook-dev/libs/asio/example/http/server3/server.hpp | 2
   branches/quickbook-dev/libs/asio/example/http/server4/Jamfile | 2
   branches/quickbook-dev/libs/asio/example/http/server4/Jamfile.v2 | 2
   branches/quickbook-dev/libs/asio/example/http/server4/coroutine.hpp | 2
   branches/quickbook-dev/libs/asio/example/http/server4/file_handler.cpp | 2
   branches/quickbook-dev/libs/asio/example/http/server4/file_handler.hpp | 2
   branches/quickbook-dev/libs/asio/example/http/server4/header.hpp | 2
   branches/quickbook-dev/libs/asio/example/http/server4/main.cpp | 2
   branches/quickbook-dev/libs/asio/example/http/server4/mime_types.cpp | 2
   branches/quickbook-dev/libs/asio/example/http/server4/mime_types.hpp | 2
   branches/quickbook-dev/libs/asio/example/http/server4/reply.cpp | 2
   branches/quickbook-dev/libs/asio/example/http/server4/reply.hpp | 2
   branches/quickbook-dev/libs/asio/example/http/server4/request.hpp | 2
   branches/quickbook-dev/libs/asio/example/http/server4/request_parser.cpp | 2
   branches/quickbook-dev/libs/asio/example/http/server4/request_parser.hpp | 2
   branches/quickbook-dev/libs/asio/example/http/server4/server.cpp | 2
   branches/quickbook-dev/libs/asio/example/http/server4/server.hpp | 2
   branches/quickbook-dev/libs/asio/example/http/server4/unyield.hpp | 2
   branches/quickbook-dev/libs/asio/example/http/server4/yield.hpp | 2
   branches/quickbook-dev/libs/asio/example/icmp/Jamfile | 2
   branches/quickbook-dev/libs/asio/example/icmp/Jamfile.v2 | 2
   branches/quickbook-dev/libs/asio/example/icmp/icmp_header.hpp | 2
   branches/quickbook-dev/libs/asio/example/icmp/ipv4_header.hpp | 2
   branches/quickbook-dev/libs/asio/example/icmp/ping.cpp | 2
   branches/quickbook-dev/libs/asio/example/invocation/Jamfile | 2
   branches/quickbook-dev/libs/asio/example/invocation/Jamfile.v2 | 2
   branches/quickbook-dev/libs/asio/example/invocation/prioritised_handlers.cpp | 2
   branches/quickbook-dev/libs/asio/example/iostreams/Jamfile | 2
   branches/quickbook-dev/libs/asio/example/iostreams/Jamfile.v2 | 2
   branches/quickbook-dev/libs/asio/example/iostreams/daytime_client.cpp | 2
   branches/quickbook-dev/libs/asio/example/iostreams/daytime_server.cpp | 2
   branches/quickbook-dev/libs/asio/example/iostreams/http_client.cpp | 2
   branches/quickbook-dev/libs/asio/example/local/Jamfile | 2
   branches/quickbook-dev/libs/asio/example/local/Jamfile.v2 | 2
   branches/quickbook-dev/libs/asio/example/local/connect_pair.cpp | 2
   branches/quickbook-dev/libs/asio/example/local/iostream_client.cpp | 2
   branches/quickbook-dev/libs/asio/example/local/stream_client.cpp | 2
   branches/quickbook-dev/libs/asio/example/local/stream_server.cpp | 2
   branches/quickbook-dev/libs/asio/example/multicast/Jamfile | 2
   branches/quickbook-dev/libs/asio/example/multicast/Jamfile.v2 | 2
   branches/quickbook-dev/libs/asio/example/multicast/receiver.cpp | 2
   branches/quickbook-dev/libs/asio/example/multicast/sender.cpp | 2
   branches/quickbook-dev/libs/asio/example/nonblocking/Jamfile | 2
   branches/quickbook-dev/libs/asio/example/nonblocking/Jamfile.v2 | 2
   branches/quickbook-dev/libs/asio/example/nonblocking/third_party_lib.cpp | 2
   branches/quickbook-dev/libs/asio/example/porthopper/Jamfile | 2
   branches/quickbook-dev/libs/asio/example/porthopper/Jamfile.v2 | 2
   branches/quickbook-dev/libs/asio/example/porthopper/client.cpp | 2
   branches/quickbook-dev/libs/asio/example/porthopper/protocol.hpp | 2
   branches/quickbook-dev/libs/asio/example/porthopper/server.cpp | 2
   branches/quickbook-dev/libs/asio/example/serialization/Jamfile | 2
   branches/quickbook-dev/libs/asio/example/serialization/Jamfile.v2 | 2
   branches/quickbook-dev/libs/asio/example/serialization/client.cpp | 2
   branches/quickbook-dev/libs/asio/example/serialization/connection.hpp | 2
   branches/quickbook-dev/libs/asio/example/serialization/server.cpp | 2
   branches/quickbook-dev/libs/asio/example/serialization/stock.hpp | 2
   branches/quickbook-dev/libs/asio/example/services/Jamfile | 2
   branches/quickbook-dev/libs/asio/example/services/Jamfile.v2 | 2
   branches/quickbook-dev/libs/asio/example/services/basic_logger.hpp | 2
   branches/quickbook-dev/libs/asio/example/services/daytime_client.cpp | 2
   branches/quickbook-dev/libs/asio/example/services/logger.hpp | 2
   branches/quickbook-dev/libs/asio/example/services/logger_service.cpp | 2
   branches/quickbook-dev/libs/asio/example/services/logger_service.hpp | 2
   branches/quickbook-dev/libs/asio/example/services/stream_socket_service.hpp | 2
   branches/quickbook-dev/libs/asio/example/socks4/Jamfile | 2
   branches/quickbook-dev/libs/asio/example/socks4/Jamfile.v2 | 2
   branches/quickbook-dev/libs/asio/example/socks4/socks4.hpp | 2
   branches/quickbook-dev/libs/asio/example/socks4/sync_client.cpp | 2
   branches/quickbook-dev/libs/asio/example/ssl/Jamfile | 2
   branches/quickbook-dev/libs/asio/example/ssl/Jamfile.v2 | 2
   branches/quickbook-dev/libs/asio/example/ssl/README | 2
   branches/quickbook-dev/libs/asio/example/ssl/client.cpp | 2
   branches/quickbook-dev/libs/asio/example/ssl/server.cpp | 2
   branches/quickbook-dev/libs/asio/example/timeouts/Jamfile | 2
   branches/quickbook-dev/libs/asio/example/timeouts/Jamfile.v2 | 2
   branches/quickbook-dev/libs/asio/example/timeouts/async_tcp_client.cpp | 2
   branches/quickbook-dev/libs/asio/example/timeouts/blocking_tcp_client.cpp | 2
   branches/quickbook-dev/libs/asio/example/timeouts/blocking_udp_client.cpp | 2
   branches/quickbook-dev/libs/asio/example/timeouts/server.cpp | 2
   branches/quickbook-dev/libs/asio/example/timers/Jamfile | 2
   branches/quickbook-dev/libs/asio/example/timers/Jamfile.v2 | 2
   branches/quickbook-dev/libs/asio/example/timers/tick_count_timer.cpp | 2
   branches/quickbook-dev/libs/asio/example/timers/time_t_timer.cpp | 2
   branches/quickbook-dev/libs/asio/example/tutorial/Jamfile | 2
   branches/quickbook-dev/libs/asio/example/tutorial/Jamfile.v2 | 2
   branches/quickbook-dev/libs/asio/example/tutorial/daytime1/client.cpp | 2
   branches/quickbook-dev/libs/asio/example/tutorial/daytime2/server.cpp | 2
   branches/quickbook-dev/libs/asio/example/tutorial/daytime3/server.cpp | 2
   branches/quickbook-dev/libs/asio/example/tutorial/daytime4/client.cpp | 2
   branches/quickbook-dev/libs/asio/example/tutorial/daytime5/server.cpp | 2
   branches/quickbook-dev/libs/asio/example/tutorial/daytime6/server.cpp | 2
   branches/quickbook-dev/libs/asio/example/tutorial/daytime7/server.cpp | 2
   branches/quickbook-dev/libs/asio/example/tutorial/daytime_dox.txt | 2
   branches/quickbook-dev/libs/asio/example/tutorial/index_dox.txt | 2
   branches/quickbook-dev/libs/asio/example/tutorial/timer1/timer.cpp | 2
   branches/quickbook-dev/libs/asio/example/tutorial/timer2/timer.cpp | 2
   branches/quickbook-dev/libs/asio/example/tutorial/timer3/timer.cpp | 2
   branches/quickbook-dev/libs/asio/example/tutorial/timer4/timer.cpp | 2
   branches/quickbook-dev/libs/asio/example/tutorial/timer5/timer.cpp | 2
   branches/quickbook-dev/libs/asio/example/tutorial/timer_dox.txt | 2
   branches/quickbook-dev/libs/asio/example/windows/Jamfile | 2
   branches/quickbook-dev/libs/asio/example/windows/Jamfile.v2 | 2
   branches/quickbook-dev/libs/asio/example/windows/transmit_file.cpp | 2
   branches/quickbook-dev/libs/asio/test/Jamfile | 2
   branches/quickbook-dev/libs/asio/test/Jamfile.v2 | 20
   branches/quickbook-dev/libs/asio/test/archetypes/gettable_socket_option.hpp | 2
   branches/quickbook-dev/libs/asio/test/archetypes/io_control_command.hpp | 2
   branches/quickbook-dev/libs/asio/test/archetypes/settable_socket_option.hpp | 2
   branches/quickbook-dev/libs/asio/test/basic_datagram_socket.cpp | 2
   branches/quickbook-dev/libs/asio/test/basic_deadline_timer.cpp | 2
   branches/quickbook-dev/libs/asio/test/basic_raw_socket.cpp | 2
   branches/quickbook-dev/libs/asio/test/basic_seq_packet_socket.cpp | 2
   branches/quickbook-dev/libs/asio/test/basic_serial_port.cpp | 2
   branches/quickbook-dev/libs/asio/test/basic_signal_set.cpp | 2
   branches/quickbook-dev/libs/asio/test/basic_socket_acceptor.cpp | 2
   branches/quickbook-dev/libs/asio/test/basic_stream_socket.cpp | 2
   branches/quickbook-dev/libs/asio/test/basic_streambuf.cpp | 2
   branches/quickbook-dev/libs/asio/test/buffer.cpp | 2
   branches/quickbook-dev/libs/asio/test/buffered_read_stream.cpp | 2
   branches/quickbook-dev/libs/asio/test/buffered_stream.cpp | 2
   branches/quickbook-dev/libs/asio/test/buffered_write_stream.cpp | 2
   branches/quickbook-dev/libs/asio/test/buffers_iterator.cpp | 2
   branches/quickbook-dev/libs/asio/test/completion_condition.cpp | 2
   branches/quickbook-dev/libs/asio/test/connect.cpp | 2
   branches/quickbook-dev/libs/asio/test/datagram_socket_service.cpp | 2
   branches/quickbook-dev/libs/asio/test/deadline_timer.cpp | 2
   branches/quickbook-dev/libs/asio/test/deadline_timer_service.cpp | 2
   branches/quickbook-dev/libs/asio/test/error.cpp | 2
   branches/quickbook-dev/libs/asio/test/io_service.cpp | 2
   branches/quickbook-dev/libs/asio/test/ip/address.cpp | 2
   branches/quickbook-dev/libs/asio/test/ip/address_v4.cpp | 2
   branches/quickbook-dev/libs/asio/test/ip/address_v6.cpp | 2
   branches/quickbook-dev/libs/asio/test/ip/basic_endpoint.cpp | 2
   branches/quickbook-dev/libs/asio/test/ip/basic_resolver.cpp | 2
   branches/quickbook-dev/libs/asio/test/ip/basic_resolver_entry.cpp | 2
   branches/quickbook-dev/libs/asio/test/ip/basic_resolver_iterator.cpp | 2
   branches/quickbook-dev/libs/asio/test/ip/basic_resolver_query.cpp | 2
   branches/quickbook-dev/libs/asio/test/ip/host_name.cpp | 2
   branches/quickbook-dev/libs/asio/test/ip/multicast.cpp | 2
   branches/quickbook-dev/libs/asio/test/ip/resolver_query_base.cpp | 2
   branches/quickbook-dev/libs/asio/test/ip/resolver_service.cpp | 2
   branches/quickbook-dev/libs/asio/test/ip/tcp.cpp | 2
   branches/quickbook-dev/libs/asio/test/ip/udp.cpp | 2
   branches/quickbook-dev/libs/asio/test/ip/unicast.cpp | 2
   branches/quickbook-dev/libs/asio/test/ip/v6_only.cpp | 2
   branches/quickbook-dev/libs/asio/test/is_read_buffered.cpp | 2
   branches/quickbook-dev/libs/asio/test/is_write_buffered.cpp | 2
   branches/quickbook-dev/libs/asio/test/latency/Jamfile.v2 | 2
   branches/quickbook-dev/libs/asio/test/latency/allocator.hpp | 2
   branches/quickbook-dev/libs/asio/test/latency/coroutine.hpp | 2
   branches/quickbook-dev/libs/asio/test/latency/high_res_clock.hpp | 2
   branches/quickbook-dev/libs/asio/test/latency/tcp_client.cpp | 2
   branches/quickbook-dev/libs/asio/test/latency/tcp_server.cpp | 2
   branches/quickbook-dev/libs/asio/test/latency/udp_client.cpp | 2
   branches/quickbook-dev/libs/asio/test/latency/udp_server.cpp | 2
   branches/quickbook-dev/libs/asio/test/latency/unyield.hpp | 2
   branches/quickbook-dev/libs/asio/test/latency/yield.hpp | 2
   branches/quickbook-dev/libs/asio/test/local/basic_endpoint.cpp | 2
   branches/quickbook-dev/libs/asio/test/local/connect_pair.cpp | 2
   branches/quickbook-dev/libs/asio/test/local/datagram_protocol.cpp | 2
   branches/quickbook-dev/libs/asio/test/local/stream_protocol.cpp | 2
   branches/quickbook-dev/libs/asio/test/placeholders.cpp | 2
   branches/quickbook-dev/libs/asio/test/posix/basic_descriptor.cpp | 2
   branches/quickbook-dev/libs/asio/test/posix/basic_stream_descriptor.cpp | 2
   branches/quickbook-dev/libs/asio/test/posix/descriptor_base.cpp | 2
   branches/quickbook-dev/libs/asio/test/posix/stream_descriptor.cpp | 2
   branches/quickbook-dev/libs/asio/test/posix/stream_descriptor_service.cpp | 2
   branches/quickbook-dev/libs/asio/test/raw_socket_service.cpp | 2
   branches/quickbook-dev/libs/asio/test/read.cpp | 2
   branches/quickbook-dev/libs/asio/test/read_at.cpp | 2
   branches/quickbook-dev/libs/asio/test/read_until.cpp | 2
   branches/quickbook-dev/libs/asio/test/seq_packet_socket_service.cpp | 2
   branches/quickbook-dev/libs/asio/test/serial_port.cpp | 2
   branches/quickbook-dev/libs/asio/test/serial_port_base.cpp | 2
   branches/quickbook-dev/libs/asio/test/serial_port_service.cpp | 2
   branches/quickbook-dev/libs/asio/test/signal_set.cpp | 2
   branches/quickbook-dev/libs/asio/test/signal_set_service.cpp | 2
   branches/quickbook-dev/libs/asio/test/socket_acceptor_service.cpp | 2
   branches/quickbook-dev/libs/asio/test/socket_base.cpp | 2
   branches/quickbook-dev/libs/asio/test/ssl/Jamfile | 2
   branches/quickbook-dev/libs/asio/test/ssl/Jamfile.v2 | 2
   branches/quickbook-dev/libs/asio/test/ssl/basic_context.cpp | 2
   branches/quickbook-dev/libs/asio/test/ssl/context.cpp | 2
   branches/quickbook-dev/libs/asio/test/ssl/context_base.cpp | 2
   branches/quickbook-dev/libs/asio/test/ssl/context_service.cpp | 2
   branches/quickbook-dev/libs/asio/test/ssl/rfc2818_verification.cpp | 2
   branches/quickbook-dev/libs/asio/test/ssl/stream.cpp | 2
   branches/quickbook-dev/libs/asio/test/ssl/stream_base.cpp | 2
   branches/quickbook-dev/libs/asio/test/ssl/stream_service.cpp | 2
   branches/quickbook-dev/libs/asio/test/strand.cpp | 2
   branches/quickbook-dev/libs/asio/test/stream_socket_service.cpp | 2
   branches/quickbook-dev/libs/asio/test/streambuf.cpp | 2
   branches/quickbook-dev/libs/asio/test/time_traits.cpp | 2
   branches/quickbook-dev/libs/asio/test/unit_test.hpp | 2
   branches/quickbook-dev/libs/asio/test/windows/basic_handle.cpp | 2
   branches/quickbook-dev/libs/asio/test/windows/basic_random_access_handle.cpp | 2
   branches/quickbook-dev/libs/asio/test/windows/basic_stream_handle.cpp | 2
   branches/quickbook-dev/libs/asio/test/windows/overlapped_ptr.cpp | 2
   branches/quickbook-dev/libs/asio/test/windows/random_access_handle.cpp | 2
   branches/quickbook-dev/libs/asio/test/windows/random_access_handle_service.cpp | 2
   branches/quickbook-dev/libs/asio/test/windows/stream_handle.cpp | 2
   branches/quickbook-dev/libs/asio/test/windows/stream_handle_service.cpp | 2
   branches/quickbook-dev/libs/asio/test/write.cpp | 2
   branches/quickbook-dev/libs/asio/test/write_at.cpp | 2
   branches/quickbook-dev/libs/container/doc/container.qbk | 8
   branches/quickbook-dev/libs/conversion/doc/lexical_cast.qbk | 3
   branches/quickbook-dev/libs/conversion/lexical_cast_test.cpp | 11
   branches/quickbook-dev/libs/conversion/test/Jamfile.v2 | 1
   branches/quickbook-dev/libs/crc/index.html | 65
   branches/quickbook-dev/libs/exception/test/error_info_test.cpp | 41
   branches/quickbook-dev/libs/filesystem/v2/src/v2_operations.cpp | 6
   branches/quickbook-dev/libs/filesystem/v3/src/path.cpp | 158
   branches/quickbook-dev/libs/filesystem/v3/src/windows_file_codecvt.cpp | 4
   branches/quickbook-dev/libs/filesystem/v3/test/msvc10/filesystem-v3.sln | 6
   branches/quickbook-dev/libs/filesystem/v3/test/operations_test.cpp | 3
   branches/quickbook-dev/libs/filesystem/v3/test/path_test.cpp | 927
   branches/quickbook-dev/libs/geometry/doc/Jamfile.v2 | 6
   branches/quickbook-dev/libs/geometry/doc/about_documentation.qbk | 6
   branches/quickbook-dev/libs/geometry/doc/acknowledgments.qbk | 6
   branches/quickbook-dev/libs/geometry/doc/compiling.qbk | 6
   branches/quickbook-dev/libs/geometry/doc/concept/box.qbk | 6
   branches/quickbook-dev/libs/geometry/doc/concept/linestring.qbk | 6
   branches/quickbook-dev/libs/geometry/doc/concept/multi_linestring.qbk | 6
   branches/quickbook-dev/libs/geometry/doc/concept/multi_point.qbk | 6
   branches/quickbook-dev/libs/geometry/doc/concept/multi_polygon.qbk | 6
   branches/quickbook-dev/libs/geometry/doc/concept/point.qbk | 6
   branches/quickbook-dev/libs/geometry/doc/concept/polygon.qbk | 6
   branches/quickbook-dev/libs/geometry/doc/concept/ring.qbk | 6
   branches/quickbook-dev/libs/geometry/doc/concept/segment.qbk | 6
   branches/quickbook-dev/libs/geometry/doc/design_rationale.qbk | 6
   branches/quickbook-dev/libs/geometry/doc/doxy/doxygen_input/groups/groups.hpp | 2
   branches/quickbook-dev/libs/geometry/doc/doxy/doxygen_input/pages/doxygen_b_sets.hpp | 2
   branches/quickbook-dev/libs/geometry/doc/doxy/doxygen_input/pages/doxygen_c_strategy_rationale.hpp | 4
   branches/quickbook-dev/libs/geometry/doc/doxy/doxygen_input/pages/doxygen_d_robustness.hpp | 2
   branches/quickbook-dev/libs/geometry/doc/doxy/doxygen_input/pages/doxygen_examples.hpp | 4
   branches/quickbook-dev/libs/geometry/doc/doxy/doxygen_input/pages/doxygen_mainpage.hpp | 11
   branches/quickbook-dev/libs/geometry/doc/doxy/doxygen_input/pages/doxygen_pages.hpp | 4
   branches/quickbook-dev/libs/geometry/doc/doxy/doxygen_input/pages/doxygen_z_article09.hpp | 4
   branches/quickbook-dev/libs/geometry/doc/doxy/doxygen_input/sourcecode/doxygen_1.cpp | 4
   branches/quickbook-dev/libs/geometry/doc/doxy/doxygen_input/sourcecode/doxygen_2.cpp | 4
   branches/quickbook-dev/libs/geometry/doc/doxy/doxygen_input/sourcecode/doxygen_3.cpp | 4
   branches/quickbook-dev/libs/geometry/doc/doxy/doxygen_input/sourcecode/doxygen_4.cpp | 4
   branches/quickbook-dev/libs/geometry/doc/doxy/doxygen_input/sourcecode/doxygen_5.cpp | 4
   branches/quickbook-dev/libs/geometry/doc/generated/area_status.qbk | 18
   branches/quickbook-dev/libs/geometry/doc/generated/distance_status.qbk | 8
   branches/quickbook-dev/libs/geometry/doc/geometry.qbk | 9
   branches/quickbook-dev/libs/geometry/doc/html/index.html | 119
   branches/quickbook-dev/libs/geometry/doc/imports.qbk | 6
   branches/quickbook-dev/libs/geometry/doc/introduction.qbk | 6
   branches/quickbook-dev/libs/geometry/doc/make_qbk.py | 6
   branches/quickbook-dev/libs/geometry/doc/matrix.qbk | 6
   branches/quickbook-dev/libs/geometry/doc/quickbook/arithmetic.qbk | 6
   branches/quickbook-dev/libs/geometry/doc/quickbook/boolean.qbk | 6
   branches/quickbook-dev/libs/geometry/doc/quickbook/geometries.qbk | 6
   branches/quickbook-dev/libs/geometry/doc/quickbook/geometry_concepts.qbk | 6
   branches/quickbook-dev/libs/geometry/doc/quickbook/geometry_types.qbk | 6
   branches/quickbook-dev/libs/geometry/doc/quickbook/misc.qbk | 6
   branches/quickbook-dev/libs/geometry/doc/quickbook/references.qbk | 6
   branches/quickbook-dev/libs/geometry/doc/quickbook/strategy_rationale.qbk | 6
   branches/quickbook-dev/libs/geometry/doc/quickstart.qbk | 6
   branches/quickbook-dev/libs/geometry/doc/reference.qbk | 6
   branches/quickbook-dev/libs/geometry/doc/reference/algorithms/append.qbk | 6
   branches/quickbook-dev/libs/geometry/doc/reference/algorithms/area.qbk | 6
   branches/quickbook-dev/libs/geometry/doc/reference/algorithms/buffer.qbk | 6
   branches/quickbook-dev/libs/geometry/doc/reference/algorithms/centroid.qbk | 6
   branches/quickbook-dev/libs/geometry/doc/reference/algorithms/centroid_strategies.qbk | 6
   branches/quickbook-dev/libs/geometry/doc/reference/algorithms/clear.qbk | 8
   branches/quickbook-dev/libs/geometry/doc/reference/algorithms/comparable_distance.qbk | 6
   branches/quickbook-dev/libs/geometry/doc/reference/algorithms/convert.qbk | 8
   branches/quickbook-dev/libs/geometry/doc/reference/algorithms/convex_hull.qbk | 8
   branches/quickbook-dev/libs/geometry/doc/reference/algorithms/correct.qbk | 6
   branches/quickbook-dev/libs/geometry/doc/reference/algorithms/difference.qbk | 2
   branches/quickbook-dev/libs/geometry/doc/reference/algorithms/difference_inserter.qbk | 2
   branches/quickbook-dev/libs/geometry/doc/reference/algorithms/distance.qbk | 7
   branches/quickbook-dev/libs/geometry/doc/reference/algorithms/equals.qbk | 6
   branches/quickbook-dev/libs/geometry/doc/reference/algorithms/expand.qbk | 6
   branches/quickbook-dev/libs/geometry/doc/reference/algorithms/intersection.qbk | 6
   branches/quickbook-dev/libs/geometry/doc/reference/algorithms/intersects.qbk | 6
   branches/quickbook-dev/libs/geometry/doc/reference/algorithms/length.qbk | 6
   branches/quickbook-dev/libs/geometry/doc/reference/algorithms/num_geometries.qbk | 6
   branches/quickbook-dev/libs/geometry/doc/reference/algorithms/num_interior_rings.qbk | 6
   branches/quickbook-dev/libs/geometry/doc/reference/algorithms/num_points.qbk | 6
   branches/quickbook-dev/libs/geometry/doc/reference/algorithms/overlay_behavior.qbk | 2
   branches/quickbook-dev/libs/geometry/doc/reference/algorithms/perimeter.qbk | 6
   branches/quickbook-dev/libs/geometry/doc/reference/algorithms/reverse.qbk | 6
   branches/quickbook-dev/libs/geometry/doc/reference/algorithms/simplify.qbk | 6
   branches/quickbook-dev/libs/geometry/doc/reference/algorithms/simplify_inserter.qbk | 6
   branches/quickbook-dev/libs/geometry/doc/reference/algorithms/sym_difference.qbk | 6
   branches/quickbook-dev/libs/geometry/doc/reference/algorithms/transform.qbk | 6
   branches/quickbook-dev/libs/geometry/doc/reference/algorithms/transform_with_strategy.qbk | 6
   branches/quickbook-dev/libs/geometry/doc/reference/algorithms/union.qbk | 6
   branches/quickbook-dev/libs/geometry/doc/reference/algorithms/unique.qbk | 6
   branches/quickbook-dev/libs/geometry/doc/reference/algorithms/within.qbk | 6
   branches/quickbook-dev/libs/geometry/doc/reference/core/closure.qbk | 2
   branches/quickbook-dev/libs/geometry/doc/reference/core/coordinate_dimension.qbk | 2
   branches/quickbook-dev/libs/geometry/doc/reference/core/coordinate_system.qbk | 2
   branches/quickbook-dev/libs/geometry/doc/reference/core/coordinate_type.qbk | 2
   branches/quickbook-dev/libs/geometry/doc/reference/core/degree_radian.qbk | 2
   branches/quickbook-dev/libs/geometry/doc/reference/core/get_box.qbk | 2
   branches/quickbook-dev/libs/geometry/doc/reference/core/get_point.qbk | 2
   branches/quickbook-dev/libs/geometry/doc/reference/core/interior_type.qbk | 2
   branches/quickbook-dev/libs/geometry/doc/reference/core/max_corner.qbk | 2
   branches/quickbook-dev/libs/geometry/doc/reference/core/min_corner.qbk | 2
   branches/quickbook-dev/libs/geometry/doc/reference/core/min_max_corner.qbk | 2
   branches/quickbook-dev/libs/geometry/doc/reference/core/point_order.qbk | 2
   branches/quickbook-dev/libs/geometry/doc/reference/core/point_type.qbk | 2
   branches/quickbook-dev/libs/geometry/doc/reference/core/ring_type.qbk | 2
   branches/quickbook-dev/libs/geometry/doc/reference/core/set_box.qbk | 2
   branches/quickbook-dev/libs/geometry/doc/reference/core/set_point.qbk | 2
   branches/quickbook-dev/libs/geometry/doc/reference/core/tag.qbk | 2
   branches/quickbook-dev/libs/geometry/doc/reference/core/tag_cast.qbk | 2
   branches/quickbook-dev/libs/geometry/doc/reference/geometries/adapted/boost_array.qbk | 6
   branches/quickbook-dev/libs/geometry/doc/reference/geometries/adapted/boost_fusion.qbk | 6
   branches/quickbook-dev/libs/geometry/doc/reference/geometries/adapted/boost_polygon/point_data.qbk | 6
   branches/quickbook-dev/libs/geometry/doc/reference/geometries/adapted/boost_polygon/polygon_data.qbk | 6
   branches/quickbook-dev/libs/geometry/doc/reference/geometries/adapted/boost_polygon/polygon_with_holes_data.qbk | 6
   branches/quickbook-dev/libs/geometry/doc/reference/geometries/adapted/boost_polygon/rectangle_data.qbk | 6
   branches/quickbook-dev/libs/geometry/doc/reference/geometries/adapted/boost_range/adapts_model.qbk | 6
   branches/quickbook-dev/libs/geometry/doc/reference/geometries/adapted/boost_range/filtered.qbk | 6
   branches/quickbook-dev/libs/geometry/doc/reference/geometries/adapted/boost_range/reversed.qbk | 6
   branches/quickbook-dev/libs/geometry/doc/reference/geometries/adapted/boost_range/sliced.qbk | 6
   branches/quickbook-dev/libs/geometry/doc/reference/geometries/adapted/boost_range/strided.qbk | 6
   branches/quickbook-dev/libs/geometry/doc/reference/geometries/adapted/boost_range/uniqued.qbk | 6
   branches/quickbook-dev/libs/geometry/doc/reference/geometries/adapted/boost_tuple.qbk | 6
   branches/quickbook-dev/libs/geometry/doc/reference/geometries/adapted/c_array.qbk | 6
   branches/quickbook-dev/libs/geometry/doc/reference/geometries/point.qbk | 6
   branches/quickbook-dev/libs/geometry/doc/reference/geometries/register/point.qbk | 6
   branches/quickbook-dev/libs/geometry/doc/reference/views/box_view.qbk | 2
   branches/quickbook-dev/libs/geometry/doc/reference/views/segment_view.qbk | 2
   branches/quickbook-dev/libs/geometry/doc/src/copyright_block.qbk | 6
   branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/Jamfile.v2 | 4
   branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/configuration.hpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/doxygen_elements.hpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/doxygen_xml2qbk.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/doxygen_xml_parser.hpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/file_to_string.hpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/parameter_predicates.hpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/quickbook_output.hpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/rapidxml_util.hpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/sample/Jamfile.v2 | 6
   branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/sample/fruit.qbk | 2
   branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/sample/make_qbk.py | 2
   branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/sample/src/examples/apple_example.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/sample/src/fruit.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/sample/src/fruit.hpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/implementation_status/Jamfile.v2 | 6
   branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/implementation_status/implementation_status.cpp | 4
   branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/implementation_status/tmp/Jamfile.v2 | 4
   branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/support_status/qbk_outputter.hpp | 9
   branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/support_status/support_status.cpp | 87
   branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/support_status/text_outputter.hpp | 5
   branches/quickbook-dev/libs/geometry/doc/src/examples/Jamfile.v2 | 6
   branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/Jamfile.v2 | 6
   branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/append.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/area.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/area_with_strategy.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/assign.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/assign_2d_point.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/assign_3d_point.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/assign_box_corners.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/assign_inverse.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/assign_point_from_index.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/assign_point_to_index.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/assign_points.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/centroid.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/clear.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/comparable_distance.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/convert.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/convex_hull.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/correct.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/create_svg_overlay.hpp | 7
   branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/create_svg_two.hpp | 6
   branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/difference.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/difference_inserter.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/distance.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/envelope.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/equals.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/expand.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/for_each_point.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/for_each_point_const.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/for_each_segment_const.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/intersection_ls_ls_point.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/intersection_poly_poly.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/intersection_segment.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/intersects_linestring.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/intersects_segment.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/length.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/length_with_strategy.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/make_2d_point.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/make_3d_point.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/make_inverse.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/make_with_range.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/num_geometries.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/num_interior_rings.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/num_points.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/return_envelope.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/reverse.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/simplify.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/simplify_insert.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/simplify_insert_with_strategy.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/sym_difference.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/transform.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/transform_with_strategy.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/union.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/unique.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/within.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/core/Jamfile.v2 | 6
   branches/quickbook-dev/libs/geometry/doc/src/examples/core/closure.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/core/coordinate_dimension.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/core/coordinate_system.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/core/coordinate_type.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/core/degree_radian.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/core/get_box.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/core/get_point.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/core/interior_type.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/core/point_order.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/core/point_type.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/core/ring_type.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/core/rings.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/core/set_box.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/core/set_point.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/core/tag.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/core/tag_cast.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/Jamfile.v2 | 6
   branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/adapted/Jamfile.v2 | 6
   branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/adapted/boost_array.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/adapted/boost_fusion.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/adapted/boost_polygon.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/adapted/boost_range/Jamfile.v2 | 6
   branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/adapted/boost_range/filtered.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/adapted/boost_range/reversed.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/adapted/boost_range/sliced.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/adapted/boost_range/strided.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/adapted/boost_range/uniqued.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/adapted/boost_tuple.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/adapted/c_array.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/point.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/register/Jamfile.v2 | 6
   branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/register/box.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/register/box_2d_4values.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/register/box_templated.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/register/linestring.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/register/linestring_templated.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/register/multi_linestring.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/register/multi_point.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/register/multi_point_templated.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/register/multi_polygon.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/register/point.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/register/ring.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/register/ring_templated.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/quick_start.cpp | 6
   branches/quickbook-dev/libs/geometry/doc/src/examples/views/Jamfile.v2 | 6
   branches/quickbook-dev/libs/geometry/doc/src/examples/views/box_view.cpp | 2
   branches/quickbook-dev/libs/geometry/doc/src/examples/views/segment_view.cpp | 2
   branches/quickbook-dev/libs/geometry/example/01_point_example.cpp | 6
   branches/quickbook-dev/libs/geometry/example/02_linestring_example.cpp | 6
   branches/quickbook-dev/libs/geometry/example/03_polygon_example.cpp | 6
   branches/quickbook-dev/libs/geometry/example/04_boost_example.cpp | 6
   branches/quickbook-dev/libs/geometry/example/05_a_overlay_polygon_example.cpp | 6
   branches/quickbook-dev/libs/geometry/example/05_b_overlay_linestring_polygon_example.cpp | 6
   branches/quickbook-dev/libs/geometry/example/06_a_transformation_example.cpp | 6
   branches/quickbook-dev/libs/geometry/example/06_b_transformation_example.cpp | 2
   branches/quickbook-dev/libs/geometry/example/07_a_graph_route_example.cpp | 6
   branches/quickbook-dev/libs/geometry/example/07_b_graph_route_example.cpp | 6
   branches/quickbook-dev/libs/geometry/example/Jamfile.v2 | 6
   branches/quickbook-dev/libs/geometry/example/c01_custom_point_example.cpp | 6
   branches/quickbook-dev/libs/geometry/example/c02_custom_box_example.cpp | 6
   branches/quickbook-dev/libs/geometry/example/c03_custom_linestring_example.cpp | 6
   branches/quickbook-dev/libs/geometry/example/c04_a_custom_triangle_example.cpp | 6
   branches/quickbook-dev/libs/geometry/example/c04_b_custom_triangle_example.cpp | 6
   branches/quickbook-dev/libs/geometry/example/c05_custom_point_pointer_example.cpp | 6
   branches/quickbook-dev/libs/geometry/example/c06_custom_polygon_example.cpp | 6
   branches/quickbook-dev/libs/geometry/example/c07_custom_ring_pointer_example.cpp | 6
   branches/quickbook-dev/libs/geometry/example/c08_custom_non_std_example.cpp | 6
   branches/quickbook-dev/libs/geometry/example/c09_custom_fusion_example.cpp | 4
   branches/quickbook-dev/libs/geometry/example/c10_custom_cs_example.cpp | 6
   branches/quickbook-dev/libs/geometry/example/c11_custom_cs_transform_example.cpp | 6
   branches/quickbook-dev/libs/geometry/example/ml01_multipolygon_simplify.cpp | 2
   branches/quickbook-dev/libs/geometry/example/with_external_libs/x01_qt_example.cpp | 2
   branches/quickbook-dev/libs/geometry/example/with_external_libs/x02_gd_example.cpp | 2
   branches/quickbook-dev/libs/geometry/example/with_external_libs/x03_a_soci_example.cpp | 2
   branches/quickbook-dev/libs/geometry/example/with_external_libs/x03_b_soci_example.cpp | 2
   branches/quickbook-dev/libs/geometry/example/with_external_libs/x03_c_soci_example.cpp | 2
   branches/quickbook-dev/libs/geometry/example/with_external_libs/x03_d_soci_example.cpp | 2
   branches/quickbook-dev/libs/geometry/example/with_external_libs/x04_wxwidgets_world_mapper.cpp | 2
   branches/quickbook-dev/libs/geometry/example/with_external_libs/x05_shapelib_example.cpp | 4
   branches/quickbook-dev/libs/geometry/example/with_external_libs/x06_qt_world_mapper.cpp | 2
   branches/quickbook-dev/libs/geometry/example_extensions/Jamfile.v2 | 6
   branches/quickbook-dev/libs/geometry/example_extensions/experimental/geometry_of.cpp | 2
   branches/quickbook-dev/libs/geometry/example_extensions/gis/Jamfile.v2 | 6
   branches/quickbook-dev/libs/geometry/example_extensions/gis/io/shapelib/shapelib.cpp | 2
   branches/quickbook-dev/libs/geometry/example_extensions/gis/latlong/Jamfile.v2 | 6
   branches/quickbook-dev/libs/geometry/example_extensions/gis/latlong/distance_example.cpp | 4
   branches/quickbook-dev/libs/geometry/example_extensions/gis/latlong/point_ll_example.cpp | 4
   branches/quickbook-dev/libs/geometry/example_extensions/gis/projections/Jamfile.v2 | 6
   branches/quickbook-dev/libs/geometry/example_extensions/gis/projections/p01_projection_example.cpp | 4
   branches/quickbook-dev/libs/geometry/example_extensions/gis/projections/p02_projfactory_example.cpp | 4
   branches/quickbook-dev/libs/geometry/example_extensions/gis/projections/p03_projmap_example.cpp | 4
   branches/quickbook-dev/libs/geometry/example_extensions/units/08_units_example.cpp | 6
   branches/quickbook-dev/libs/geometry/test/Jamfile.v2 | 6
   branches/quickbook-dev/libs/geometry/test/algorithms/Jamfile.v2 | 6
   branches/quickbook-dev/libs/geometry/test/algorithms/append.cpp | 6
   branches/quickbook-dev/libs/geometry/test/algorithms/area.cpp | 16
   branches/quickbook-dev/libs/geometry/test/algorithms/assign.cpp | 6
   branches/quickbook-dev/libs/geometry/test/algorithms/buffer.cpp | 6
   branches/quickbook-dev/libs/geometry/test/algorithms/centroid.cpp | 20
   branches/quickbook-dev/libs/geometry/test/algorithms/comparable_distance.cpp | 6
   branches/quickbook-dev/libs/geometry/test/algorithms/convert.cpp | 6
   branches/quickbook-dev/libs/geometry/test/algorithms/convex_hull.cpp | 13
   branches/quickbook-dev/libs/geometry/test/algorithms/correct.cpp | 6
   branches/quickbook-dev/libs/geometry/test/algorithms/covered_by.cpp | 2
   branches/quickbook-dev/libs/geometry/test/algorithms/detail/Jamfile.v2 | 6
   branches/quickbook-dev/libs/geometry/test/algorithms/detail/partition.cpp | 2
   branches/quickbook-dev/libs/geometry/test/algorithms/detail/sections/Jamfile.v2 | 6
   branches/quickbook-dev/libs/geometry/test/algorithms/detail/sections/range_by_section.cpp | 2
   branches/quickbook-dev/libs/geometry/test/algorithms/detail/sections/sectionalize.cpp | 6
   branches/quickbook-dev/libs/geometry/test/algorithms/difference.cpp | 3
   branches/quickbook-dev/libs/geometry/test/algorithms/disjoint.cpp | 6
   branches/quickbook-dev/libs/geometry/test/algorithms/distance.cpp | 22
   branches/quickbook-dev/libs/geometry/test/algorithms/envelope.cpp | 6
   branches/quickbook-dev/libs/geometry/test/algorithms/equals.cpp | 2
   branches/quickbook-dev/libs/geometry/test/algorithms/expand.cpp | 6
   branches/quickbook-dev/libs/geometry/test/algorithms/for_each.cpp | 2
   branches/quickbook-dev/libs/geometry/test/algorithms/intersection.cpp | 6
   branches/quickbook-dev/libs/geometry/test/algorithms/intersection_segment.cpp | 6
   branches/quickbook-dev/libs/geometry/test/algorithms/intersects.cpp | 2
   branches/quickbook-dev/libs/geometry/test/algorithms/length.cpp | 10
   branches/quickbook-dev/libs/geometry/test/algorithms/make.cpp | 6
   branches/quickbook-dev/libs/geometry/test/algorithms/overlaps.cpp | 2
   branches/quickbook-dev/libs/geometry/test/algorithms/overlay/Jamfile.v2 | 12
   branches/quickbook-dev/libs/geometry/test/algorithms/overlay/assemble.cpp | 2
   branches/quickbook-dev/libs/geometry/test/algorithms/overlay/ccw_traverse.cpp | 3
   branches/quickbook-dev/libs/geometry/test/algorithms/overlay/dissolver.cpp | 2
   branches/quickbook-dev/libs/geometry/test/algorithms/overlay/enrich_intersection_points.cpp | 6
   branches/quickbook-dev/libs/geometry/test/algorithms/overlay/get_turn_info.cpp | 2
   branches/quickbook-dev/libs/geometry/test/algorithms/overlay/get_turns.cpp | 6
   branches/quickbook-dev/libs/geometry/test/algorithms/overlay/overlay_cases.hpp | 2
   branches/quickbook-dev/libs/geometry/test/algorithms/overlay/overlay_common.hpp | 4
   branches/quickbook-dev/libs/geometry/test/algorithms/overlay/relative_order.cpp | 2
   branches/quickbook-dev/libs/geometry/test/algorithms/overlay/robustness/interior_triangles.cpp | 2
   branches/quickbook-dev/libs/geometry/test/algorithms/overlay/robustness/intersection_pies.cpp | 2
   branches/quickbook-dev/libs/geometry/test/algorithms/overlay/robustness/intersection_stars.cpp | 2
   branches/quickbook-dev/libs/geometry/test/algorithms/overlay/robustness/intersects.cpp | 2
   branches/quickbook-dev/libs/geometry/test/algorithms/overlay/robustness/random_ellipses_stars.cpp | 2
   branches/quickbook-dev/libs/geometry/test/algorithms/overlay/robustness/recursive_polygons.cpp | 2
   branches/quickbook-dev/libs/geometry/test/algorithms/overlay/robustness/star_comb.cpp | 2
   branches/quickbook-dev/libs/geometry/test/algorithms/overlay/robustness/star_comb.hpp | 2
   branches/quickbook-dev/libs/geometry/test/algorithms/overlay/robustness/test_overlay_p_q.hpp | 9
   branches/quickbook-dev/libs/geometry/test/algorithms/overlay/select_rings.cpp | 2
   branches/quickbook-dev/libs/geometry/test/algorithms/overlay/self_intersection_points.cpp | 42
   branches/quickbook-dev/libs/geometry/test/algorithms/overlay/split_rings.cpp | 6
   branches/quickbook-dev/libs/geometry/test/algorithms/overlay/traverse.cpp | 2
   branches/quickbook-dev/libs/geometry/test/algorithms/overlay/traverse_gmp.cpp | 6
   branches/quickbook-dev/libs/geometry/test/algorithms/perimeter.cpp | 13
   branches/quickbook-dev/libs/geometry/test/algorithms/reverse.cpp | 2
   branches/quickbook-dev/libs/geometry/test/algorithms/simplify.cpp | 6
   branches/quickbook-dev/libs/geometry/test/algorithms/test_area.hpp | 16
   branches/quickbook-dev/libs/geometry/test/algorithms/test_centroid.hpp | 18
   branches/quickbook-dev/libs/geometry/test/algorithms/test_convert.hpp | 2
   branches/quickbook-dev/libs/geometry/test/algorithms/test_convex_hull.hpp | 16
   branches/quickbook-dev/libs/geometry/test/algorithms/test_covered_by.hpp | 2
   branches/quickbook-dev/libs/geometry/test/algorithms/test_difference.hpp | 2
   branches/quickbook-dev/libs/geometry/test/algorithms/test_distance.hpp | 16
   branches/quickbook-dev/libs/geometry/test/algorithms/test_envelope.hpp | 2
   branches/quickbook-dev/libs/geometry/test/algorithms/test_equals.hpp | 2
   branches/quickbook-dev/libs/geometry/test/algorithms/test_expand.hpp | 2
   branches/quickbook-dev/libs/geometry/test/algorithms/test_for_each.hpp | 2
   branches/quickbook-dev/libs/geometry/test/algorithms/test_intersection.hpp | 2
   branches/quickbook-dev/libs/geometry/test/algorithms/test_intersects.hpp | 2
   branches/quickbook-dev/libs/geometry/test/algorithms/test_length.hpp | 15
   branches/quickbook-dev/libs/geometry/test/algorithms/test_overlaps.hpp | 2
   branches/quickbook-dev/libs/geometry/test/algorithms/test_overlay.hpp | 2
   branches/quickbook-dev/libs/geometry/test/algorithms/test_perimeter.hpp | 15
   branches/quickbook-dev/libs/geometry/test/algorithms/test_relate.hpp | 2
   branches/quickbook-dev/libs/geometry/test/algorithms/test_reverse.hpp | 2
   branches/quickbook-dev/libs/geometry/test/algorithms/test_simplify.hpp | 2
   branches/quickbook-dev/libs/geometry/test/algorithms/test_union.hpp | 13
   branches/quickbook-dev/libs/geometry/test/algorithms/test_unique.hpp | 2
   branches/quickbook-dev/libs/geometry/test/algorithms/test_within.hpp | 2
   branches/quickbook-dev/libs/geometry/test/algorithms/transform.cpp | 6
   branches/quickbook-dev/libs/geometry/test/algorithms/union.cpp | 6
   branches/quickbook-dev/libs/geometry/test/algorithms/unique.cpp | 2
   branches/quickbook-dev/libs/geometry/test/algorithms/within.cpp | 2
   branches/quickbook-dev/libs/geometry/test/arithmetic/Jamfile.v2 | 6
   branches/quickbook-dev/libs/geometry/test/arithmetic/arithmetic.cpp | 6
   branches/quickbook-dev/libs/geometry/test/arithmetic/dot_product.cpp | 6
   branches/quickbook-dev/libs/geometry/test/concepts/Jamfile.v2 | 6
   branches/quickbook-dev/libs/geometry/test/concepts/linestring_concept.cpp | 2
   branches/quickbook-dev/libs/geometry/test/core/Jamfile.v2 | 6
   branches/quickbook-dev/libs/geometry/test/core/access.cpp | 6
   branches/quickbook-dev/libs/geometry/test/core/coordinate_dimension.cpp | 2
   branches/quickbook-dev/libs/geometry/test/core/coordinate_system.cpp | 2
   branches/quickbook-dev/libs/geometry/test/core/coordinate_type.cpp | 2
   branches/quickbook-dev/libs/geometry/test/core/geometry_id.cpp | 2
   branches/quickbook-dev/libs/geometry/test/core/point_type.cpp | 2
   branches/quickbook-dev/libs/geometry/test/core/radian_access.cpp | 6
   branches/quickbook-dev/libs/geometry/test/core/reverse_dispatch.cpp | 6
   branches/quickbook-dev/libs/geometry/test/core/ring.cpp | 6
   branches/quickbook-dev/libs/geometry/test/core/tag.cpp | 2
   branches/quickbook-dev/libs/geometry/test/core/topological_dimension.cpp | 2
   branches/quickbook-dev/libs/geometry/test/geometries/Jamfile.v2 | 6
   branches/quickbook-dev/libs/geometry/test/geometries/adapted.cpp | 2
   branches/quickbook-dev/libs/geometry/test/geometries/boost_array_as_point.cpp | 4
   branches/quickbook-dev/libs/geometry/test/geometries/boost_fusion.cpp | 2
   branches/quickbook-dev/libs/geometry/test/geometries/boost_polygon.cpp | 9
   branches/quickbook-dev/libs/geometry/test/geometries/boost_polygon_overlay.cpp | 2
   branches/quickbook-dev/libs/geometry/test/geometries/boost_range.cpp | 2
   branches/quickbook-dev/libs/geometry/test/geometries/boost_tuple.cpp | 2
   branches/quickbook-dev/libs/geometry/test/geometries/box.cpp | 6
   branches/quickbook-dev/libs/geometry/test/geometries/concepts/check.cpp | 6
   branches/quickbook-dev/libs/geometry/test/geometries/custom_linestring.cpp | 6
   branches/quickbook-dev/libs/geometry/test/geometries/segment.cpp | 6
   branches/quickbook-dev/libs/geometry/test/geometry_test_common.hpp | 6
   branches/quickbook-dev/libs/geometry/test/io/Jamfile.v2 | 6
   branches/quickbook-dev/libs/geometry/test/io/wkt/Jamfile.v2 | 6
   branches/quickbook-dev/libs/geometry/test/io/wkt/io_wkt_tests.sln | 10
   branches/quickbook-dev/libs/geometry/test/io/wkt/wkt.cpp | 15
   branches/quickbook-dev/libs/geometry/test/io/wkt/wkt.vcproj | 8
   branches/quickbook-dev/libs/geometry/test/iterators/Jamfile.v2 | 6
   branches/quickbook-dev/libs/geometry/test/iterators/closing_iterator.cpp | 6
   branches/quickbook-dev/libs/geometry/test/iterators/ever_circling_iterator.cpp | 6
   branches/quickbook-dev/libs/geometry/test/multi/Jamfile.v2 | 6
   branches/quickbook-dev/libs/geometry/test/multi/algorithms/Jamfile.v2 | 6
   branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_area.cpp | 2
   branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_centroid.cpp | 6
   branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_convert.cpp | 2
   branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_convex_hull.cpp | 12
   branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_correct.cpp | 2
   branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_covered_by.cpp | 2
   branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_difference.cpp | 2
   branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_distance.cpp | 23
   branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_envelope.cpp | 6
   branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_equals.cpp | 2
   branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_for_each.cpp | 2
   branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_intersection.cpp | 2
   branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_length.cpp | 2
   branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_num_geometries.cpp | 2
   branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_num_interior_rings.cpp | 2
   branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_num_points.cpp | 2
   branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_perimeter.cpp | 2
   branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_reverse.cpp | 2
   branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_simplify.cpp | 2
   branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_transform.cpp | 6
   branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_union.cpp | 2
   branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_unique.cpp | 2
   branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_within.cpp | 2
   branches/quickbook-dev/libs/geometry/test/multi/algorithms/overlay/Jamfile.v2 | 6
   branches/quickbook-dev/libs/geometry/test/multi/algorithms/overlay/multi_overlay_cases.hpp | 2
   branches/quickbook-dev/libs/geometry/test/multi/algorithms/overlay/multi_overlay_common.hpp | 4
   branches/quickbook-dev/libs/geometry/test/multi/algorithms/overlay/multi_traverse.cpp | 2
   branches/quickbook-dev/libs/geometry/test/multi/io/Jamfile.v2 | 9
   branches/quickbook-dev/libs/geometry/test/multi/io/wkt/Jamfile.v2 | 6
   branches/quickbook-dev/libs/geometry/test/multi/io/wkt/wkt.cpp | 6
   branches/quickbook-dev/libs/geometry/test/point_concept/Jamfile.v2 | 6
   branches/quickbook-dev/libs/geometry/test/point_concept/array_point.cpp | 6
   branches/quickbook-dev/libs/geometry/test/point_concept/concept_checker.cpp | 6
   branches/quickbook-dev/libs/geometry/test/point_concept/function_asserting_a_point.hpp | 4
   branches/quickbook-dev/libs/geometry/test/point_concept/function_requiring_a_point.hpp | 4
   branches/quickbook-dev/libs/geometry/test/point_concept/point_with_incorrect_dimension.cpp | 6
   branches/quickbook-dev/libs/geometry/test/point_concept/point_without_coordinate_type.cpp | 6
   branches/quickbook-dev/libs/geometry/test/point_concept/point_without_dimension.cpp | 6
   branches/quickbook-dev/libs/geometry/test/point_concept/point_without_getter.cpp | 6
   branches/quickbook-dev/libs/geometry/test/point_concept/point_without_setter.cpp | 6
   branches/quickbook-dev/libs/geometry/test/point_concept/well_formed_point.cpp | 6
   branches/quickbook-dev/libs/geometry/test/point_concept/well_formed_point_traits.cpp | 6
   branches/quickbook-dev/libs/geometry/test/policies/Jamfile.v2 | 6
   branches/quickbook-dev/libs/geometry/test/policies/compare.cpp | 2
   branches/quickbook-dev/libs/geometry/test/strategies/Jamfile.v2 | 6
   branches/quickbook-dev/libs/geometry/test/strategies/cross_track.cpp | 6
   branches/quickbook-dev/libs/geometry/test/strategies/haversine.cpp | 6
   branches/quickbook-dev/libs/geometry/test/strategies/projected_point.cpp | 6
   branches/quickbook-dev/libs/geometry/test/strategies/pythagoras.cpp | 6
   branches/quickbook-dev/libs/geometry/test/strategies/segment_intersection.cpp | 6
   branches/quickbook-dev/libs/geometry/test/strategies/segment_intersection_collinear.cpp | 6
   branches/quickbook-dev/libs/geometry/test/strategies/spherical_side.cpp | 2
   branches/quickbook-dev/libs/geometry/test/strategies/transformer.cpp | 6
   branches/quickbook-dev/libs/geometry/test/strategies/within.cpp | 2
   branches/quickbook-dev/libs/geometry/test/test_common/test_point.hpp | 4
   branches/quickbook-dev/libs/geometry/test/test_common/with_pointer.hpp | 4
   branches/quickbook-dev/libs/geometry/test/test_geometries/all_custom_container.hpp | 2
   branches/quickbook-dev/libs/geometry/test/test_geometries/all_custom_linestring.hpp | 2
   branches/quickbook-dev/libs/geometry/test/test_geometries/all_custom_polygon.hpp | 2
   branches/quickbook-dev/libs/geometry/test/test_geometries/all_custom_ring.hpp | 2
   branches/quickbook-dev/libs/geometry/test/test_geometries/custom_segment.hpp | 2
   branches/quickbook-dev/libs/geometry/test/test_geometries/wrapped_boost_array.hpp | 2
   branches/quickbook-dev/libs/geometry/test/ttmath.vsprops | 1
   branches/quickbook-dev/libs/geometry/test/util/Jamfile.v2 | 6
   branches/quickbook-dev/libs/geometry/test/util/as_range.cpp | 6
   branches/quickbook-dev/libs/geometry/test/util/for_each_coordinate.cpp | 6
   branches/quickbook-dev/libs/geometry/test/util/rational.cpp | 6
   branches/quickbook-dev/libs/geometry/test/util/select_most_precise.cpp | 6
   branches/quickbook-dev/libs/geometry/test/util/write_dsv.cpp | 6
   branches/quickbook-dev/libs/geometry/test/views/Jamfile.v2 | 6
   branches/quickbook-dev/libs/geometry/test/views/box_view.cpp | 2
   branches/quickbook-dev/libs/geometry/test/views/closeable_view.cpp | 2
   branches/quickbook-dev/libs/geometry/test/views/reversible_closeable.cpp | 2
   branches/quickbook-dev/libs/geometry/test/views/reversible_view.cpp | 2
   branches/quickbook-dev/libs/geometry/test/views/segment_view.cpp | 2
   branches/quickbook-dev/libs/geometry/test_extensions/Jamfile.v2 | 6
   branches/quickbook-dev/libs/geometry/test_extensions/algorithms/Jamfile.v2 | 9
   branches/quickbook-dev/libs/geometry/test_extensions/algorithms/buffer/linestring_buffer.cpp | 2
   branches/quickbook-dev/libs/geometry/test_extensions/algorithms/buffer/linestring_buffer.vcproj | 8
   branches/quickbook-dev/libs/geometry/test_extensions/algorithms/buffer/polygon_buffer.cpp | 5
   branches/quickbook-dev/libs/geometry/test_extensions/algorithms/buffer/polygon_buffer.vcproj | 8
   branches/quickbook-dev/libs/geometry/test_extensions/algorithms/buffer/test_buffer.hpp | 343
   branches/quickbook-dev/libs/geometry/test_extensions/algorithms/connect.cpp | 2
   branches/quickbook-dev/libs/geometry/test_extensions/algorithms/dissolve.cpp | 3
   branches/quickbook-dev/libs/geometry/test_extensions/algorithms/is_convex.cpp | 6
   branches/quickbook-dev/libs/geometry/test_extensions/algorithms/mark_spikes.cpp | 2
   branches/quickbook-dev/libs/geometry/test_extensions/algorithms/midpoints.cpp | 6
   branches/quickbook-dev/libs/geometry/test_extensions/algorithms/offset.cpp | 2
   branches/quickbook-dev/libs/geometry/test_extensions/algorithms/remove_holes_if.cpp | 6
   branches/quickbook-dev/libs/geometry/test_extensions/algorithms/selected.cpp | 6
   branches/quickbook-dev/libs/geometry/test_extensions/arithmetic/Jamfile.v2 | 6
   branches/quickbook-dev/libs/geometry/test_extensions/arithmetic/cross_product.cpp | 14
   branches/quickbook-dev/libs/geometry/test_extensions/gis/Jamfile.v2 | 6
   branches/quickbook-dev/libs/geometry/test_extensions/gis/io/wkb/read_wkb.cpp | 2
   branches/quickbook-dev/libs/geometry/test_extensions/gis/latlong/Jamfile.v2 | 6
   branches/quickbook-dev/libs/geometry/test_extensions/gis/latlong/andoyer.cpp | 10
   branches/quickbook-dev/libs/geometry/test_extensions/gis/latlong/area_ll.cpp | 6
   branches/quickbook-dev/libs/geometry/test_extensions/gis/latlong/cross_track.cpp | 12
   branches/quickbook-dev/libs/geometry/test_extensions/gis/latlong/distance_mixed.cpp | 6
   branches/quickbook-dev/libs/geometry/test_extensions/gis/latlong/parse.cpp | 6
   branches/quickbook-dev/libs/geometry/test_extensions/gis/latlong/parse_dms.cpp | 6
   branches/quickbook-dev/libs/geometry/test_extensions/gis/latlong/point_ll.cpp | 6
   branches/quickbook-dev/libs/geometry/test_extensions/gis/latlong/vincenty.cpp | 10
   branches/quickbook-dev/libs/geometry/test_extensions/gis/projections/Jamfile.v2 | 6
   branches/quickbook-dev/libs/geometry/test_extensions/gis/projections/projection.cpp | 6
   branches/quickbook-dev/libs/geometry/test_extensions/gis/projections/projection_epsg.cpp | 18
   branches/quickbook-dev/libs/geometry/test_extensions/gis/projections/projections.cpp | 6
   branches/quickbook-dev/libs/geometry/test_extensions/index/rtree.cpp | 2
   branches/quickbook-dev/libs/geometry/test_extensions/iterators/Jamfile.v2 | 6
   branches/quickbook-dev/libs/geometry/test_extensions/iterators/segment_returning_iterator.cpp | 6
   branches/quickbook-dev/libs/geometry/test_extensions/nsphere/access.cpp | 6
   branches/quickbook-dev/libs/geometry/test_extensions/nsphere/area.cpp | 2
   branches/quickbook-dev/libs/geometry/test_extensions/nsphere/circle.cpp | 2
   branches/quickbook-dev/libs/geometry/test_extensions/nsphere/multi_within.cpp | 2
   branches/quickbook-dev/libs/geometry/test_extensions/nsphere/point_type.cpp | 2
   branches/quickbook-dev/libs/geometry/test_extensions/nsphere/within.cpp | 2
   branches/quickbook-dev/libs/interprocess/doc/interprocess.qbk | 9
   branches/quickbook-dev/libs/intrusive/doc/intrusive.qbk | 1
   branches/quickbook-dev/libs/iostreams/src/gzip.cpp | 2
   branches/quickbook-dev/libs/iostreams/test/gzip_test.cpp | 41
   branches/quickbook-dev/libs/locale/src/posix/numeric.cpp | 14
   branches/quickbook-dev/libs/locale/test/test_locale.hpp | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/index.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/index/s12.html | 4
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/index/s13.html | 4
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/index/s14.html | 4
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/index/s15.html | 4
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/index/s16.html | 4
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/backgrounders.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/backgrounders/implementation.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/backgrounders/lanczos.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/backgrounders/refs.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/backgrounders/relative_error.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/backgrounders/remez.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dist_algorithms.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/bernoulli_dist.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/beta_dist.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/binomial_dist.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/cauchy_dist.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/chi_squared_dist.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/exp_dist.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/extreme_dist.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/f_dist.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/gamma_dist.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/geometric_dist.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/hypergeometric_dist.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_chi_squared_dist.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gamma_dist.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gaussian_dist.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/laplace_dist.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/logistic_dist.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/lognormal_dist.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_beta_dist.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_chi_squared_dist.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_f_dist.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_t_dist.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/negative_binomial_dist.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/normal_dist.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/pareto.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/poisson_dist.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/rayleigh.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/students_t_dist.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/triangular_dist.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/uniform_dist.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/weibull_dist.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/nmp.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/future.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/dist_params.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/overview.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/overview/complements.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/overview/generic.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/overview/headers.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/overview/objects.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/overview/parameters.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/overview/summary.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/variates.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binom_conf.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binom_size_eg.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binomial_coinflip_example.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binomial_quiz_example.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/c_sharp.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_intervals.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_size.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_test.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/dist_construct_eg.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/error_eg.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/f_eg.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_location_eg.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_mean_and_sd_eg.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_scale_eg.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/geometric_eg.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/inverse_chi_squared_eg.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/nag_library.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/nccs_eg.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/nccs_eg/nccs_power_eg.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/neg_binom_eg.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/neg_binom_eg/neg_binom_conf.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/neg_binom_eg/neg_binom_size_eg.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/neg_binom_eg/negative_binomial_example1.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/neg_binom_eg/negative_binomial_example2.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/normal_example.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/normal_example/normal_misc.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/st_eg.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/st_eg/paired_st.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/st_eg/tut_mean_intervals.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/st_eg/tut_mean_size.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/st_eg/tut_mean_test.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/st_eg/two_sample_students_t.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/extern_c.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/extern_c/c99.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/extern_c/tr1.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/extern_c/tr1_ref.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/building.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/compilers_overview.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/config_macros.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/contact.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/directories.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/error_handling.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/faq.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/history1.html | 76
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/intro.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/namespaces.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/navigation.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/perf_over.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/pol_overview.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/result_type.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/threads.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/tr1.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/perf.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/perf/comp_compilers.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/perf/comparisons.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/perf/getting_best.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/perf/interp.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/perf/perf_over.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/perf/perf_test_app.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/perf/tuning.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_overview.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/assert_undefined.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/discrete_quant_ref.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/error_handling_policies.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/internal_promotion.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/iteration_pol.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/namespace_pol.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/pol_ref_ref.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/policy_defaults.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/precision_pol.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/ad_hoc_dist_policies.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/ad_hoc_sf_policies.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/changing_policy_defaults.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/namespace_policies.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/policy_tut_defaults.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/policy_usage.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/understand_dis_quant.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/user_def_err_pol.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/what_is_a_policy.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/bessel.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel_over.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/bessel/mbessel.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/bessel/sph_bessel.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/ellint.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_1.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_2.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_3.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_carlson.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_intro.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/expint.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/expint/expint_i.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/expint/expint_n.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/factorials.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_binomial.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_double_factorial.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_factorial.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_falling_factorial.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_rising_factorial.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/inv_hyper.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/acosh.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/asinh.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/atanh.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/inv_hyper_over.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers/cbrt.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers/ct_pow.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers/expm1.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers/hypot.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers/log1p.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers/powm1.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers/sqrt1pm1.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_beta.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_derivative.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_function.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_function.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_inv_function.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_erf.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_function.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_inv.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/digamma.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_derivatives.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_ratios.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma_inv.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/lgamma.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/tgamma.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_poly.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_poly/hermite.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_poly/laguerre.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_poly/legendre.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_poly/sph_harm.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sinc.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sinc/sinc_overview.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sinc/sinc_pi.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sinc/sinhc_pi.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/zetas.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/zetas/zeta.html | 11
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/status.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/status/credits.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/status/history1.html | 76
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/status/issues.html | 18
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals1.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/cf.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/constants.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/minima.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/rational.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots2.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/series_evaluation.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/tuples.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals2.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/error_test.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/minimax.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/polynomials.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/test_data.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals_overview.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt/archetypes.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt/concepts.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt/dist_concept.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt/e_float.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt/use_mpfr.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt/use_ntl.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/utils.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/utils/fp_facets.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/examples.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/intro.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/portability.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/rationale.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/reference.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/utils/fpclass.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/utils/next_float.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_advance.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_distance.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_next.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_prior.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/utils/next_float/nextafter.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/utils/rounding.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/utils/rounding/modf.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/utils/rounding/round.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/utils/rounding/trunc.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/utils/sign_functions.html | 2
   branches/quickbook-dev/libs/math/doc/sf_and_dist/issues.qbk | 10
   branches/quickbook-dev/libs/math/doc/sf_and_dist/roadmap.qbk | 10
   branches/quickbook-dev/libs/math/doc/sf_and_dist/zeta.qbk | 6
   branches/quickbook-dev/libs/math/test/Jamfile.v2 | 103
   branches/quickbook-dev/libs/math/test/acosh_data.ipp | 4
   branches/quickbook-dev/libs/math/test/asinh_data.ipp | 4
   branches/quickbook-dev/libs/math/test/assoc_legendre_p.ipp | 2
   branches/quickbook-dev/libs/math/test/atanh_data.ipp | 4
   branches/quickbook-dev/libs/math/test/bessel_i_data.ipp | 2
   branches/quickbook-dev/libs/math/test/bessel_i_int_data.ipp | 2
   branches/quickbook-dev/libs/math/test/bessel_j_data.ipp | 2
   branches/quickbook-dev/libs/math/test/bessel_j_int_data.ipp | 2
   branches/quickbook-dev/libs/math/test/bessel_j_large_data.ipp | 2
   branches/quickbook-dev/libs/math/test/bessel_k_data.ipp | 2
   branches/quickbook-dev/libs/math/test/bessel_k_int_data.ipp | 2
   branches/quickbook-dev/libs/math/test/bessel_y01_data.ipp | 2
   branches/quickbook-dev/libs/math/test/bessel_yn_data.ipp | 2
   branches/quickbook-dev/libs/math/test/bessel_yv_data.ipp | 2
   branches/quickbook-dev/libs/math/test/beta_exp_data.ipp | 2
   branches/quickbook-dev/libs/math/test/beta_med_data.ipp | 2
   branches/quickbook-dev/libs/math/test/beta_small_data.ipp | 2
   branches/quickbook-dev/libs/math/test/binomial_data.ipp | 2
   branches/quickbook-dev/libs/math/test/binomial_large_data.ipp | 2
   branches/quickbook-dev/libs/math/test/binomial_quantile.ipp | 2
   branches/quickbook-dev/libs/math/test/cbrt_data.ipp | 2
   branches/quickbook-dev/libs/math/test/digamma_data.ipp | 2
   branches/quickbook-dev/libs/math/test/digamma_neg_data.ipp | 2
   branches/quickbook-dev/libs/math/test/digamma_root_data.ipp | 2
   branches/quickbook-dev/libs/math/test/digamma_small_data.ipp | 2
   branches/quickbook-dev/libs/math/test/ellint_e2_data.ipp | 2
   branches/quickbook-dev/libs/math/test/ellint_e_data.ipp | 2
   branches/quickbook-dev/libs/math/test/ellint_f_data.ipp | 2
   branches/quickbook-dev/libs/math/test/ellint_k_data.ipp | 2
   branches/quickbook-dev/libs/math/test/ellint_pi2_data.ipp | 2
   branches/quickbook-dev/libs/math/test/ellint_pi3_data.ipp | 2
   branches/quickbook-dev/libs/math/test/ellint_pi3_large_data.ipp | 2
   branches/quickbook-dev/libs/math/test/ellint_rc_data.ipp | 2
   branches/quickbook-dev/libs/math/test/ellint_rd_data.ipp | 2
   branches/quickbook-dev/libs/math/test/ellint_rf_data.ipp | 2
   branches/quickbook-dev/libs/math/test/ellint_rj_data.ipp | 2
   branches/quickbook-dev/libs/math/test/erf_data.ipp | 2
   branches/quickbook-dev/libs/math/test/erf_inv_data.ipp | 2
   branches/quickbook-dev/libs/math/test/erf_large_data.ipp | 2
   branches/quickbook-dev/libs/math/test/erf_small_data.ipp | 2
   branches/quickbook-dev/libs/math/test/erfc_inv_big_data.ipp | 2
   branches/quickbook-dev/libs/math/test/erfc_inv_data.ipp | 2
   branches/quickbook-dev/libs/math/test/expint_1_data.ipp | 2
   branches/quickbook-dev/libs/math/test/expint_data.ipp | 2
   branches/quickbook-dev/libs/math/test/expint_small_data.ipp | 2
   branches/quickbook-dev/libs/math/test/expinti_data.ipp | 2
   branches/quickbook-dev/libs/math/test/expinti_data_double.ipp | 2
   branches/quickbook-dev/libs/math/test/expinti_data_long.ipp | 2
   branches/quickbook-dev/libs/math/test/functor.hpp | 100
   branches/quickbook-dev/libs/math/test/gamma_inv_big_data.ipp | 2
   branches/quickbook-dev/libs/math/test/gamma_inv_data.ipp | 2
   branches/quickbook-dev/libs/math/test/gamma_inv_small_data.ipp | 2
   branches/quickbook-dev/libs/math/test/hermite.ipp | 2
   branches/quickbook-dev/libs/math/test/hypergeometric_dist_data2.ipp | 2
   branches/quickbook-dev/libs/math/test/hypergeometric_test_data.ipp | 2
   branches/quickbook-dev/libs/math/test/hypot_test.cpp | 4
   branches/quickbook-dev/libs/math/test/ibeta_data.ipp | 2
   branches/quickbook-dev/libs/math/test/ibeta_int_data.ipp | 2
   branches/quickbook-dev/libs/math/test/ibeta_inv_data.ipp | 2
   branches/quickbook-dev/libs/math/test/ibeta_inva_data.ipp | 2
   branches/quickbook-dev/libs/math/test/ibeta_large_data.ipp | 2
   branches/quickbook-dev/libs/math/test/ibeta_small_data.ipp | 2
   branches/quickbook-dev/libs/math/test/igamma_big_data.ipp | 2
   branches/quickbook-dev/libs/math/test/igamma_int_data.ipp | 2
   branches/quickbook-dev/libs/math/test/igamma_med_data.ipp | 2
   branches/quickbook-dev/libs/math/test/igamma_small_data.ipp | 2
   branches/quickbook-dev/libs/math/test/laguerre2.ipp | 2
   branches/quickbook-dev/libs/math/test/laguerre3.ipp | 2
   branches/quickbook-dev/libs/math/test/legendre_p.ipp | 2
   branches/quickbook-dev/libs/math/test/legendre_p_large.ipp | 2
   branches/quickbook-dev/libs/math/test/log1p_expm1_data.ipp | 4
   branches/quickbook-dev/libs/math/test/log1p_expm1_test.cpp | 5
   branches/quickbook-dev/libs/math/test/log1p_expm1_test.hpp | 19
   branches/quickbook-dev/libs/math/test/ncbeta.ipp | 4
   branches/quickbook-dev/libs/math/test/ncbeta_big.ipp | 4
   branches/quickbook-dev/libs/math/test/nccs.ipp | 4
   branches/quickbook-dev/libs/math/test/nccs_big.ipp | 4
   branches/quickbook-dev/libs/math/test/nct.ipp | 7
   branches/quickbook-dev/libs/math/test/negative_binomial_quantile.ipp | 4
   branches/quickbook-dev/libs/math/test/poisson_quantile.ipp | 4
   branches/quickbook-dev/libs/math/test/powm1_sqrtp1m1_test.cpp | 5
   branches/quickbook-dev/libs/math/test/powm1_sqrtp1m1_test.hpp | 19
   branches/quickbook-dev/libs/math/test/sph_bessel_data.ipp | 2
   branches/quickbook-dev/libs/math/test/sph_neumann_data.ipp | 2
   branches/quickbook-dev/libs/math/test/spherical_harmonic.ipp | 4
   branches/quickbook-dev/libs/math/test/test_bessel_i.cpp | 2
   branches/quickbook-dev/libs/math/test/test_bessel_i.hpp | 72
   branches/quickbook-dev/libs/math/test/test_bessel_j.cpp | 2
   branches/quickbook-dev/libs/math/test/test_bessel_j.hpp | 114
   branches/quickbook-dev/libs/math/test/test_bessel_k.cpp | 2
   branches/quickbook-dev/libs/math/test/test_bessel_k.hpp | 66
   branches/quickbook-dev/libs/math/test/test_bessel_y.cpp | 2
   branches/quickbook-dev/libs/math/test/test_bessel_y.hpp | 81
   branches/quickbook-dev/libs/math/test/test_beta.cpp | 2
   branches/quickbook-dev/libs/math/test/test_beta.hpp | 27
   branches/quickbook-dev/libs/math/test/test_binomial.cpp | 7
   branches/quickbook-dev/libs/math/test/test_binomial_coeff.hpp | 16
   branches/quickbook-dev/libs/math/test/test_carlson.cpp | 2
   branches/quickbook-dev/libs/math/test/test_carlson.hpp | 62
   branches/quickbook-dev/libs/math/test/test_cbrt.cpp | 2
   branches/quickbook-dev/libs/math/test/test_cbrt.hpp | 28
   branches/quickbook-dev/libs/math/test/test_digamma.cpp | 2
   branches/quickbook-dev/libs/math/test/test_digamma.hpp | 23
   branches/quickbook-dev/libs/math/test/test_ellint_1.cpp | 2
   branches/quickbook-dev/libs/math/test/test_ellint_1.hpp | 45
   branches/quickbook-dev/libs/math/test/test_ellint_2.cpp | 2
   branches/quickbook-dev/libs/math/test/test_ellint_2.hpp | 59
   branches/quickbook-dev/libs/math/test/test_ellint_3.cpp | 2
   branches/quickbook-dev/libs/math/test/test_ellint_3.hpp | 49
   branches/quickbook-dev/libs/math/test/test_erf.cpp | 2
   branches/quickbook-dev/libs/math/test/test_erf.hpp | 65
   branches/quickbook-dev/libs/math/test/test_expint.cpp | 2
   branches/quickbook-dev/libs/math/test/test_expint.hpp | 50
   branches/quickbook-dev/libs/math/test/test_gamma.cpp | 2
   branches/quickbook-dev/libs/math/test/test_gamma.hpp | 57
   branches/quickbook-dev/libs/math/test/test_gamma_data.ipp | 14
   branches/quickbook-dev/libs/math/test/test_hermite.cpp | 2
   branches/quickbook-dev/libs/math/test/test_hermite.hpp | 17
   branches/quickbook-dev/libs/math/test/test_hypergeometric_dist.cpp | 35
   branches/quickbook-dev/libs/math/test/test_ibeta.cpp | 2
   branches/quickbook-dev/libs/math/test/test_ibeta.hpp | 47
   branches/quickbook-dev/libs/math/test/test_ibeta_inv.cpp | 2
   branches/quickbook-dev/libs/math/test/test_ibeta_inv.hpp | 69
   branches/quickbook-dev/libs/math/test/test_ibeta_inv_ab.cpp | 2
   branches/quickbook-dev/libs/math/test/test_ibeta_inv_ab.hpp | 97
   branches/quickbook-dev/libs/math/test/test_igamma.cpp | 2
   branches/quickbook-dev/libs/math/test/test_igamma.hpp | 55
   branches/quickbook-dev/libs/math/test/test_igamma_inv.cpp | 2
   branches/quickbook-dev/libs/math/test/test_igamma_inv.hpp | 91
   branches/quickbook-dev/libs/math/test/test_igamma_inva.cpp | 2
   branches/quickbook-dev/libs/math/test/test_igamma_inva.hpp | 78
   branches/quickbook-dev/libs/math/test/test_instances.hpp | 359
   branches/quickbook-dev/libs/math/test/test_inv_hyp.cpp | 43
   branches/quickbook-dev/libs/math/test/test_laguerre.cpp | 2
   branches/quickbook-dev/libs/math/test/test_laguerre.hpp | 29
   branches/quickbook-dev/libs/math/test/test_legendre.cpp | 2
   branches/quickbook-dev/libs/math/test/test_legendre.hpp | 49
   branches/quickbook-dev/libs/math/test/test_long_double_support.cpp | 9
   branches/quickbook-dev/libs/math/test/test_nc_beta.cpp | 33
   branches/quickbook-dev/libs/math/test/test_nc_chi_squared.cpp | 37
   branches/quickbook-dev/libs/math/test/test_nc_t.cpp | 25
   branches/quickbook-dev/libs/math/test/test_negative_binomial.cpp | 1
   branches/quickbook-dev/libs/math/test/test_poisson.cpp | 1
   branches/quickbook-dev/libs/math/test/test_roots.cpp | 45
   branches/quickbook-dev/libs/math/test/test_spherical_harmonic.cpp | 43
   branches/quickbook-dev/libs/math/test/test_tgamma_ratio.hpp | 42
   branches/quickbook-dev/libs/math/test/test_zeta.cpp | 1
   branches/quickbook-dev/libs/math/test/test_zeta.hpp | 27
   branches/quickbook-dev/libs/math/test/tgamma_delta_ratio_data.ipp | 2
   branches/quickbook-dev/libs/math/test/tgamma_delta_ratio_int.ipp | 2
   branches/quickbook-dev/libs/math/test/tgamma_delta_ratio_int2.ipp | 2
   branches/quickbook-dev/libs/math/test/tgamma_ratio_data.ipp | 2
   branches/quickbook-dev/libs/math/test/zeta_1_below_data.ipp | 2
   branches/quickbook-dev/libs/math/test/zeta_1_up_data.ipp | 2
   branches/quickbook-dev/libs/math/test/zeta_data.ipp | 2
   branches/quickbook-dev/libs/math/test/zeta_neg_data.ipp | 2
   branches/quickbook-dev/libs/move/doc/move.qbk | 5
   branches/quickbook-dev/libs/mpi/src/python/datatypes.cpp | 2
   branches/quickbook-dev/libs/mpi/src/python/py_environment.cpp | 62
   branches/quickbook-dev/libs/multi_array/doc/reference.html | 248
   branches/quickbook-dev/libs/multi_array/doc/xml/MultiArray.xml | 8
   branches/quickbook-dev/libs/multi_array/doc/xml/multi_array.xml | 5
   branches/quickbook-dev/libs/multi_array/doc/xml/multi_array_ref.xml | 5
   branches/quickbook-dev/libs/proto/doc/acknowledgements.qbk | 27
   branches/quickbook-dev/libs/proto/doc/back_end.qbk | 14
   branches/quickbook-dev/libs/proto/doc/front_end.qbk | 367
   branches/quickbook-dev/libs/proto/doc/proto.qbk | 4
   branches/quickbook-dev/libs/proto/doc/reference.xml | 2
   branches/quickbook-dev/libs/proto/doc/reference/args.xml | 7
   branches/quickbook-dev/libs/proto/doc/reference/concepts/CallableTransform.xml | 4
   branches/quickbook-dev/libs/proto/doc/reference/concepts/Domain.xml | 4
   branches/quickbook-dev/libs/proto/doc/reference/concepts/Expr.xml | 4
   branches/quickbook-dev/libs/proto/doc/reference/concepts/ObjectTransform.xml | 2
   branches/quickbook-dev/libs/proto/doc/reference/concepts/PolymorphicFunctionObject.xml | 4
   branches/quickbook-dev/libs/proto/doc/reference/concepts/PrimitiveTransform.xml | 4
   branches/quickbook-dev/libs/proto/doc/reference/concepts/Transform.xml | 4
   branches/quickbook-dev/libs/proto/doc/reference/context/callable.xml | 7
   branches/quickbook-dev/libs/proto/doc/reference/context/default.xml | 7
   branches/quickbook-dev/libs/proto/doc/reference/context/null.xml | 7
   branches/quickbook-dev/libs/proto/doc/reference/core.xml | 7
   branches/quickbook-dev/libs/proto/doc/reference/debug.xml | 7
   branches/quickbook-dev/libs/proto/doc/reference/deep_copy.xml | 7
   branches/quickbook-dev/libs/proto/doc/reference/domain.xml | 7
   branches/quickbook-dev/libs/proto/doc/reference/eval.xml | 7
   branches/quickbook-dev/libs/proto/doc/reference/expr.xml | 7
   branches/quickbook-dev/libs/proto/doc/reference/extends.xml | 14
   branches/quickbook-dev/libs/proto/doc/reference/functional.xml | 7
   branches/quickbook-dev/libs/proto/doc/reference/functional/fusion.xml | 7
   branches/quickbook-dev/libs/proto/doc/reference/functional/fusion/at.xml | 7
   branches/quickbook-dev/libs/proto/doc/reference/functional/fusion/pop_back.xml | 7
   branches/quickbook-dev/libs/proto/doc/reference/functional/fusion/pop_front.xml | 7
   branches/quickbook-dev/libs/proto/doc/reference/functional/fusion/push_back.xml | 7
   branches/quickbook-dev/libs/proto/doc/reference/functional/fusion/push_front.xml | 7
   branches/quickbook-dev/libs/proto/doc/reference/functional/fusion/reverse.xml | 7
   branches/quickbook-dev/libs/proto/doc/reference/functional/std.xml | 7
   branches/quickbook-dev/libs/proto/doc/reference/functional/std/utility.xml | 7
   branches/quickbook-dev/libs/proto/doc/reference/fusion.xml | 7
   branches/quickbook-dev/libs/proto/doc/reference/generate.xml | 7
   branches/quickbook-dev/libs/proto/doc/reference/literal.xml | 7
   branches/quickbook-dev/libs/proto/doc/reference/make_expr.xml | 7
   branches/quickbook-dev/libs/proto/doc/reference/matches.xml | 16
   branches/quickbook-dev/libs/proto/doc/reference/operators.xml | 7
   branches/quickbook-dev/libs/proto/doc/reference/proto.xml | 7
   branches/quickbook-dev/libs/proto/doc/reference/proto_fwd.xml | 7
   branches/quickbook-dev/libs/proto/doc/reference/proto_typeof.xml | 7
   branches/quickbook-dev/libs/proto/doc/reference/repeat.xml | 7
   branches/quickbook-dev/libs/proto/doc/reference/tags.xml | 7
   branches/quickbook-dev/libs/proto/doc/reference/traits.xml | 7
   branches/quickbook-dev/libs/proto/doc/reference/transform/arg.xml | 7
   branches/quickbook-dev/libs/proto/doc/reference/transform/call.xml | 7
   branches/quickbook-dev/libs/proto/doc/reference/transform/default.xml | 7
   branches/quickbook-dev/libs/proto/doc/reference/transform/fold.xml | 7
   branches/quickbook-dev/libs/proto/doc/reference/transform/fold_tree.xml | 7
   branches/quickbook-dev/libs/proto/doc/reference/transform/impl.xml | 7
   branches/quickbook-dev/libs/proto/doc/reference/transform/integral_c.xml | 7
   branches/quickbook-dev/libs/proto/doc/reference/transform/lazy.xml | 7
   branches/quickbook-dev/libs/proto/doc/reference/transform/make.xml | 7
   branches/quickbook-dev/libs/proto/doc/reference/transform/pass_through.xml | 7
   branches/quickbook-dev/libs/proto/doc/reference/transform/when.xml | 7
   branches/quickbook-dev/libs/proto/example/lambda.hpp | 129
   branches/quickbook-dev/libs/proto/example/mini_lambda.cpp | 2
   branches/quickbook-dev/libs/python/doc/tutorial/doc/html/index.html | 3
   branches/quickbook-dev/libs/python/doc/tutorial/doc/html/python/object.html | 27
   branches/quickbook-dev/libs/python/doc/tutorial/doc/tutorial.qbk | 17
   branches/quickbook-dev/libs/regex/build/Jamfile.v2 | 19
   branches/quickbook-dev/libs/spirit/doc/what_s_new.qbk | 11
   branches/quickbook-dev/libs/spirit/repository/example/karma/calc2_ast.hpp | 27
   branches/quickbook-dev/libs/spirit/test/Jamfile | 4
   branches/quickbook-dev/libs/thread/build/Jamfile.v2 | 31
   branches/quickbook-dev/libs/thread/doc/Jamfile.v2 | 9
   branches/quickbook-dev/libs/thread/doc/changes.qbk | 58
   branches/quickbook-dev/libs/thread/doc/compliance.qbk | 89
   branches/quickbook-dev/libs/thread/doc/condition_variables.qbk | 301
   branches/quickbook-dev/libs/thread/doc/future_ref.qbk | 2
   branches/quickbook-dev/libs/thread/doc/futures.qbk | 2
   branches/quickbook-dev/libs/thread/doc/mutex_concepts.qbk | 156
   branches/quickbook-dev/libs/thread/doc/mutexes.qbk | 23
   branches/quickbook-dev/libs/thread/doc/overview.qbk | 6
   branches/quickbook-dev/libs/thread/doc/thread.qbk | 31
   branches/quickbook-dev/libs/thread/doc/thread_ref.qbk | 449
   branches/quickbook-dev/libs/thread/src/pthread/once.cpp | 27
   branches/quickbook-dev/libs/thread/src/pthread/thread.cpp | 107
   branches/quickbook-dev/libs/thread/src/win32/thread.cpp | 53
   branches/quickbook-dev/libs/thread/test/Jamfile.v2 | 199
   branches/quickbook-dev/libs/thread/test/test_futures.cpp | 172
   branches/quickbook-dev/libs/thread/test/test_lock_concept.cpp | 63
   branches/quickbook-dev/libs/thread/test/test_move_function.cpp | 13
   branches/quickbook-dev/libs/thread/test/test_thread_move.cpp | 2
   branches/quickbook-dev/libs/thread/test/test_thread_return_local.cpp | 4
   branches/quickbook-dev/libs/thread/test/util.inl | 37
   branches/quickbook-dev/libs/unordered/test/objects/cxx11_allocator.hpp | 4
   branches/quickbook-dev/libs/unordered/test/objects/exception.hpp | 4
   branches/quickbook-dev/libs/unordered/test/objects/minimal.hpp | 8
   branches/quickbook-dev/libs/unordered/test/objects/test.hpp | 4
   branches/quickbook-dev/libs/unordered/test/unordered/Jamfile.v2 | 16
   branches/quickbook-dev/libs/unordered/test/unordered/move_tests.cpp | 39
   branches/quickbook-dev/libs/unordered/test/unordered/unnecessary_copy_tests.cpp | 21
   branches/quickbook-dev/libs/uuid/test/test_sha1.cpp | 18
   branches/quickbook-dev/status/Jamfile.v2 | 1
   branches/quickbook-dev/status/explicit-failures-markup.xml | 36
   branches/quickbook-dev/tools/boostbook/xsl/docbook-layout.xsl | 15
   branches/quickbook-dev/tools/boostbook/xsl/html-single.xsl | 17
   branches/quickbook-dev/tools/build/v2/tools/pgi.jam | 2
   branches/quickbook-dev/tools/index.html | 11
   branches/quickbook-dev/tools/quickbook/src/quickbook.cpp | 2
   branches/quickbook-dev/tools/regression/src/compiler_status.cpp | 36
   2279 files changed, 38745 insertions(+), 28990 deletions(-)

Modified: branches/quickbook-dev/boost/algorithm/string/detail/case_conv.hpp
==============================================================================
--- branches/quickbook-dev/boost/algorithm/string/detail/case_conv.hpp (original)
+++ branches/quickbook-dev/boost/algorithm/string/detail/case_conv.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -15,6 +15,8 @@
 #include <locale>
 #include <functional>
 
+#include <boost/type_traits/make_unsigned.hpp>
+
 namespace boost {
     namespace algorithm {
         namespace detail {
@@ -37,7 +39,7 @@
                 CharT operator ()( CharT Ch ) const
                 {
                     #if defined(__BORLANDC__) && (__BORLANDC__ >= 0x560) && (__BORLANDC__ <= 0x564) && !defined(_USE_OLD_RW_STL)
- return std::tolower( Ch);
+ return std::tolower( static_cast<typename boost::make_unsigned <CharT>::type> ( Ch ));
                     #else
                         return std::tolower<CharT>( Ch, *m_Loc );
                     #endif
@@ -57,7 +59,7 @@
                 CharT operator ()( CharT Ch ) const
                 {
                     #if defined(__BORLANDC__) && (__BORLANDC__ >= 0x560) && (__BORLANDC__ <= 0x564) && !defined(_USE_OLD_RW_STL)
- return std::toupper( Ch);
+ return std::toupper( static_cast<typename boost::make_unsigned <CharT>::type> ( Ch ));
                     #else
                         return std::toupper<CharT>( Ch, *m_Loc );
                     #endif

Modified: branches/quickbook-dev/boost/asio.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio.hpp (original)
+++ branches/quickbook-dev/boost/asio.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // asio.hpp
 // ~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -29,6 +29,7 @@
 #include <boost/asio/basic_socket_streambuf.hpp>
 #include <boost/asio/basic_stream_socket.hpp>
 #include <boost/asio/basic_streambuf.hpp>
+#include <boost/asio/basic_waitable_timer.hpp>
 #include <boost/asio/buffer.hpp>
 #include <boost/asio/buffered_read_stream_fwd.hpp>
 #include <boost/asio/buffered_read_stream.hpp>
@@ -92,9 +93,14 @@
 #include <boost/asio/streambuf.hpp>
 #include <boost/asio/time_traits.hpp>
 #include <boost/asio/version.hpp>
+#include <boost/asio/wait_traits.hpp>
+#include <boost/asio/waitable_timer_service.hpp>
 #include <boost/asio/windows/basic_handle.hpp>
+#include <boost/asio/windows/basic_object_handle.hpp>
 #include <boost/asio/windows/basic_random_access_handle.hpp>
 #include <boost/asio/windows/basic_stream_handle.hpp>
+#include <boost/asio/windows/object_handle.hpp>
+#include <boost/asio/windows/object_handle_service.hpp>
 #include <boost/asio/windows/overlapped_ptr.hpp>
 #include <boost/asio/windows/random_access_handle.hpp>
 #include <boost/asio/windows/random_access_handle_service.hpp>

Modified: branches/quickbook-dev/boost/asio/basic_datagram_socket.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/basic_datagram_socket.hpp (original)
+++ branches/quickbook-dev/boost/asio/basic_datagram_socket.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // basic_datagram_socket.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/basic_deadline_timer.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/basic_deadline_timer.hpp (original)
+++ branches/quickbook-dev/boost/asio/basic_deadline_timer.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // basic_deadline_timer.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/basic_io_object.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/basic_io_object.hpp (original)
+++ branches/quickbook-dev/boost/asio/basic_io_object.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // basic_io_object.hpp
 // ~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/basic_raw_socket.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/basic_raw_socket.hpp (original)
+++ branches/quickbook-dev/boost/asio/basic_raw_socket.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // basic_raw_socket.hpp
 // ~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/basic_seq_packet_socket.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/basic_seq_packet_socket.hpp (original)
+++ branches/quickbook-dev/boost/asio/basic_seq_packet_socket.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // basic_seq_packet_socket.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/basic_serial_port.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/basic_serial_port.hpp (original)
+++ branches/quickbook-dev/boost/asio/basic_serial_port.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // basic_serial_port.hpp
 // ~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 // Copyright (c) 2008 Rep Invariant Systems, Inc. (info_at_[hidden])
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying

Modified: branches/quickbook-dev/boost/asio/basic_signal_set.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/basic_signal_set.hpp (original)
+++ branches/quickbook-dev/boost/asio/basic_signal_set.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // basic_signal_set.hpp
 // ~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/basic_socket.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/basic_socket.hpp (original)
+++ branches/quickbook-dev/boost/asio/basic_socket.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // basic_socket.hpp
 // ~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/basic_socket_acceptor.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/basic_socket_acceptor.hpp (original)
+++ branches/quickbook-dev/boost/asio/basic_socket_acceptor.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // basic_socket_acceptor.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/basic_socket_iostream.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/basic_socket_iostream.hpp (original)
+++ branches/quickbook-dev/boost/asio/basic_socket_iostream.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // basic_socket_iostream.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/basic_socket_streambuf.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/basic_socket_streambuf.hpp (original)
+++ branches/quickbook-dev/boost/asio/basic_socket_streambuf.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // basic_socket_streambuf.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/basic_stream_socket.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/basic_stream_socket.hpp (original)
+++ branches/quickbook-dev/boost/asio/basic_stream_socket.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // basic_stream_socket.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/basic_streambuf.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/basic_streambuf.hpp (original)
+++ branches/quickbook-dev/boost/asio/basic_streambuf.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // basic_streambuf.hpp
 // ~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/basic_streambuf_fwd.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/basic_streambuf_fwd.hpp (original)
+++ branches/quickbook-dev/boost/asio/basic_streambuf_fwd.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // basic_streambuf_fwd.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/buffer.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/buffer.hpp (original)
+++ branches/quickbook-dev/boost/asio/buffer.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // buffer.hpp
 // ~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/buffered_read_stream.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/buffered_read_stream.hpp (original)
+++ branches/quickbook-dev/boost/asio/buffered_read_stream.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // buffered_read_stream.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/buffered_read_stream_fwd.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/buffered_read_stream_fwd.hpp (original)
+++ branches/quickbook-dev/boost/asio/buffered_read_stream_fwd.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // buffered_read_stream_fwd.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/buffered_stream.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/buffered_stream.hpp (original)
+++ branches/quickbook-dev/boost/asio/buffered_stream.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // buffered_stream.hpp
 // ~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/buffered_stream_fwd.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/buffered_stream_fwd.hpp (original)
+++ branches/quickbook-dev/boost/asio/buffered_stream_fwd.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // buffered_stream_fwd.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/buffered_write_stream.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/buffered_write_stream.hpp (original)
+++ branches/quickbook-dev/boost/asio/buffered_write_stream.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // buffered_write_stream.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -335,7 +335,8 @@
     std::size_t bytes_avail = boost::asio::buffer_size(buffers);
     std::size_t length = bytes_avail < space_avail ? bytes_avail : space_avail;
     storage_.resize(orig_size + length);
- return boost::asio::buffer_copy(storage_.data(), buffers, length);
+ return boost::asio::buffer_copy(
+ storage_.data() + orig_size, buffers, length);
   }
 
   /// The next layer.

Modified: branches/quickbook-dev/boost/asio/buffered_write_stream_fwd.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/buffered_write_stream_fwd.hpp (original)
+++ branches/quickbook-dev/boost/asio/buffered_write_stream_fwd.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // buffered_write_stream_fwd.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/buffers_iterator.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/buffers_iterator.hpp (original)
+++ branches/quickbook-dev/boost/asio/buffers_iterator.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // buffers_iterator.hpp
 // ~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/completion_condition.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/completion_condition.hpp (original)
+++ branches/quickbook-dev/boost/asio/completion_condition.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // completion_condition.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/connect.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/connect.hpp (original)
+++ branches/quickbook-dev/boost/asio/connect.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // connect.hpp
 // ~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/datagram_socket_service.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/datagram_socket_service.hpp (original)
+++ branches/quickbook-dev/boost/asio/datagram_socket_service.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // datagram_socket_service.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/deadline_timer.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/deadline_timer.hpp (original)
+++ branches/quickbook-dev/boost/asio/deadline_timer.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // deadline_timer.hpp
 // ~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/deadline_timer_service.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/deadline_timer_service.hpp (original)
+++ branches/quickbook-dev/boost/asio/deadline_timer_service.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // deadline_timer_service.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -20,6 +20,7 @@
 #include <boost/asio/detail/deadline_timer_service.hpp>
 #include <boost/asio/io_service.hpp>
 #include <boost/asio/time_traits.hpp>
+#include <boost/asio/detail/timer_queue_ptime.hpp>
 
 #include <boost/asio/detail/push_options.hpp>
 

Modified: branches/quickbook-dev/boost/asio/detail/array.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/array.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/array.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/array.hpp
 // ~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/array_fwd.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/array_fwd.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/array_fwd.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/array_fwd.hpp
 // ~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/atomic_count.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/atomic_count.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/atomic_count.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/atomic_count.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/base_from_completion_cond.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/base_from_completion_cond.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/base_from_completion_cond.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/base_from_completion_cond.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/bind_handler.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/bind_handler.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/bind_handler.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/bind_handler.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/buffer_resize_guard.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/buffer_resize_guard.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/buffer_resize_guard.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/buffer_resize_guard.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/buffer_sequence_adapter.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/buffer_sequence_adapter.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/buffer_sequence_adapter.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/buffer_sequence_adapter.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/buffered_stream_storage.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/buffered_stream_storage.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/buffered_stream_storage.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/buffered_stream_storage.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/call_stack.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/call_stack.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/call_stack.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/call_stack.hpp
 // ~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/completion_handler.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/completion_handler.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/completion_handler.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/completion_handler.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/config.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/config.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/config.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/config.hpp
 // ~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -12,6 +12,7 @@
 #define BOOST_ASIO_DETAIL_CONFIG_HPP
 
 #include <boost/config.hpp>
+#include <boost/version.hpp>
 
 // Default to a header-only implementation. The user must specifically request
 // separate compilation by defining either BOOST_ASIO_SEPARATE_COMPILATION or
@@ -154,6 +155,27 @@
 # endif // defined(__GNUC__)
 #endif // !defined(BOOST_ASIO_DISABLE_STD_ATOMIC)
 
+// Standard library support for chrono. Some standard libraries (such as the
+// libstdc++ shipped with gcc 4.6) provide monotonic_clock as per early C++0x
+// drafts, rather than the eventually standardised name of steady_clock.
+#if !defined(BOOST_ASIO_DISABLE_STD_CHRONO)
+# if defined(__GNUC__)
+# if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 6)) || (__GNUC__ > 4)
+# if defined(__GXX_EXPERIMENTAL_CXX0X__)
+# define BOOST_ASIO_HAS_STD_CHRONO
+# define BOOST_ASIO_HAS_STD_CHRONO_MONOTONIC_CLOCK
+# endif // defined(__GXX_EXPERIMENTAL_CXX0X__)
+# endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 6)) || (__GNUC__ > 4)
+# endif // defined(__GNUC__)
+#endif // !defined(BOOST_ASIO_DISABLE_STD_CHRONO)
+
+// Boost support for chrono.
+#if !defined(BOOST_ASIO_DISABLE_BOOST_CHRONO)
+# if (BOOST_VERSION >= 104700)
+# define BOOST_ASIO_HAS_BOOST_CHRONO
+# endif // (BOOST_VERSION >= 104700)
+#endif // !defined(BOOST_ASIO_DISABLE_BOOST_CHRONO)
+
 // Windows: target OS version.
 #if defined(BOOST_WINDOWS) || defined(__CYGWIN__)
 # if !defined(_WIN32_WINNT) && !defined(_WIN32_WINDOWS)
@@ -289,6 +311,15 @@
 # endif // defined(BOOST_ASIO_HAS_IOCP)
 #endif // !defined(BOOST_ASIO_DISABLE_WINDOWS_RANDOM_ACCESS_HANDLE)
 
+// Windows: object handles.
+#if !defined(BOOST_ASIO_DISABLE_WINDOWS_OBJECT_HANDLE)
+# if defined(BOOST_WINDOWS) || defined(__CYGWIN__)
+# if !defined(UNDER_CE)
+# define BOOST_ASIO_HAS_WINDOWS_OBJECT_HANDLE 1
+# endif // !defined(UNDER_CE)
+# endif // defined(BOOST_WINDOWS) || defined(__CYGWIN__)
+#endif // !defined(BOOST_ASIO_DISABLE_WINDOWS_OBJECT_HANDLE)
+
 // Windows: OVERLAPPED wrapper.
 #if !defined(BOOST_ASIO_DISABLE_WINDOWS_OVERLAPPED_PTR)
 # if defined(BOOST_ASIO_HAS_IOCP)

Modified: branches/quickbook-dev/boost/asio/detail/consuming_buffers.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/consuming_buffers.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/consuming_buffers.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/consuming_buffers.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/deadline_timer_service.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/deadline_timer_service.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/deadline_timer_service.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/deadline_timer_service.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -24,14 +24,10 @@
 #include <boost/asio/detail/noncopyable.hpp>
 #include <boost/asio/detail/socket_ops.hpp>
 #include <boost/asio/detail/socket_types.hpp>
-#include <boost/asio/detail/timer_op.hpp>
 #include <boost/asio/detail/timer_queue.hpp>
 #include <boost/asio/detail/timer_scheduler.hpp>
 #include <boost/asio/detail/wait_handler.hpp>
-
-#include <boost/asio/detail/push_options.hpp>
-#include <boost/date_time/posix_time/posix_time_types.hpp>
-#include <boost/asio/detail/pop_options.hpp>
+#include <boost/asio/detail/wait_op.hpp>
 
 #include <boost/asio/detail/push_options.hpp>
 
@@ -166,12 +162,8 @@
     ec = boost::system::error_code();
     while (Time_Traits::less_than(now, impl.expiry) && !ec)
     {
- boost::posix_time::time_duration timeout =
- Time_Traits::to_posix_duration(Time_Traits::subtract(impl.expiry, now));
- ::timeval tv;
- tv.tv_sec = timeout.total_seconds();
- tv.tv_usec = timeout.total_microseconds() % 1000000;
- socket_ops::select(0, 0, 0, 0, &tv, ec);
+ this->do_wait(Time_Traits::to_posix_duration(
+ Time_Traits::subtract(impl.expiry, now)), ec);
       now = Time_Traits::now();
     }
   }
@@ -196,6 +188,18 @@
   }
 
 private:
+ // Helper function to wait given a duration type. The duration type should
+ // either be of type boost::posix_time::time_duration, or implement the
+ // required subset of its interface.
+ template <typename Duration>
+ void do_wait(const Duration& timeout, boost::system::error_code& ec)
+ {
+ ::timeval tv;
+ tv.tv_sec = timeout.total_seconds();
+ tv.tv_usec = timeout.total_microseconds() % 1000000;
+ socket_ops::select(0, 0, 0, 0, &tv, ec);
+ }
+
   // The queue of timers.
   timer_queue<Time_Traits> timer_queue_;
 

Modified: branches/quickbook-dev/boost/asio/detail/dependent_type.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/dependent_type.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/dependent_type.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/dependent_type.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/descriptor_ops.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/descriptor_ops.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/descriptor_ops.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/descriptor_ops.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/descriptor_read_op.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/descriptor_read_op.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/descriptor_read_op.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/descriptor_read_op.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/descriptor_write_op.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/descriptor_write_op.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/descriptor_write_op.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/descriptor_write_op.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/dev_poll_reactor.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/dev_poll_reactor.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/dev_poll_reactor.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/dev_poll_reactor.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -31,10 +31,10 @@
 #include <boost/asio/detail/reactor_op_queue.hpp>
 #include <boost/asio/detail/select_interrupter.hpp>
 #include <boost/asio/detail/socket_types.hpp>
-#include <boost/asio/detail/timer_op.hpp>
 #include <boost/asio/detail/timer_queue_base.hpp>
 #include <boost/asio/detail/timer_queue_fwd.hpp>
 #include <boost/asio/detail/timer_queue_set.hpp>
+#include <boost/asio/detail/wait_op.hpp>
 #include <boost/asio/io_service.hpp>
 
 #include <boost/asio/detail/push_options.hpp>
@@ -125,7 +125,7 @@
   template <typename Time_Traits>
   void schedule_timer(timer_queue<Time_Traits>& queue,
       const typename Time_Traits::time_type& time,
- typename timer_queue<Time_Traits>::per_timer_data& timer, timer_op* op);
+ typename timer_queue<Time_Traits>::per_timer_data& timer, wait_op* op);
 
   // Cancel the timer operations associated with the given token. Returns the
   // number of operations that have been posted or dispatched.

Modified: branches/quickbook-dev/boost/asio/detail/dev_poll_reactor_fwd.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/dev_poll_reactor_fwd.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/dev_poll_reactor_fwd.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/dev_poll_reactor_fwd.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/epoll_reactor.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/epoll_reactor.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/epoll_reactor.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/epoll_reactor.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -29,10 +29,10 @@
 #include <boost/asio/detail/reactor_op.hpp>
 #include <boost/asio/detail/select_interrupter.hpp>
 #include <boost/asio/detail/socket_types.hpp>
-#include <boost/asio/detail/timer_op.hpp>
 #include <boost/asio/detail/timer_queue_base.hpp>
 #include <boost/asio/detail/timer_queue_fwd.hpp>
 #include <boost/asio/detail/timer_queue_set.hpp>
+#include <boost/asio/detail/wait_op.hpp>
 
 #include <boost/asio/detail/push_options.hpp>
 
@@ -147,7 +147,7 @@
   template <typename Time_Traits>
   void schedule_timer(timer_queue<Time_Traits>& queue,
       const typename Time_Traits::time_type& time,
- typename timer_queue<Time_Traits>::per_timer_data& timer, timer_op* op);
+ typename timer_queue<Time_Traits>::per_timer_data& timer, wait_op* op);
 
   // Cancel the timer operations associated with the given token. Returns the
   // number of operations that have been posted or dispatched.

Modified: branches/quickbook-dev/boost/asio/detail/epoll_reactor_fwd.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/epoll_reactor_fwd.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/epoll_reactor_fwd.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/epoll_reactor_fwd.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/event.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/event.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/event.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/event.hpp
 // ~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/eventfd_select_interrupter.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/eventfd_select_interrupter.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/eventfd_select_interrupter.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/eventfd_select_interrupter.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 // Copyright (c) 2008 Roelof Naude (roelof.naude at gmail dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying

Modified: branches/quickbook-dev/boost/asio/detail/fd_set_adapter.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/fd_set_adapter.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/fd_set_adapter.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/fd_set_adapter.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/fenced_block.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/fenced_block.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/fenced_block.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/fenced_block.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/gcc_arm_fenced_block.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/gcc_arm_fenced_block.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/gcc_arm_fenced_block.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/gcc_arm_fenced_block.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/gcc_hppa_fenced_block.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/gcc_hppa_fenced_block.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/gcc_hppa_fenced_block.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/gcc_hppa_fenced_block.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/gcc_sync_fenced_block.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/gcc_sync_fenced_block.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/gcc_sync_fenced_block.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/gcc_sync_fenced_block.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/gcc_x86_fenced_block.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/gcc_x86_fenced_block.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/gcc_x86_fenced_block.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/gcc_x86_fenced_block.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/handler_alloc_helpers.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/handler_alloc_helpers.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/handler_alloc_helpers.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/handler_alloc_helpers.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/handler_invoke_helpers.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/handler_invoke_helpers.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/handler_invoke_helpers.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/handler_invoke_helpers.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/handler_tracking.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/handler_tracking.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/handler_tracking.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/handler_tracking.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/handler_type_requirements.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/handler_type_requirements.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/handler_type_requirements.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/handler_type_requirements.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/hash_map.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/hash_map.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/hash_map.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/hash_map.hpp
 // ~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/impl/descriptor_ops.ipp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/impl/descriptor_ops.ipp (original)
+++ branches/quickbook-dev/boost/asio/detail/impl/descriptor_ops.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/impl/descriptor_ops.ipp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/impl/dev_poll_reactor.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/impl/dev_poll_reactor.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/impl/dev_poll_reactor.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/impl/dev_poll_reactor.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -40,7 +40,7 @@
 template <typename Time_Traits>
 void dev_poll_reactor::schedule_timer(timer_queue<Time_Traits>& queue,
     const typename Time_Traits::time_type& time,
- typename timer_queue<Time_Traits>::per_timer_data& timer, timer_op* op)
+ typename timer_queue<Time_Traits>::per_timer_data& timer, wait_op* op)
 {
   boost::asio::detail::mutex::scoped_lock lock(mutex_);
 

Modified: branches/quickbook-dev/boost/asio/detail/impl/dev_poll_reactor.ipp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/impl/dev_poll_reactor.ipp (original)
+++ branches/quickbook-dev/boost/asio/detail/impl/dev_poll_reactor.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/impl/dev_poll_reactor.ipp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/impl/epoll_reactor.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/impl/epoll_reactor.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/impl/epoll_reactor.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/impl/epoll_reactor.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -38,7 +38,7 @@
 template <typename Time_Traits>
 void epoll_reactor::schedule_timer(timer_queue<Time_Traits>& queue,
     const typename Time_Traits::time_type& time,
- typename timer_queue<Time_Traits>::per_timer_data& timer, timer_op* op)
+ typename timer_queue<Time_Traits>::per_timer_data& timer, wait_op* op)
 {
   mutex::scoped_lock lock(mutex_);
 

Modified: branches/quickbook-dev/boost/asio/detail/impl/epoll_reactor.ipp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/impl/epoll_reactor.ipp (original)
+++ branches/quickbook-dev/boost/asio/detail/impl/epoll_reactor.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/impl/epoll_reactor.ipp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/impl/eventfd_select_interrupter.ipp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/impl/eventfd_select_interrupter.ipp (original)
+++ branches/quickbook-dev/boost/asio/detail/impl/eventfd_select_interrupter.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/impl/eventfd_select_interrupter.ipp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 // Copyright (c) 2008 Roelof Naude (roelof.naude at gmail dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying

Modified: branches/quickbook-dev/boost/asio/detail/impl/handler_tracking.ipp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/impl/handler_tracking.ipp (original)
+++ branches/quickbook-dev/boost/asio/detail/impl/handler_tracking.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/impl/handler_tracking.ipp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/impl/kqueue_reactor.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/impl/kqueue_reactor.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/impl/kqueue_reactor.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/impl/kqueue_reactor.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 // Copyright (c) 2005 Stefan Arentz (stefan at soze dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
@@ -42,7 +42,7 @@
 template <typename Time_Traits>
 void kqueue_reactor::schedule_timer(timer_queue<Time_Traits>& queue,
     const typename Time_Traits::time_type& time,
- typename timer_queue<Time_Traits>::per_timer_data& timer, timer_op* op)
+ typename timer_queue<Time_Traits>::per_timer_data& timer, wait_op* op)
 {
   boost::asio::detail::mutex::scoped_lock lock(mutex_);
 

Modified: branches/quickbook-dev/boost/asio/detail/impl/kqueue_reactor.ipp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/impl/kqueue_reactor.ipp (original)
+++ branches/quickbook-dev/boost/asio/detail/impl/kqueue_reactor.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/impl/kqueue_reactor.ipp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 // Copyright (c) 2005 Stefan Arentz (stefan at soze dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
@@ -28,8 +28,8 @@
 
 #if defined(__NetBSD__)
 # define BOOST_ASIO_KQUEUE_EV_SET(ev, ident, filt, flags, fflags, data, udata) \
- EV_SET(ev, ident, filt, flags, fflags, \
- data, reinterpret_cast<intptr_t>(udata))
+ EV_SET(ev, ident, filt, flags, fflags, data, \
+ reinterpret_cast<intptr_t>(static_cast<void*>(udata)))
 #else
 # define BOOST_ASIO_KQUEUE_EV_SET(ev, ident, filt, flags, fflags, data, udata) \
     EV_SET(ev, ident, filt, flags, fflags, data, udata)

Modified: branches/quickbook-dev/boost/asio/detail/impl/pipe_select_interrupter.ipp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/impl/pipe_select_interrupter.ipp (original)
+++ branches/quickbook-dev/boost/asio/detail/impl/pipe_select_interrupter.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/impl/pipe_select_interrupter.ipp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/impl/posix_event.ipp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/impl/posix_event.ipp (original)
+++ branches/quickbook-dev/boost/asio/detail/impl/posix_event.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/impl/posix_event.ipp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/impl/posix_mutex.ipp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/impl/posix_mutex.ipp (original)
+++ branches/quickbook-dev/boost/asio/detail/impl/posix_mutex.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/impl/posix_mutex.ipp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/impl/posix_thread.ipp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/impl/posix_thread.ipp (original)
+++ branches/quickbook-dev/boost/asio/detail/impl/posix_thread.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/impl/posix_thread.ipp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/impl/posix_tss_ptr.ipp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/impl/posix_tss_ptr.ipp (original)
+++ branches/quickbook-dev/boost/asio/detail/impl/posix_tss_ptr.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/impl/posix_tss_ptr.ipp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/impl/reactive_descriptor_service.ipp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/impl/reactive_descriptor_service.ipp (original)
+++ branches/quickbook-dev/boost/asio/detail/impl/reactive_descriptor_service.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/impl/reactive_descriptor_service.ipp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/impl/reactive_serial_port_service.ipp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/impl/reactive_serial_port_service.ipp (original)
+++ branches/quickbook-dev/boost/asio/detail/impl/reactive_serial_port_service.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/impl/reactive_serial_port_service.ipp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 // Copyright (c) 2008 Rep Invariant Systems, Inc. (info_at_[hidden])
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying

Modified: branches/quickbook-dev/boost/asio/detail/impl/reactive_socket_service_base.ipp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/impl/reactive_socket_service_base.ipp (original)
+++ branches/quickbook-dev/boost/asio/detail/impl/reactive_socket_service_base.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/reactive_socket_service_base.ipp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/impl/resolver_service_base.ipp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/impl/resolver_service_base.ipp (original)
+++ branches/quickbook-dev/boost/asio/detail/impl/resolver_service_base.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/impl/resolver_service_base.ipp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/impl/select_reactor.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/impl/select_reactor.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/impl/select_reactor.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/impl/select_reactor.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -44,7 +44,7 @@
 template <typename Time_Traits>
 void select_reactor::schedule_timer(timer_queue<Time_Traits>& queue,
     const typename Time_Traits::time_type& time,
- typename timer_queue<Time_Traits>::per_timer_data& timer, timer_op* op)
+ typename timer_queue<Time_Traits>::per_timer_data& timer, wait_op* op)
 {
   boost::asio::detail::mutex::scoped_lock lock(mutex_);
 

Modified: branches/quickbook-dev/boost/asio/detail/impl/select_reactor.ipp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/impl/select_reactor.ipp (original)
+++ branches/quickbook-dev/boost/asio/detail/impl/select_reactor.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/impl/select_reactor.ipp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/impl/service_registry.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/impl/service_registry.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/impl/service_registry.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/impl/service_registry.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/impl/service_registry.ipp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/impl/service_registry.ipp (original)
+++ branches/quickbook-dev/boost/asio/detail/impl/service_registry.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/impl/service_registry.ipp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/impl/signal_set_service.ipp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/impl/signal_set_service.ipp (original)
+++ branches/quickbook-dev/boost/asio/detail/impl/signal_set_service.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/impl/signal_set_service.ipp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/impl/socket_ops.ipp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/impl/socket_ops.ipp (original)
+++ branches/quickbook-dev/boost/asio/detail/impl/socket_ops.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/impl/socket_ops.ipp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -465,6 +465,10 @@
         &msghdr::msg_namelen, s, addr, addrlen), ec);
   if (result == 0)
     ec = boost::system::error_code();
+#if defined(__linux__)
+ else if (ec == boost::asio::error::try_again)
+ ec = boost::asio::error::no_buffer_space;
+#endif // defined(__linux__)
   return result;
 }
 

Modified: branches/quickbook-dev/boost/asio/detail/impl/socket_select_interrupter.ipp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/impl/socket_select_interrupter.ipp (original)
+++ branches/quickbook-dev/boost/asio/detail/impl/socket_select_interrupter.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/impl/socket_select_interrupter.ipp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/impl/strand_service.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/impl/strand_service.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/impl/strand_service.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/impl/strand_service.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/impl/strand_service.ipp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/impl/strand_service.ipp (original)
+++ branches/quickbook-dev/boost/asio/detail/impl/strand_service.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/impl/strand_service.ipp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/impl/task_io_service.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/impl/task_io_service.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/impl/task_io_service.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/impl/task_io_service.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/impl/task_io_service.ipp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/impl/task_io_service.ipp (original)
+++ branches/quickbook-dev/boost/asio/detail/impl/task_io_service.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/impl/task_io_service.ipp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -336,7 +336,10 @@
         task_interrupted_ = more_handlers;
 
         if (more_handlers && !one_thread_)
- wake_one_idle_thread_and_unlock(lock);
+ {
+ if (!wake_one_idle_thread_and_unlock(lock))
+ lock.unlock();
+ }
         else
           lock.unlock();
 

Modified: branches/quickbook-dev/boost/asio/detail/impl/throw_error.ipp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/impl/throw_error.ipp (original)
+++ branches/quickbook-dev/boost/asio/detail/impl/throw_error.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/impl/throw_error.ipp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Deleted: branches/quickbook-dev/boost/asio/detail/impl/timer_queue.ipp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/impl/timer_queue.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
+++ (empty file)
@@ -1,87 +0,0 @@
-//
-// detail/impl/timer_queue.ipp
-// ~~~~~~~~~~~~~~~~~~~~~~~~~~~
-//
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
-//
-// Distributed under the Boost Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-
-#ifndef BOOST_ASIO_DETAIL_IMPL_TIMER_QUEUE_IPP
-#define BOOST_ASIO_DETAIL_IMPL_TIMER_QUEUE_IPP
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1200)
-# pragma once
-#endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
-
-#include <boost/asio/detail/config.hpp>
-
-#if !defined(BOOST_ASIO_HEADER_ONLY)
-
-#include <boost/asio/detail/timer_queue.hpp>
-
-#include <boost/asio/detail/push_options.hpp>
-
-namespace boost {
-namespace asio {
-namespace detail {
-
-timer_queue<time_traits<boost::posix_time::ptime> >::timer_queue()
-{
-}
-
-timer_queue<time_traits<boost::posix_time::ptime> >::~timer_queue()
-{
-}
-
-bool timer_queue<time_traits<boost::posix_time::ptime> >::enqueue_timer(
- const time_type& time, per_timer_data& timer, timer_op* op)
-{
- return impl_.enqueue_timer(time, timer, op);
-}
-
-bool timer_queue<time_traits<boost::posix_time::ptime> >::empty() const
-{
- return impl_.empty();
-}
-
-long timer_queue<time_traits<boost::posix_time::ptime> >::wait_duration_msec(
- long max_duration) const
-{
- return impl_.wait_duration_msec(max_duration);
-}
-
-long timer_queue<time_traits<boost::posix_time::ptime> >::wait_duration_usec(
- long max_duration) const
-{
- return impl_.wait_duration_usec(max_duration);
-}
-
-void timer_queue<time_traits<boost::posix_time::ptime> >::get_ready_timers(
- op_queue<operation>& ops)
-{
- impl_.get_ready_timers(ops);
-}
-
-void timer_queue<time_traits<boost::posix_time::ptime> >::get_all_timers(
- op_queue<operation>& ops)
-{
- impl_.get_all_timers(ops);
-}
-
-std::size_t timer_queue<time_traits<boost::posix_time::ptime> >::cancel_timer(
- per_timer_data& timer, op_queue<operation>& ops, std::size_t max_cancelled)
-{
- return impl_.cancel_timer(timer, ops, max_cancelled);
-}
-
-} // namespace detail
-} // namespace asio
-} // namespace boost
-
-#include <boost/asio/detail/pop_options.hpp>
-
-#endif // !defined(BOOST_ASIO_HEADER_ONLY)
-
-#endif // BOOST_ASIO_DETAIL_IMPL_TIMER_QUEUE_IPP

Modified: branches/quickbook-dev/boost/asio/detail/impl/timer_queue_set.ipp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/impl/timer_queue_set.ipp (original)
+++ branches/quickbook-dev/boost/asio/detail/impl/timer_queue_set.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/impl/timer_queue_set.ipp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/impl/win_event.ipp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/impl/win_event.ipp (original)
+++ branches/quickbook-dev/boost/asio/detail/impl/win_event.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/win_event.ipp
 // ~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/impl/win_iocp_handle_service.ipp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/impl/win_iocp_handle_service.ipp (original)
+++ branches/quickbook-dev/boost/asio/detail/impl/win_iocp_handle_service.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/impl/win_iocp_handle_service.ipp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 // Copyright (c) 2008 Rep Invariant Systems, Inc. (info_at_[hidden])
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying

Modified: branches/quickbook-dev/boost/asio/detail/impl/win_iocp_io_service.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/impl/win_iocp_io_service.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/impl/win_iocp_io_service.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/impl/win_iocp_io_service.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -87,7 +87,7 @@
 template <typename Time_Traits>
 void win_iocp_io_service::schedule_timer(timer_queue<Time_Traits>& queue,
     const typename Time_Traits::time_type& time,
- typename timer_queue<Time_Traits>::per_timer_data& timer, timer_op* op)
+ typename timer_queue<Time_Traits>::per_timer_data& timer, wait_op* op)
 {
   // If the service has been shut down we silently discard the timer.
   if (::InterlockedExchangeAdd(&shutdown_, 0) != 0)

Modified: branches/quickbook-dev/boost/asio/detail/impl/win_iocp_io_service.ipp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/impl/win_iocp_io_service.ipp (original)
+++ branches/quickbook-dev/boost/asio/detail/impl/win_iocp_io_service.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/impl/win_iocp_io_service.ipp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -148,7 +148,7 @@
 {
   if (::InterlockedExchangeAdd(&outstanding_work_, 0) == 0)
   {
- stop();
+ InterlockedExchange(&stopped_, 1);
     ec = boost::system::error_code();
     return 0;
   }
@@ -166,7 +166,7 @@
 {
   if (::InterlockedExchangeAdd(&outstanding_work_, 0) == 0)
   {
- stop();
+ InterlockedExchange(&stopped_, 1);
     ec = boost::system::error_code();
     return 0;
   }
@@ -180,7 +180,7 @@
 {
   if (::InterlockedExchangeAdd(&outstanding_work_, 0) == 0)
   {
- stop();
+ InterlockedExchange(&stopped_, 1);
     ec = boost::system::error_code();
     return 0;
   }
@@ -198,7 +198,7 @@
 {
   if (::InterlockedExchangeAdd(&outstanding_work_, 0) == 0)
   {
- stop();
+ InterlockedExchange(&stopped_, 1);
     ec = boost::system::error_code();
     return 0;
   }

Modified: branches/quickbook-dev/boost/asio/detail/impl/win_iocp_serial_port_service.ipp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/impl/win_iocp_serial_port_service.ipp (original)
+++ branches/quickbook-dev/boost/asio/detail/impl/win_iocp_serial_port_service.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/impl/win_iocp_serial_port_service.ipp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 // Copyright (c) 2008 Rep Invariant Systems, Inc. (info_at_[hidden])
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying

Modified: branches/quickbook-dev/boost/asio/detail/impl/win_iocp_socket_service_base.ipp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/impl/win_iocp_socket_service_base.ipp (original)
+++ branches/quickbook-dev/boost/asio/detail/impl/win_iocp_socket_service_base.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/impl/win_iocp_socket_service_base.ipp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/impl/win_mutex.ipp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/impl/win_mutex.ipp (original)
+++ branches/quickbook-dev/boost/asio/detail/impl/win_mutex.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/impl/win_mutex.ipp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/impl/win_static_mutex.ipp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/impl/win_static_mutex.ipp (original)
+++ branches/quickbook-dev/boost/asio/detail/impl/win_static_mutex.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/impl/win_static_mutex.ipp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/impl/win_thread.ipp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/impl/win_thread.ipp (original)
+++ branches/quickbook-dev/boost/asio/detail/impl/win_thread.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/impl/win_thread.ipp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/impl/win_tss_ptr.ipp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/impl/win_tss_ptr.ipp (original)
+++ branches/quickbook-dev/boost/asio/detail/impl/win_tss_ptr.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/impl/win_tss_ptr.ipp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/impl/winsock_init.ipp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/impl/winsock_init.ipp (original)
+++ branches/quickbook-dev/boost/asio/detail/impl/winsock_init.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/impl/winsock_init.ipp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/io_control.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/io_control.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/io_control.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/io_control.hpp
 // ~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/kqueue_reactor.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/kqueue_reactor.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/kqueue_reactor.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/kqueue_reactor.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 // Copyright (c) 2005 Stefan Arentz (stefan at soze dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
@@ -32,10 +32,10 @@
 #include <boost/asio/detail/reactor_op.hpp>
 #include <boost/asio/detail/select_interrupter.hpp>
 #include <boost/asio/detail/socket_types.hpp>
-#include <boost/asio/detail/timer_op.hpp>
 #include <boost/asio/detail/timer_queue_base.hpp>
 #include <boost/asio/detail/timer_queue_fwd.hpp>
 #include <boost/asio/detail/timer_queue_set.hpp>
+#include <boost/asio/detail/wait_op.hpp>
 #include <boost/asio/error.hpp>
 #include <boost/asio/io_service.hpp>
 
@@ -149,7 +149,7 @@
   template <typename Time_Traits>
   void schedule_timer(timer_queue<Time_Traits>& queue,
       const typename Time_Traits::time_type& time,
- typename timer_queue<Time_Traits>::per_timer_data& timer, timer_op* op);
+ typename timer_queue<Time_Traits>::per_timer_data& timer, wait_op* op);
 
   // Cancel the timer operations associated with the given token. Returns the
   // number of operations that have been posted or dispatched.

Modified: branches/quickbook-dev/boost/asio/detail/kqueue_reactor_fwd.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/kqueue_reactor_fwd.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/kqueue_reactor_fwd.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/kqueue_reactor_fwd.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 // Copyright (c) 2005 Stefan Arentz (stefan at soze dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying

Modified: branches/quickbook-dev/boost/asio/detail/local_free_on_block_exit.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/local_free_on_block_exit.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/local_free_on_block_exit.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/local_free_on_block_exit.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/macos_fenced_block.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/macos_fenced_block.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/macos_fenced_block.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/macos_fenced_block.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/mutex.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/mutex.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/mutex.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/mutex.hpp
 // ~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/noncopyable.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/noncopyable.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/noncopyable.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/noncopyable.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/null_event.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/null_event.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/null_event.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/null_event.hpp
 // ~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/null_fenced_block.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/null_fenced_block.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/null_fenced_block.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/null_fenced_block.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/null_mutex.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/null_mutex.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/null_mutex.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/null_mutex.hpp
 // ~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/null_signal_blocker.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/null_signal_blocker.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/null_signal_blocker.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/null_signal_blocker.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/null_static_mutex.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/null_static_mutex.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/null_static_mutex.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/null_static_mutex.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/null_thread.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/null_thread.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/null_thread.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/null_thread.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/null_tss_ptr.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/null_tss_ptr.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/null_tss_ptr.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/null_tss_ptr.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/object_pool.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/object_pool.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/object_pool.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/object_pool.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/old_win_sdk_compat.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/old_win_sdk_compat.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/old_win_sdk_compat.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/old_win_sdk_compat.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/op_queue.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/op_queue.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/op_queue.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/op_queue.hpp
 // ~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/operation.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/operation.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/operation.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/operation.hpp
 // ~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/pipe_select_interrupter.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/pipe_select_interrupter.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/pipe_select_interrupter.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/pipe_select_interrupter.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/pop_options.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/pop_options.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/pop_options.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/pop_options.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/posix_event.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/posix_event.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/posix_event.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/posix_event.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/posix_fd_set_adapter.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/posix_fd_set_adapter.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/posix_fd_set_adapter.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/posix_fd_set_adapter.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/posix_mutex.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/posix_mutex.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/posix_mutex.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/posix_mutex.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/posix_signal_blocker.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/posix_signal_blocker.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/posix_signal_blocker.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/posix_signal_blocker.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/posix_static_mutex.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/posix_static_mutex.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/posix_static_mutex.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/posix_static_mutex.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/posix_thread.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/posix_thread.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/posix_thread.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/posix_thread.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/posix_tss_ptr.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/posix_tss_ptr.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/posix_tss_ptr.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/posix_tss_ptr.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/push_options.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/push_options.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/push_options.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/push_options.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/reactive_descriptor_service.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/reactive_descriptor_service.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/reactive_descriptor_service.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/reactive_descriptor_service.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/reactive_null_buffers_op.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/reactive_null_buffers_op.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/reactive_null_buffers_op.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/reactive_null_buffers_op.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/reactive_serial_port_service.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/reactive_serial_port_service.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/reactive_serial_port_service.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/reactive_serial_port_service.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 // Copyright (c) 2008 Rep Invariant Systems, Inc. (info_at_[hidden])
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying

Modified: branches/quickbook-dev/boost/asio/detail/reactive_socket_accept_op.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/reactive_socket_accept_op.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/reactive_socket_accept_op.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/reactive_socket_accept_op.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/reactive_socket_connect_op.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/reactive_socket_connect_op.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/reactive_socket_connect_op.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/reactive_socket_connect_op.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/reactive_socket_recv_op.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/reactive_socket_recv_op.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/reactive_socket_recv_op.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/reactive_socket_recv_op.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/reactive_socket_recvfrom_op.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/reactive_socket_recvfrom_op.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/reactive_socket_recvfrom_op.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/reactive_socket_recvfrom_op.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/reactive_socket_recvmsg_op.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/reactive_socket_recvmsg_op.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/reactive_socket_recvmsg_op.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/reactive_socket_recvmsg_op.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/reactive_socket_send_op.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/reactive_socket_send_op.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/reactive_socket_send_op.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/reactive_socket_send_op.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/reactive_socket_sendto_op.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/reactive_socket_sendto_op.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/reactive_socket_sendto_op.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/reactive_socket_sendto_op.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/reactive_socket_service.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/reactive_socket_service.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/reactive_socket_service.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/reactive_socket_service.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/reactive_socket_service_base.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/reactive_socket_service_base.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/reactive_socket_service_base.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/reactive_socket_service_base.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/reactor.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/reactor.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/reactor.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/reactor.hpp
 // ~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/reactor_fwd.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/reactor_fwd.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/reactor_fwd.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/reactor_fwd.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/reactor_op.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/reactor_op.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/reactor_op.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/reactor_op.hpp
 // ~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/reactor_op_queue.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/reactor_op_queue.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/reactor_op_queue.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/reactor_op_queue.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/regex_fwd.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/regex_fwd.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/regex_fwd.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/regex_fwd.hpp
 // ~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/resolve_endpoint_op.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/resolve_endpoint_op.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/resolve_endpoint_op.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/resolve_endpoint_op.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/resolve_op.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/resolve_op.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/resolve_op.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/resolve_op.hpp
 // ~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/resolver_service.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/resolver_service.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/resolver_service.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/resolver_service.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/resolver_service_base.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/resolver_service_base.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/resolver_service_base.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/resolver_service_base.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/scoped_lock.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/scoped_lock.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/scoped_lock.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/scoped_lock.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/scoped_ptr.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/scoped_ptr.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/scoped_ptr.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/scoped_ptr.hpp
 // ~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/select_interrupter.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/select_interrupter.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/select_interrupter.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/select_interrupter.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/select_reactor.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/select_reactor.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/select_reactor.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/select_reactor.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -32,10 +32,10 @@
 #include <boost/asio/detail/select_interrupter.hpp>
 #include <boost/asio/detail/select_reactor_fwd.hpp>
 #include <boost/asio/detail/socket_types.hpp>
-#include <boost/asio/detail/timer_op.hpp>
 #include <boost/asio/detail/timer_queue_base.hpp>
 #include <boost/asio/detail/timer_queue_fwd.hpp>
 #include <boost/asio/detail/timer_queue_set.hpp>
+#include <boost/asio/detail/wait_op.hpp>
 #include <boost/asio/io_service.hpp>
 
 #if defined(BOOST_ASIO_HAS_IOCP)
@@ -134,7 +134,7 @@
   template <typename Time_Traits>
   void schedule_timer(timer_queue<Time_Traits>& queue,
       const typename Time_Traits::time_type& time,
- typename timer_queue<Time_Traits>::per_timer_data& timer, timer_op* op);
+ typename timer_queue<Time_Traits>::per_timer_data& timer, wait_op* op);
 
   // Cancel the timer operations associated with the given token. Returns the
   // number of operations that have been posted or dispatched.

Modified: branches/quickbook-dev/boost/asio/detail/select_reactor_fwd.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/select_reactor_fwd.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/select_reactor_fwd.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/select_reactor_fwd.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/service_registry.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/service_registry.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/service_registry.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/service_registry.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/service_registry_fwd.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/service_registry_fwd.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/service_registry_fwd.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/service_registry_fwd.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/shared_ptr.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/shared_ptr.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/shared_ptr.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/shared_ptr.hpp
 // ~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/signal_blocker.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/signal_blocker.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/signal_blocker.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/signal_blocker.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/signal_handler.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/signal_handler.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/signal_handler.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/signal_handler.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/signal_init.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/signal_init.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/signal_init.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/signal_init.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/signal_op.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/signal_op.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/signal_op.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/signal_op.hpp
 // ~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/signal_set_service.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/signal_set_service.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/signal_set_service.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/signal_set_service.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/socket_holder.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/socket_holder.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/socket_holder.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/socket_holder.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/socket_ops.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/socket_ops.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/socket_ops.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/socket_ops.hpp
 // ~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/socket_option.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/socket_option.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/socket_option.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/socket_option.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/socket_select_interrupter.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/socket_select_interrupter.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/socket_select_interrupter.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/socket_select_interrupter.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/socket_types.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/socket_types.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/socket_types.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/socket_types.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/solaris_fenced_block.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/solaris_fenced_block.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/solaris_fenced_block.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/solaris_fenced_block.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/static_mutex.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/static_mutex.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/static_mutex.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/static_mutex.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/strand_service.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/strand_service.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/strand_service.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/strand_service.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/task_io_service.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/task_io_service.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/task_io_service.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/task_io_service.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -89,7 +89,7 @@
   // Return whether a handler can be dispatched immediately.
   bool can_dispatch()
   {
- return thread_call_stack::contains(this);
+ return thread_call_stack::contains(this) != 0;
   }
 
   // Request invocation of the given handler.

Modified: branches/quickbook-dev/boost/asio/detail/task_io_service_fwd.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/task_io_service_fwd.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/task_io_service_fwd.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/task_io_service_fwd.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/task_io_service_operation.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/task_io_service_operation.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/task_io_service_operation.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/task_io_service_operation.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/thread.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/thread.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/thread.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/thread.hpp
 // ~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/throw_error.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/throw_error.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/throw_error.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/throw_error.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Deleted: branches/quickbook-dev/boost/asio/detail/timer_op.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/timer_op.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
+++ (empty file)
@@ -1,47 +0,0 @@
-//
-// detail/timer_op.hpp
-// ~~~~~~~~~~~~~~~~~~~
-//
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
-//
-// Distributed under the Boost Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-//
-
-#ifndef BOOST_ASIO_DETAIL_TIMER_OP_HPP
-#define BOOST_ASIO_DETAIL_TIMER_OP_HPP
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1200)
-# pragma once
-#endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
-
-#include <boost/asio/detail/config.hpp>
-#include <boost/asio/detail/operation.hpp>
-
-#include <boost/asio/detail/push_options.hpp>
-
-namespace boost {
-namespace asio {
-namespace detail {
-
-class timer_op
- : public operation
-{
-public:
- // The error code to be passed to the completion handler.
- boost::system::error_code ec_;
-
-protected:
- timer_op(func_type func)
- : operation(func)
- {
- }
-};
-
-} // namespace detail
-} // namespace asio
-} // namespace boost
-
-#include <boost/asio/detail/pop_options.hpp>
-
-#endif // BOOST_ASIO_DETAIL_TIMER_OP_HPP

Modified: branches/quickbook-dev/boost/asio/detail/timer_queue.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/timer_queue.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/timer_queue.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/timer_queue.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -20,15 +20,12 @@
 #include <vector>
 #include <boost/config.hpp>
 #include <boost/limits.hpp>
+#include <boost/cstdint.hpp>
+#include <boost/asio/detail/date_time_fwd.hpp>
 #include <boost/asio/detail/op_queue.hpp>
-#include <boost/asio/detail/timer_op.hpp>
 #include <boost/asio/detail/timer_queue_base.hpp>
+#include <boost/asio/detail/wait_op.hpp>
 #include <boost/asio/error.hpp>
-#include <boost/asio/time_traits.hpp>
-
-#include <boost/asio/detail/push_options.hpp>
-#include <boost/date_time/posix_time/posix_time_types.hpp>
-#include <boost/asio/detail/pop_options.hpp>
 
 #include <boost/asio/detail/push_options.hpp>
 
@@ -57,7 +54,7 @@
     friend class timer_queue;
 
     // The operations waiting on the timer.
- op_queue<timer_op> op_queue_;
+ op_queue<wait_op> op_queue_;
 
     // The index of the timer in the heap.
     std::size_t heap_index_;
@@ -77,7 +74,7 @@
   // Add a new timer to the queue. Returns true if this is the timer that is
   // earliest in the queue, in which case the reactor's event demultiplexing
   // function call may need to be interrupted and restarted.
- bool enqueue_timer(const time_type& time, per_timer_data& timer, timer_op* op)
+ bool enqueue_timer(const time_type& time, per_timer_data& timer, wait_op* op)
   {
     // Enqueue the timer object.
     if (timer.prev_ == 0 && &timer != timers_)
@@ -124,17 +121,10 @@
     if (heap_.empty())
       return max_duration;
 
- boost::posix_time::time_duration duration = Time_Traits::to_posix_duration(
- Time_Traits::subtract(heap_[0].time_, Time_Traits::now()));
-
- if (duration > boost::posix_time::milliseconds(max_duration))
- duration = boost::posix_time::milliseconds(max_duration);
- else if (duration <= boost::posix_time::milliseconds(0))
- duration = boost::posix_time::milliseconds(0);
- else if (duration < boost::posix_time::milliseconds(1))
- duration = boost::posix_time::milliseconds(1);
-
- return duration.total_milliseconds();
+ return this->to_msec(
+ Time_Traits::to_posix_duration(
+ Time_Traits::subtract(heap_[0].time_, Time_Traits::now())),
+ max_duration);
   }
 
   // Get the time for the timer that is earliest in the queue.
@@ -143,17 +133,10 @@
     if (heap_.empty())
       return max_duration;
 
- boost::posix_time::time_duration duration = Time_Traits::to_posix_duration(
- Time_Traits::subtract(heap_[0].time_, Time_Traits::now()));
-
- if (duration > boost::posix_time::microseconds(max_duration))
- duration = boost::posix_time::microseconds(max_duration);
- else if (duration <= boost::posix_time::microseconds(0))
- duration = boost::posix_time::microseconds(0);
- else if (duration < boost::posix_time::microseconds(1))
- duration = boost::posix_time::microseconds(1);
-
- return duration.total_microseconds();
+ return this->to_usec(
+ Time_Traits::to_posix_duration(
+ Time_Traits::subtract(heap_[0].time_, Time_Traits::now())),
+ max_duration);
   }
 
   // Dequeue all timers not later than the current time.
@@ -193,7 +176,7 @@
     std::size_t num_cancelled = 0;
     if (timer.prev_ != 0 || &timer == timers_)
     {
- while (timer_op* op = (num_cancelled != max_cancelled)
+ while (wait_op* op = (num_cancelled != max_cancelled)
           ? timer.op_queue_.front() : 0)
       {
         op->ec_ = boost::asio::error::operation_aborted;
@@ -292,9 +275,39 @@
   }
 
   // Determine if the specified absolute time is positive infinity.
- static bool is_positive_infinity(const boost::posix_time::ptime& time)
- {
- return time == boost::posix_time::pos_infin;
+ template <typename T, typename TimeSystem>
+ static bool is_positive_infinity(
+ const boost::date_time::base_time<T, TimeSystem>& time)
+ {
+ return time.is_pos_infinity();
+ }
+
+ // Helper function to convert a duration into milliseconds.
+ template <typename Duration>
+ long to_msec(const Duration& d, long max_duration) const
+ {
+ if (d.ticks() <= 0)
+ return 0;
+ boost::int64_t msec = d.total_milliseconds();
+ if (msec == 0)
+ return 1;
+ if (msec > max_duration)
+ return max_duration;
+ return static_cast<long>(msec);
+ }
+
+ // Helper function to convert a duration into microseconds.
+ template <typename Duration>
+ long to_usec(const Duration& d, long max_duration) const
+ {
+ if (d.ticks() <= 0)
+ return 0;
+ boost::int64_t usec = d.total_microseconds();
+ if (usec == 0)
+ return 1;
+ if (usec > max_duration)
+ return max_duration;
+ return static_cast<long>(usec);
   }
 
   // The head of a linked list of all active timers.
@@ -313,64 +326,6 @@
   std::vector<heap_entry> heap_;
 };
 
-#if !defined(BOOST_ASIO_HEADER_ONLY)
-
-struct forwarding_posix_time_traits : time_traits<boost::posix_time::ptime> {};
-
-// Template specialisation for the commonly used instantation.
-template <>
-class timer_queue<time_traits<boost::posix_time::ptime> >
- : public timer_queue_base
-{
-public:
- // The time type.
- typedef boost::posix_time::ptime time_type;
-
- // The duration type.
- typedef boost::posix_time::time_duration duration_type;
-
- // Per-timer data.
- typedef timer_queue<forwarding_posix_time_traits>::per_timer_data
- per_timer_data;
-
- // Constructor.
- BOOST_ASIO_DECL timer_queue();
-
- // Destructor.
- BOOST_ASIO_DECL virtual ~timer_queue();
-
- // Add a new timer to the queue. Returns true if this is the timer that is
- // earliest in the queue, in which case the reactor's event demultiplexing
- // function call may need to be interrupted and restarted.
- BOOST_ASIO_DECL bool enqueue_timer(const time_type& time,
- per_timer_data& timer, timer_op* op);
-
- // Whether there are no timers in the queue.
- BOOST_ASIO_DECL virtual bool empty() const;
-
- // Get the time for the timer that is earliest in the queue.
- BOOST_ASIO_DECL virtual long wait_duration_msec(long max_duration) const;
-
- // Get the time for the timer that is earliest in the queue.
- BOOST_ASIO_DECL virtual long wait_duration_usec(long max_duration) const;
-
- // Dequeue all timers not later than the current time.
- BOOST_ASIO_DECL virtual void get_ready_timers(op_queue<operation>& ops);
-
- // Dequeue all timers.
- BOOST_ASIO_DECL virtual void get_all_timers(op_queue<operation>& ops);
-
- // Cancel and dequeue operations for the given timer.
- BOOST_ASIO_DECL std::size_t cancel_timer(
- per_timer_data& timer, op_queue<operation>& ops,
- std::size_t max_cancelled = (std::numeric_limits<std::size_t>::max)());
-
-private:
- timer_queue<forwarding_posix_time_traits> impl_;
-};
-
-#endif // !defined(BOOST_ASIO_HEADER_ONLY)
-
 } // namespace detail
 } // namespace asio
 } // namespace boost

Modified: branches/quickbook-dev/boost/asio/detail/timer_queue_base.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/timer_queue_base.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/timer_queue_base.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/timer_queue_base.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/timer_queue_fwd.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/timer_queue_fwd.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/timer_queue_fwd.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/timer_queue_fwd.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/timer_queue_set.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/timer_queue_set.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/timer_queue_set.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/timer_queue_set.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/timer_scheduler.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/timer_scheduler.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/timer_scheduler.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/timer_scheduler.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/timer_scheduler_fwd.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/timer_scheduler_fwd.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/timer_scheduler_fwd.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/timer_scheduler_fwd.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/tss_ptr.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/tss_ptr.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/tss_ptr.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/tss_ptr.hpp
 // ~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/wait_handler.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/wait_handler.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/wait_handler.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/wait_handler.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -19,7 +19,8 @@
 #include <boost/asio/detail/fenced_block.hpp>
 #include <boost/asio/detail/handler_alloc_helpers.hpp>
 #include <boost/asio/detail/handler_invoke_helpers.hpp>
-#include <boost/asio/detail/timer_op.hpp>
+#include <boost/asio/detail/wait_op.hpp>
+#include <boost/asio/io_service.hpp>
 
 #include <boost/asio/detail/push_options.hpp>
 
@@ -28,13 +29,13 @@
 namespace detail {
 
 template <typename Handler>
-class wait_handler : public timer_op
+class wait_handler : public wait_op
 {
 public:
   BOOST_ASIO_DEFINE_HANDLER_PTR(wait_handler);
 
   wait_handler(Handler& h)
- : timer_op(&wait_handler::do_complete),
+ : wait_op(&wait_handler::do_complete),
       handler_(BOOST_ASIO_MOVE_CAST(Handler)(h))
   {
   }

Modified: branches/quickbook-dev/boost/asio/detail/weak_ptr.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/weak_ptr.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/weak_ptr.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/weak_ptr.hpp
 // ~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/win_event.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/win_event.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/win_event.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/win_event.hpp
 // ~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/win_fd_set_adapter.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/win_fd_set_adapter.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/win_fd_set_adapter.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/win_fd_set_adapter.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/win_fenced_block.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/win_fenced_block.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/win_fenced_block.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/win_fenced_block.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/win_iocp_handle_read_op.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/win_iocp_handle_read_op.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/win_iocp_handle_read_op.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/win_iocp_handle_read_op.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 // Copyright (c) 2008 Rep Invariant Systems, Inc. (info_at_[hidden])
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying

Modified: branches/quickbook-dev/boost/asio/detail/win_iocp_handle_service.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/win_iocp_handle_service.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/win_iocp_handle_service.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/win_iocp_handle_service.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 // Copyright (c) 2008 Rep Invariant Systems, Inc. (info_at_[hidden])
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying

Modified: branches/quickbook-dev/boost/asio/detail/win_iocp_handle_write_op.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/win_iocp_handle_write_op.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/win_iocp_handle_write_op.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/win_iocp_handle_write_op.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 // Copyright (c) 2008 Rep Invariant Systems, Inc. (info_at_[hidden])
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying

Modified: branches/quickbook-dev/boost/asio/detail/win_iocp_io_service.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/win_iocp_io_service.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/win_iocp_io_service.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/win_iocp_io_service.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -26,13 +26,13 @@
 #include <boost/asio/detail/op_queue.hpp>
 #include <boost/asio/detail/scoped_ptr.hpp>
 #include <boost/asio/detail/socket_types.hpp>
-#include <boost/asio/detail/timer_op.hpp>
+#include <boost/asio/detail/thread.hpp>
 #include <boost/asio/detail/timer_queue_base.hpp>
 #include <boost/asio/detail/timer_queue_fwd.hpp>
 #include <boost/asio/detail/timer_queue_set.hpp>
+#include <boost/asio/detail/wait_op.hpp>
 #include <boost/asio/detail/win_iocp_io_service_fwd.hpp>
 #include <boost/asio/detail/win_iocp_operation.hpp>
-#include <boost/asio/detail/thread.hpp>
 
 #include <boost/asio/detail/push_options.hpp>
 
@@ -40,7 +40,7 @@
 namespace asio {
 namespace detail {
 
-class timer_op;
+class wait_op;
 
 class win_iocp_io_service
   : public boost::asio::detail::service_base<win_iocp_io_service>
@@ -169,7 +169,7 @@
   template <typename Time_Traits>
   void schedule_timer(timer_queue<Time_Traits>& queue,
       const typename Time_Traits::time_type& time,
- typename timer_queue<Time_Traits>::per_timer_data& timer, timer_op* op);
+ typename timer_queue<Time_Traits>::per_timer_data& timer, wait_op* op);
 
   // Cancel the timer associated with the given token. Returns the number of
   // handlers that have been posted or dispatched.

Modified: branches/quickbook-dev/boost/asio/detail/win_iocp_io_service_fwd.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/win_iocp_io_service_fwd.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/win_iocp_io_service_fwd.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/win_iocp_io_service_fwd.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/win_iocp_null_buffers_op.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/win_iocp_null_buffers_op.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/win_iocp_null_buffers_op.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/win_iocp_null_buffers_op.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/win_iocp_operation.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/win_iocp_operation.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/win_iocp_operation.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/win_iocp_operation.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -21,6 +21,7 @@
 
 #include <boost/asio/detail/handler_tracking.hpp>
 #include <boost/asio/detail/op_queue.hpp>
+#include <boost/asio/detail/socket_types.hpp>
 #include <boost/asio/detail/win_iocp_io_service_fwd.hpp>
 #include <boost/system/error_code.hpp>
 

Modified: branches/quickbook-dev/boost/asio/detail/win_iocp_overlapped_op.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/win_iocp_overlapped_op.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/win_iocp_overlapped_op.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/win_iocp_overlapped_op.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/win_iocp_overlapped_ptr.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/win_iocp_overlapped_ptr.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/win_iocp_overlapped_ptr.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/win_iocp_overlapped_ptr.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/win_iocp_serial_port_service.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/win_iocp_serial_port_service.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/win_iocp_serial_port_service.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/win_iocp_serial_port_service.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 // Copyright (c) 2008 Rep Invariant Systems, Inc. (info_at_[hidden])
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying

Modified: branches/quickbook-dev/boost/asio/detail/win_iocp_socket_accept_op.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/win_iocp_socket_accept_op.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/win_iocp_socket_accept_op.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/win_iocp_socket_accept_op.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/win_iocp_socket_recv_op.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/win_iocp_socket_recv_op.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/win_iocp_socket_recv_op.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/win_iocp_socket_recv_op.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/win_iocp_socket_recvfrom_op.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/win_iocp_socket_recvfrom_op.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/win_iocp_socket_recvfrom_op.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/win_iocp_socket_recvfrom_op.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/win_iocp_socket_recvmsg_op.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/win_iocp_socket_recvmsg_op.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/win_iocp_socket_recvmsg_op.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/win_iocp_socket_recvmsg_op.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/win_iocp_socket_send_op.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/win_iocp_socket_send_op.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/win_iocp_socket_send_op.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/win_iocp_socket_send_op.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/win_iocp_socket_service.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/win_iocp_socket_service.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/win_iocp_socket_service.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/win_iocp_socket_service.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/win_iocp_socket_service_base.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/win_iocp_socket_service_base.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/win_iocp_socket_service_base.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/win_iocp_socket_service_base.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/win_mutex.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/win_mutex.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/win_mutex.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/win_mutex.hpp
 // ~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/win_static_mutex.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/win_static_mutex.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/win_static_mutex.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/win_static_mutex.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/win_thread.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/win_thread.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/win_thread.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/win_thread.hpp
 // ~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/win_tss_ptr.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/win_tss_ptr.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/win_tss_ptr.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/win_tss_ptr.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/wince_thread.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/wince_thread.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/wince_thread.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/wince_thread.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/winsock_init.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/winsock_init.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/winsock_init.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/winsock_init.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/detail/wrapped_handler.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/detail/wrapped_handler.hpp (original)
+++ branches/quickbook-dev/boost/asio/detail/wrapped_handler.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/wrapped_handler.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/error.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/error.hpp (original)
+++ branches/quickbook-dev/boost/asio/error.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // error.hpp
 // ~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/handler_alloc_hook.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/handler_alloc_hook.hpp (original)
+++ branches/quickbook-dev/boost/asio/handler_alloc_hook.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // handler_alloc_hook.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/handler_invoke_hook.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/handler_invoke_hook.hpp (original)
+++ branches/quickbook-dev/boost/asio/handler_invoke_hook.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // handler_invoke_hook.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/impl/connect.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/impl/connect.hpp (original)
+++ branches/quickbook-dev/boost/asio/impl/connect.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // impl/connect.hpp
 // ~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/impl/error.ipp
==============================================================================
--- branches/quickbook-dev/boost/asio/impl/error.ipp (original)
+++ branches/quickbook-dev/boost/asio/impl/error.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // impl/error.ipp
 // ~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/impl/io_service.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/impl/io_service.hpp (original)
+++ branches/quickbook-dev/boost/asio/impl/io_service.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // impl/io_service.hpp
 // ~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/impl/io_service.ipp
==============================================================================
--- branches/quickbook-dev/boost/asio/impl/io_service.ipp (original)
+++ branches/quickbook-dev/boost/asio/impl/io_service.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // impl/io_service.ipp
 // ~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/impl/read.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/impl/read.hpp (original)
+++ branches/quickbook-dev/boost/asio/impl/read.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // impl/read.hpp
 // ~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/impl/read_at.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/impl/read_at.hpp (original)
+++ branches/quickbook-dev/boost/asio/impl/read_at.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // impl/read_at.hpp
 // ~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/impl/read_until.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/impl/read_until.hpp (original)
+++ branches/quickbook-dev/boost/asio/impl/read_until.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // impl/read_until.hpp
 // ~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/impl/serial_port_base.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/impl/serial_port_base.hpp (original)
+++ branches/quickbook-dev/boost/asio/impl/serial_port_base.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // impl/serial_port_base.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 // Copyright (c) 2008 Rep Invariant Systems, Inc. (info_at_[hidden])
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying

Modified: branches/quickbook-dev/boost/asio/impl/serial_port_base.ipp
==============================================================================
--- branches/quickbook-dev/boost/asio/impl/serial_port_base.ipp (original)
+++ branches/quickbook-dev/boost/asio/impl/serial_port_base.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // impl/serial_port_base.ipp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 // Copyright (c) 2008 Rep Invariant Systems, Inc. (info_at_[hidden])
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying

Modified: branches/quickbook-dev/boost/asio/impl/src.cpp
==============================================================================
--- branches/quickbook-dev/boost/asio/impl/src.cpp (original)
+++ branches/quickbook-dev/boost/asio/impl/src.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // impl/src.cpp
 // ~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/impl/src.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/impl/src.hpp (original)
+++ branches/quickbook-dev/boost/asio/impl/src.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // impl/src.hpp
 // ~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -45,7 +45,7 @@
 #include <boost/asio/detail/impl/strand_service.ipp>
 #include <boost/asio/detail/impl/task_io_service.ipp>
 #include <boost/asio/detail/impl/throw_error.ipp>
-#include <boost/asio/detail/impl/timer_queue.ipp>
+#include <boost/asio/detail/impl/timer_queue_ptime.ipp>
 #include <boost/asio/detail/impl/timer_queue_set.ipp>
 #include <boost/asio/detail/impl/win_iocp_handle_service.ipp>
 #include <boost/asio/detail/impl/win_iocp_io_service.ipp>
@@ -53,6 +53,7 @@
 #include <boost/asio/detail/impl/win_iocp_socket_service_base.ipp>
 #include <boost/asio/detail/impl/win_event.ipp>
 #include <boost/asio/detail/impl/win_mutex.ipp>
+#include <boost/asio/detail/impl/win_object_handle_service.ipp>
 #include <boost/asio/detail/impl/win_static_mutex.ipp>
 #include <boost/asio/detail/impl/win_thread.ipp>
 #include <boost/asio/detail/impl/win_tss_ptr.ipp>

Modified: branches/quickbook-dev/boost/asio/impl/write.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/impl/write.hpp (original)
+++ branches/quickbook-dev/boost/asio/impl/write.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // impl/write.hpp
 // ~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/impl/write_at.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/impl/write_at.hpp (original)
+++ branches/quickbook-dev/boost/asio/impl/write_at.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // impl/write_at.hpp
 // ~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/io_service.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/io_service.hpp (original)
+++ branches/quickbook-dev/boost/asio/io_service.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // io_service.hpp
 // ~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/ip/address.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/ip/address.hpp (original)
+++ branches/quickbook-dev/boost/asio/ip/address.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // ip/address.hpp
 // ~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/ip/address_v4.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/ip/address_v4.hpp (original)
+++ branches/quickbook-dev/boost/asio/ip/address_v4.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // ip/address_v4.hpp
 // ~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/ip/address_v6.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/ip/address_v6.hpp (original)
+++ branches/quickbook-dev/boost/asio/ip/address_v6.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // ip/address_v6.hpp
 // ~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/ip/basic_endpoint.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/ip/basic_endpoint.hpp (original)
+++ branches/quickbook-dev/boost/asio/ip/basic_endpoint.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // ip/basic_endpoint.hpp
 // ~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/ip/basic_resolver.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/ip/basic_resolver.hpp (original)
+++ branches/quickbook-dev/boost/asio/ip/basic_resolver.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // ip/basic_resolver.hpp
 // ~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/ip/basic_resolver_entry.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/ip/basic_resolver_entry.hpp (original)
+++ branches/quickbook-dev/boost/asio/ip/basic_resolver_entry.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // ip/basic_resolver_entry.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/ip/basic_resolver_iterator.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/ip/basic_resolver_iterator.hpp (original)
+++ branches/quickbook-dev/boost/asio/ip/basic_resolver_iterator.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // ip/basic_resolver_iterator.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/ip/basic_resolver_query.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/ip/basic_resolver_query.hpp (original)
+++ branches/quickbook-dev/boost/asio/ip/basic_resolver_query.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // ip/basic_resolver_query.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/ip/detail/endpoint.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/ip/detail/endpoint.hpp (original)
+++ branches/quickbook-dev/boost/asio/ip/detail/endpoint.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // ip/detail/endpoint.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/ip/detail/impl/endpoint.ipp
==============================================================================
--- branches/quickbook-dev/boost/asio/ip/detail/impl/endpoint.ipp (original)
+++ branches/quickbook-dev/boost/asio/ip/detail/impl/endpoint.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // ip/detail/impl/endpoint.ipp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/ip/detail/socket_option.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/ip/detail/socket_option.hpp (original)
+++ branches/quickbook-dev/boost/asio/ip/detail/socket_option.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // detail/socket_option.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/ip/host_name.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/ip/host_name.hpp (original)
+++ branches/quickbook-dev/boost/asio/ip/host_name.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // ip/host_name.hpp
 // ~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/ip/icmp.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/ip/icmp.hpp (original)
+++ branches/quickbook-dev/boost/asio/ip/icmp.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // ip/icmp.hpp
 // ~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/ip/impl/address.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/ip/impl/address.hpp (original)
+++ branches/quickbook-dev/boost/asio/ip/impl/address.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // ip/impl/address.hpp
 // ~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/ip/impl/address.ipp
==============================================================================
--- branches/quickbook-dev/boost/asio/ip/impl/address.ipp (original)
+++ branches/quickbook-dev/boost/asio/ip/impl/address.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // ip/impl/address.ipp
 // ~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/ip/impl/address_v4.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/ip/impl/address_v4.hpp (original)
+++ branches/quickbook-dev/boost/asio/ip/impl/address_v4.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // ip/impl/address_v4.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/ip/impl/address_v4.ipp
==============================================================================
--- branches/quickbook-dev/boost/asio/ip/impl/address_v4.ipp (original)
+++ branches/quickbook-dev/boost/asio/ip/impl/address_v4.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // ip/impl/address_v4.ipp
 // ~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/ip/impl/address_v6.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/ip/impl/address_v6.hpp (original)
+++ branches/quickbook-dev/boost/asio/ip/impl/address_v6.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // ip/impl/address_v6.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/ip/impl/address_v6.ipp
==============================================================================
--- branches/quickbook-dev/boost/asio/ip/impl/address_v6.ipp (original)
+++ branches/quickbook-dev/boost/asio/ip/impl/address_v6.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // ip/impl/address_v6.ipp
 // ~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/ip/impl/basic_endpoint.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/ip/impl/basic_endpoint.hpp (original)
+++ branches/quickbook-dev/boost/asio/ip/impl/basic_endpoint.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // ip/impl/basic_endpoint.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/ip/impl/host_name.ipp
==============================================================================
--- branches/quickbook-dev/boost/asio/ip/impl/host_name.ipp (original)
+++ branches/quickbook-dev/boost/asio/ip/impl/host_name.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // ip/impl/host_name.ipp
 // ~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/ip/multicast.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/ip/multicast.hpp (original)
+++ branches/quickbook-dev/boost/asio/ip/multicast.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // ip/multicast.hpp
 // ~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/ip/resolver_query_base.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/ip/resolver_query_base.hpp (original)
+++ branches/quickbook-dev/boost/asio/ip/resolver_query_base.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // ip/resolver_query_base.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/ip/resolver_service.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/ip/resolver_service.hpp (original)
+++ branches/quickbook-dev/boost/asio/ip/resolver_service.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // ip/resolver_service.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/ip/tcp.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/ip/tcp.hpp (original)
+++ branches/quickbook-dev/boost/asio/ip/tcp.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // ip/tcp.hpp
 // ~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/ip/udp.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/ip/udp.hpp (original)
+++ branches/quickbook-dev/boost/asio/ip/udp.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // ip/udp.hpp
 // ~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/ip/unicast.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/ip/unicast.hpp (original)
+++ branches/quickbook-dev/boost/asio/ip/unicast.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // ip/unicast.hpp
 // ~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/ip/v6_only.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/ip/v6_only.hpp (original)
+++ branches/quickbook-dev/boost/asio/ip/v6_only.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // ip/v6_only.hpp
 // ~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/is_read_buffered.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/is_read_buffered.hpp (original)
+++ branches/quickbook-dev/boost/asio/is_read_buffered.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // is_read_buffered.hpp
 // ~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/is_write_buffered.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/is_write_buffered.hpp (original)
+++ branches/quickbook-dev/boost/asio/is_write_buffered.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // is_write_buffered.hpp
 // ~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/local/basic_endpoint.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/local/basic_endpoint.hpp (original)
+++ branches/quickbook-dev/boost/asio/local/basic_endpoint.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // local/basic_endpoint.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 // Derived from a public domain implementation written by Daniel Casimiro.
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying

Modified: branches/quickbook-dev/boost/asio/local/connect_pair.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/local/connect_pair.hpp (original)
+++ branches/quickbook-dev/boost/asio/local/connect_pair.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // local/connect_pair.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/local/datagram_protocol.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/local/datagram_protocol.hpp (original)
+++ branches/quickbook-dev/boost/asio/local/datagram_protocol.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // local/datagram_protocol.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/local/detail/endpoint.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/local/detail/endpoint.hpp (original)
+++ branches/quickbook-dev/boost/asio/local/detail/endpoint.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // local/detail/endpoint.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 // Derived from a public domain implementation written by Daniel Casimiro.
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying

Modified: branches/quickbook-dev/boost/asio/local/detail/impl/endpoint.ipp
==============================================================================
--- branches/quickbook-dev/boost/asio/local/detail/impl/endpoint.ipp (original)
+++ branches/quickbook-dev/boost/asio/local/detail/impl/endpoint.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // local/detail/impl/endpoint.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 // Derived from a public domain implementation written by Daniel Casimiro.
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying

Modified: branches/quickbook-dev/boost/asio/local/stream_protocol.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/local/stream_protocol.hpp (original)
+++ branches/quickbook-dev/boost/asio/local/stream_protocol.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // local/stream_protocol.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/placeholders.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/placeholders.hpp (original)
+++ branches/quickbook-dev/boost/asio/placeholders.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // placeholders.hpp
 // ~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/posix/basic_descriptor.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/posix/basic_descriptor.hpp (original)
+++ branches/quickbook-dev/boost/asio/posix/basic_descriptor.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // posix/basic_descriptor.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/posix/basic_stream_descriptor.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/posix/basic_stream_descriptor.hpp (original)
+++ branches/quickbook-dev/boost/asio/posix/basic_stream_descriptor.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // posix/basic_stream_descriptor.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/posix/descriptor_base.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/posix/descriptor_base.hpp (original)
+++ branches/quickbook-dev/boost/asio/posix/descriptor_base.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // posix/descriptor_base.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/posix/stream_descriptor.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/posix/stream_descriptor.hpp (original)
+++ branches/quickbook-dev/boost/asio/posix/stream_descriptor.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // posix/stream_descriptor.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/posix/stream_descriptor_service.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/posix/stream_descriptor_service.hpp (original)
+++ branches/quickbook-dev/boost/asio/posix/stream_descriptor_service.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // posix/stream_descriptor_service.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/raw_socket_service.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/raw_socket_service.hpp (original)
+++ branches/quickbook-dev/boost/asio/raw_socket_service.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // raw_socket_service.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/read.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/read.hpp (original)
+++ branches/quickbook-dev/boost/asio/read.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // read.hpp
 // ~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/read_at.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/read_at.hpp (original)
+++ branches/quickbook-dev/boost/asio/read_at.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // read_at.hpp
 // ~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/read_until.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/read_until.hpp (original)
+++ branches/quickbook-dev/boost/asio/read_until.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // read_until.hpp
 // ~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/seq_packet_socket_service.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/seq_packet_socket_service.hpp (original)
+++ branches/quickbook-dev/boost/asio/seq_packet_socket_service.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // seq_packet_socket_service.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/serial_port.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/serial_port.hpp (original)
+++ branches/quickbook-dev/boost/asio/serial_port.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // serial_port.hpp
 // ~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 // Copyright (c) 2008 Rep Invariant Systems, Inc. (info_at_[hidden])
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying

Modified: branches/quickbook-dev/boost/asio/serial_port_base.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/serial_port_base.hpp (original)
+++ branches/quickbook-dev/boost/asio/serial_port_base.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // serial_port_base.hpp
 // ~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 // Copyright (c) 2008 Rep Invariant Systems, Inc. (info_at_[hidden])
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying

Modified: branches/quickbook-dev/boost/asio/serial_port_service.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/serial_port_service.hpp (original)
+++ branches/quickbook-dev/boost/asio/serial_port_service.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // serial_port_service.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/signal_set.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/signal_set.hpp (original)
+++ branches/quickbook-dev/boost/asio/signal_set.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // signal_set.hpp
 // ~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/signal_set_service.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/signal_set_service.hpp (original)
+++ branches/quickbook-dev/boost/asio/signal_set_service.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // signal_set_service.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/socket_acceptor_service.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/socket_acceptor_service.hpp (original)
+++ branches/quickbook-dev/boost/asio/socket_acceptor_service.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // socket_acceptor_service.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/socket_base.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/socket_base.hpp (original)
+++ branches/quickbook-dev/boost/asio/socket_base.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // socket_base.hpp
 // ~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/ssl.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/ssl.hpp (original)
+++ branches/quickbook-dev/boost/asio/ssl.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // ssl.hpp
 // ~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/ssl/basic_context.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/ssl/basic_context.hpp (original)
+++ branches/quickbook-dev/boost/asio/ssl/basic_context.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // ssl/basic_context.hpp
 // ~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/ssl/context.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/ssl/context.hpp (original)
+++ branches/quickbook-dev/boost/asio/ssl/context.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // ssl/context.hpp
 // ~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/ssl/context_base.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/ssl/context_base.hpp (original)
+++ branches/quickbook-dev/boost/asio/ssl/context_base.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // ssl/context_base.hpp
 // ~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/ssl/context_service.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/ssl/context_service.hpp (original)
+++ branches/quickbook-dev/boost/asio/ssl/context_service.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // ssl/context_service.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/ssl/detail/engine.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/ssl/detail/engine.hpp (original)
+++ branches/quickbook-dev/boost/asio/ssl/detail/engine.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // ssl/detail/engine.hpp
 // ~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/ssl/detail/handshake_op.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/ssl/detail/handshake_op.hpp (original)
+++ branches/quickbook-dev/boost/asio/ssl/detail/handshake_op.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // ssl/detail/handshake_op.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/ssl/detail/impl/engine.ipp
==============================================================================
--- branches/quickbook-dev/boost/asio/ssl/detail/impl/engine.ipp (original)
+++ branches/quickbook-dev/boost/asio/ssl/detail/impl/engine.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // ssl/detail/impl/engine.ipp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/ssl/detail/impl/openssl_init.ipp
==============================================================================
--- branches/quickbook-dev/boost/asio/ssl/detail/impl/openssl_init.ipp (original)
+++ branches/quickbook-dev/boost/asio/ssl/detail/impl/openssl_init.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
 // Copyright (c) 2005 Voipster / Indrek dot Juhani at voipster dot com
-// Copyright (c) 2005-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2005-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/ssl/detail/io.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/ssl/detail/io.hpp (original)
+++ branches/quickbook-dev/boost/asio/ssl/detail/io.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // ssl/detail/io.hpp
 // ~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/ssl/detail/openssl_init.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/ssl/detail/openssl_init.hpp (original)
+++ branches/quickbook-dev/boost/asio/ssl/detail/openssl_init.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // ssl/detail/openssl_init.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/ssl/detail/openssl_types.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/ssl/detail/openssl_types.hpp (original)
+++ branches/quickbook-dev/boost/asio/ssl/detail/openssl_types.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // ssl/detail/openssl_types.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/ssl/detail/password_callback.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/ssl/detail/password_callback.hpp (original)
+++ branches/quickbook-dev/boost/asio/ssl/detail/password_callback.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // ssl/detail/password_callback.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/ssl/detail/read_op.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/ssl/detail/read_op.hpp (original)
+++ branches/quickbook-dev/boost/asio/ssl/detail/read_op.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // ssl/detail/read_op.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/ssl/detail/shutdown_op.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/ssl/detail/shutdown_op.hpp (original)
+++ branches/quickbook-dev/boost/asio/ssl/detail/shutdown_op.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // ssl/detail/shutdown_op.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/ssl/detail/stream_core.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/ssl/detail/stream_core.hpp (original)
+++ branches/quickbook-dev/boost/asio/ssl/detail/stream_core.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // ssl/detail/stream_core.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/ssl/detail/verify_callback.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/ssl/detail/verify_callback.hpp (original)
+++ branches/quickbook-dev/boost/asio/ssl/detail/verify_callback.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // ssl/detail/verify_callback.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/ssl/detail/write_op.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/ssl/detail/write_op.hpp (original)
+++ branches/quickbook-dev/boost/asio/ssl/detail/write_op.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // ssl/detail/write_op.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/ssl/error.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/ssl/error.hpp (original)
+++ branches/quickbook-dev/boost/asio/ssl/error.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // ssl/error.hpp
 // ~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/ssl/impl/context.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/ssl/impl/context.hpp (original)
+++ branches/quickbook-dev/boost/asio/ssl/impl/context.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // ~~~~~~~~~~~~~~~~~~~~
 //
 // Copyright (c) 2005 Voipster / Indrek dot Juhani at voipster dot com
-// Copyright (c) 2005-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2005-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/ssl/impl/context.ipp
==============================================================================
--- branches/quickbook-dev/boost/asio/ssl/impl/context.ipp (original)
+++ branches/quickbook-dev/boost/asio/ssl/impl/context.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // ~~~~~~~~~~~~~~~~~~~~
 //
 // Copyright (c) 2005 Voipster / Indrek dot Juhani at voipster dot com
-// Copyright (c) 2005-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2005-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/ssl/impl/error.ipp
==============================================================================
--- branches/quickbook-dev/boost/asio/ssl/impl/error.ipp (original)
+++ branches/quickbook-dev/boost/asio/ssl/impl/error.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // ssl/impl/error.ipp
 // ~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/ssl/impl/rfc2818_verification.ipp
==============================================================================
--- branches/quickbook-dev/boost/asio/ssl/impl/rfc2818_verification.ipp (original)
+++ branches/quickbook-dev/boost/asio/ssl/impl/rfc2818_verification.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // ssl/impl/rfc2818_verification.ipp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/ssl/impl/src.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/ssl/impl/src.hpp (original)
+++ branches/quickbook-dev/boost/asio/ssl/impl/src.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // impl/ssl/src.hpp
 // ~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/ssl/old/basic_context.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/ssl/old/basic_context.hpp (original)
+++ branches/quickbook-dev/boost/asio/ssl/old/basic_context.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // ~~~~~~~~~~~~~~~~~~~~~~~~~
 //
 // Copyright (c) 2005 Voipster / Indrek dot Juhani at voipster dot com
-// Copyright (c) 2005-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2005-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/ssl/old/context_service.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/ssl/old/context_service.hpp (original)
+++ branches/quickbook-dev/boost/asio/ssl/old/context_service.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
 // Copyright (c) 2005 Voipster / Indrek dot Juhani at voipster dot com
-// Copyright (c) 2005-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2005-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/ssl/old/detail/openssl_context_service.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/ssl/old/detail/openssl_context_service.hpp (original)
+++ branches/quickbook-dev/boost/asio/ssl/old/detail/openssl_context_service.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
 // Copyright (c) 2005 Voipster / Indrek dot Juhani at voipster dot com
-// Copyright (c) 2005-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2005-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/ssl/old/detail/openssl_stream_service.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/ssl/old/detail/openssl_stream_service.hpp (original)
+++ branches/quickbook-dev/boost/asio/ssl/old/detail/openssl_stream_service.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
 // Copyright (c) 2005 Voipster / Indrek dot Juhani at voipster dot com
-// Copyright (c) 2005-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2005-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/ssl/old/stream.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/ssl/old/stream.hpp (original)
+++ branches/quickbook-dev/boost/asio/ssl/old/stream.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // ~~~~~~~~~~~~~~~~~~
 //
 // Copyright (c) 2005 Voipster / Indrek dot Juhani at voipster dot com
-// Copyright (c) 2005-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2005-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/ssl/old/stream_service.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/ssl/old/stream_service.hpp (original)
+++ branches/quickbook-dev/boost/asio/ssl/old/stream_service.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
 // Copyright (c) 2005 Voipster / Indrek dot Juhani at voipster dot com
-// Copyright (c) 2005-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2005-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/ssl/rfc2818_verification.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/ssl/rfc2818_verification.hpp (original)
+++ branches/quickbook-dev/boost/asio/ssl/rfc2818_verification.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // ssl/rfc2818_verification.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/ssl/stream.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/ssl/stream.hpp (original)
+++ branches/quickbook-dev/boost/asio/ssl/stream.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // ssl/stream.hpp
 // ~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/ssl/stream_base.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/ssl/stream_base.hpp (original)
+++ branches/quickbook-dev/boost/asio/ssl/stream_base.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // ssl/stream_base.hpp
 // ~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/ssl/stream_service.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/ssl/stream_service.hpp (original)
+++ branches/quickbook-dev/boost/asio/ssl/stream_service.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // ssl/stream_service.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/ssl/verify_context.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/ssl/verify_context.hpp (original)
+++ branches/quickbook-dev/boost/asio/ssl/verify_context.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // ssl/verify_context.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/ssl/verify_mode.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/ssl/verify_mode.hpp (original)
+++ branches/quickbook-dev/boost/asio/ssl/verify_mode.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // ssl/verify_mode.hpp
 // ~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/strand.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/strand.hpp (original)
+++ branches/quickbook-dev/boost/asio/strand.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // strand.hpp
 // ~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/stream_socket_service.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/stream_socket_service.hpp (original)
+++ branches/quickbook-dev/boost/asio/stream_socket_service.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // stream_socket_service.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/streambuf.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/streambuf.hpp (original)
+++ branches/quickbook-dev/boost/asio/streambuf.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // streambuf.hpp
 // ~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/time_traits.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/time_traits.hpp (original)
+++ branches/quickbook-dev/boost/asio/time_traits.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // time_traits.hpp
 // ~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/version.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/version.hpp (original)
+++ branches/quickbook-dev/boost/asio/version.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // version.hpp
 // ~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/windows/basic_handle.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/windows/basic_handle.hpp (original)
+++ branches/quickbook-dev/boost/asio/windows/basic_handle.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // windows/basic_handle.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -19,6 +19,7 @@
 
 #if defined(BOOST_ASIO_HAS_WINDOWS_RANDOM_ACCESS_HANDLE) \
   || defined(BOOST_ASIO_HAS_WINDOWS_STREAM_HANDLE) \
+ || defined(BOOST_ASIO_HAS_WINDOWS_OBJECT_HANDLE) \
   || defined(GENERATING_DOCUMENTATION)
 
 #include <boost/asio/basic_io_object.hpp>
@@ -276,6 +277,7 @@
 
 #endif // defined(BOOST_ASIO_HAS_WINDOWS_RANDOM_ACCESS_HANDLE)
        // || defined(BOOST_ASIO_HAS_WINDOWS_STREAM_HANDLE)
+ // || defined(BOOST_ASIO_HAS_WINDOWS_OBJECT_HANDLE)
        // || defined(GENERATING_DOCUMENTATION)
 
 #endif // BOOST_ASIO_WINDOWS_BASIC_HANDLE_HPP

Modified: branches/quickbook-dev/boost/asio/windows/basic_random_access_handle.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/windows/basic_random_access_handle.hpp (original)
+++ branches/quickbook-dev/boost/asio/windows/basic_random_access_handle.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // windows/basic_random_access_handle.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/windows/basic_stream_handle.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/windows/basic_stream_handle.hpp (original)
+++ branches/quickbook-dev/boost/asio/windows/basic_stream_handle.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // windows/basic_stream_handle.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/windows/overlapped_ptr.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/windows/overlapped_ptr.hpp (original)
+++ branches/quickbook-dev/boost/asio/windows/overlapped_ptr.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // windows/overlapped_ptr.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/windows/random_access_handle.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/windows/random_access_handle.hpp (original)
+++ branches/quickbook-dev/boost/asio/windows/random_access_handle.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // windows/random_access_handle.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/windows/random_access_handle_service.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/windows/random_access_handle_service.hpp (original)
+++ branches/quickbook-dev/boost/asio/windows/random_access_handle_service.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // windows/random_access_handle_service.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/windows/stream_handle.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/windows/stream_handle.hpp (original)
+++ branches/quickbook-dev/boost/asio/windows/stream_handle.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // windows/stream_handle.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/windows/stream_handle_service.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/windows/stream_handle_service.hpp (original)
+++ branches/quickbook-dev/boost/asio/windows/stream_handle_service.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // windows/stream_handle_service.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/write.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/write.hpp (original)
+++ branches/quickbook-dev/boost/asio/write.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // write.hpp
 // ~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/asio/write_at.hpp
==============================================================================
--- branches/quickbook-dev/boost/asio/write_at.hpp (original)
+++ branches/quickbook-dev/boost/asio/write_at.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // write_at.hpp
 // ~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/boost/config/compiler/intel.hpp
==============================================================================
--- branches/quickbook-dev/boost/config/compiler/intel.hpp (original)
+++ branches/quickbook-dev/boost/config/compiler/intel.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -236,6 +236,17 @@
 //# undef BOOST_NO_SCOPED_ENUMS
 #endif
 
+#if defined(_MSC_VER) && (_MSC_VER <= 1700)
+//
+// Although the Intel compiler is capable of supporting these, it appears not to in MSVC compatibility mode:
+//
+# define BOOST_NO_INITIALIZER_LISTS
+# define BOOST_NO_VARIADIC_TEMPLATES
+# define BOOST_NO_DELETED_FUNCTIONS
+# define BOOST_NO_DEFAULTED_FUNCTIONS
+# define BOOST_NO_TEMPLATE_ALIASES
+#endif
+
 #if (BOOST_INTEL_CXX_VERSION < 1200)
 //
 // fenv.h appears not to work with Intel prior to 12.0:

Modified: branches/quickbook-dev/boost/config/compiler/pgi.hpp
==============================================================================
--- branches/quickbook-dev/boost/config/compiler/pgi.hpp (original)
+++ branches/quickbook-dev/boost/config/compiler/pgi.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -8,7 +8,7 @@
 // PGI C++ compiler setup:
 
 #define BOOST_COMPILER_VERSION __PGIC__##__PGIC_MINOR__
-#define BOOST_COMPILER "PGI compiler version " BOOST_STRINGIZE(_COMPILER_VERSION)
+#define BOOST_COMPILER "PGI compiler version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION)
 
 //
 // Threading support:
@@ -16,13 +16,29 @@
 // if no threading API is detected.
 //
 
-// PGI 10.x doesn't seem to define __PGIC__
-
-// versions earlier than 10.x do define __PGIC__
-#if __PGIC__ >= 10
+#if __PGIC__ >= 11
 
 // options requested by configure --enable-test
 #define BOOST_HAS_PTHREADS
+#undef BOOST_HAS_PTHREAD_YIELD
+#define BOOST_HAS_NRVO
+#define BOOST_HAS_LONG_LONG
+
+// options --enable-test wants undefined
+#undef BOOST_NO_STDC_NAMESPACE
+#undef BOOST_NO_EXCEPTION_STD_NAMESPACE
+#undef BOOST_DEDUCED_TYPENAME
+
+#define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
+#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
+#define BOOST_NO_AUTO_MULTIDECLARATIONS
+#define BOOST_NO_AUTO_DECLARATIONS
+#define BOOST_NO_STD_UNORDERED
+
+#elif __PGIC__ >= 10
+
+// options requested by configure --enable-test
+#define BOOST_HAS_THREADS
 #define BOOST_HAS_NRVO
 #define BOOST_HAS_LONG_LONG
 
@@ -63,17 +79,38 @@
 #define BOOST_NO_LAMBDAS
 #define BOOST_NO_NOEXCEPT
 #define BOOST_NO_NULLPTR
+#define BOOST_NO_NUMERIC_LIMITS_LOWEST
 #define BOOST_NO_RAW_LITERALS
 #define BOOST_NO_RVALUE_REFERENCES
 #define BOOST_NO_SCOPED_ENUMS
 #define BOOST_NO_SFINAE_EXPR
 #define BOOST_NO_STATIC_ASSERT
+#define BOOST_NO_SWPRINTF
 #define BOOST_NO_TEMPLATE_ALIASES
 #define BOOST_NO_UNICODE_LITERALS
 #define BOOST_NO_VARIADIC_TEMPLATES
 #define BOOST_NO_VARIADIC_MACROS
 #define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
 
+#define BOOST_NO_0X_HDR_UNORDERED_SET
+#define BOOST_NO_0X_HDR_UNORDERED_MAP
+#define BOOST_NO_0X_HDR_TYPEINDEX
+#define BOOST_NO_0X_HDR_TYPE_TRAITS
+#define BOOST_NO_0X_HDR_TUPLE
+#define BOOST_NO_0X_HDR_THREAD
+#define BOOST_NO_0X_HDR_SYSTEM_ERROR
+#define BOOST_NO_0X_HDR_REGEX
+#define BOOST_NO_0X_HDR_RATIO
+#define BOOST_NO_0X_HDR_RANDOM
+#define BOOST_NO_0X_HDR_MUTEX
+#define BOOST_NO_0X_HDR_INITIALIZER_LIST
+#define BOOST_NO_0X_HDR_FUTURE
+#define BOOST_NO_0X_HDR_FORWARD_LIST
+#define BOOST_NO_0X_HDR_CONDITION_VARIABLE
+#define BOOST_NO_0X_HDR_CODECVT
+#define BOOST_NO_0X_HDR_CHRONO
+#define BOOST_NO_0X_HDR_ARRAY
+
 //
 // version check:
 // probably nothing to do here?

Modified: branches/quickbook-dev/boost/config/compiler/visualc.hpp
==============================================================================
--- branches/quickbook-dev/boost/config/compiler/visualc.hpp (original)
+++ branches/quickbook-dev/boost/config/compiler/visualc.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -9,38 +9,54 @@
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
 // See http://www.boost.org for most recent version.
-
+//
 // Microsoft Visual C++ compiler setup:
+//
+// We need to be careful with the checks in this file, as contrary
+// to popular belief there are versions with _MSC_VER with the final
+// digit non-zero (mainly the MIPS cross compiler).
+//
+// So we either test _MSC_VER >= XXXX or else _MSC_VER < XXXX.
+// No other comparisons (==, >, or <=) are safe.
+//
 
 #define BOOST_MSVC _MSC_VER
 
+//
+// Helper macro BOOST_MSVC_FULL_VER for use in Boost code:
+//
 #if _MSC_FULL_VER > 100000000
 # define BOOST_MSVC_FULL_VER _MSC_FULL_VER
 #else
 # define BOOST_MSVC_FULL_VER (_MSC_FULL_VER * 10)
 #endif
 
-// turn off the warnings before we #include anything
+// Attempt to suppress VC6 warnings about the length of decorated names (obsolete):
 #pragma warning( disable : 4503 ) // warning: decorated name length exceeded
 
+//
+// versions check:
+// we don't support Visual C++ prior to version 6:
+#if _MSC_VER < 1200
+# error "Compiler not supported or configured - please reconfigure"
+#endif
+
 #if _MSC_VER < 1300 // 1200 == VC++ 6.0, 1200-1202 == eVC++4
 # pragma warning( disable : 4786 ) // ident trunc to '255' chars in debug info
 # define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
 # define BOOST_NO_VOID_RETURNS
 # define BOOST_NO_EXCEPTION_STD_NAMESPACE
 
-# if BOOST_MSVC == 1202
+# if _MSC_VER == 1202
 # define BOOST_NO_STD_TYPEINFO
 # endif
 
- // disable min/max macro defines on vc6:
- //
 #endif
 
 /// Visual Studio has no fenv.h
 #define BOOST_NO_FENV_H
 
-#if (_MSC_VER <= 1300) // 1300 == VC++ 7.0
+#if (_MSC_VER < 1310) // 130X == VC++ 7.0
 
 # if !defined(_MSC_EXTENSIONS) && !defined(BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS) // VC7 bug with /Za
 # define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
@@ -72,7 +88,7 @@
 # define BOOST_NO_IS_ABSTRACT
 # define BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS
 // TODO: what version is meant here? Have there really been any fixes in cl 12.01 (as e.g. shipped with eVC4)?
-# if (_MSC_VER > 1200)
+# if (_MSC_VER >= 1300)
 # define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
 # endif
 
@@ -93,17 +109,17 @@
 # define BOOST_NO_SWPRINTF
 #endif
 
-#if _MSC_VER <= 1400 // 1400 == VC++ 8.0
+#if _MSC_VER < 1500 // 140X == VC++ 8.0
 # define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
 #endif
 
-#if _MSC_VER == 1500 // 1500 == VC++ 9.0
+#if _MSC_VER < 1600 // 150X == VC++ 9.0
    // A bug in VC9:
 # define BOOST_NO_ADL_BARRIER
 #endif
 
 
-#if (_MSC_VER <= 1600)
+#if (_MSC_VER < 1700)
 // MSVC (including the latest checked version) has not yet completely
 // implemented value-initialization, as is reported:
 // "VC++ does not value-initialize members of derived classes without
@@ -117,10 +133,10 @@
 // https://connect.microsoft.com/VisualStudio/feedback/details/100744
 // See also: http://www.boost.org/libs/utility/value_init.htm#compiler_issues
 // (Niels Dekker, LKEB, May 2010)
-#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
+# define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
 #endif
 
-#if _MSC_VER <= 1500 || !defined(BOOST_STRICT_CONFIG) // 1500 == VC++ 9.0
+#if _MSC_VER < 1600 || !defined(BOOST_STRICT_CONFIG) // 150X == VC++ 9.0
 # define BOOST_NO_INITIALIZER_LISTS
 #endif
 
@@ -177,17 +193,17 @@
 // C++ features supported by VC++ 10 (aka 2010)
 //
 #if _MSC_VER < 1600
-#define BOOST_NO_AUTO_DECLARATIONS
-#define BOOST_NO_AUTO_MULTIDECLARATIONS
-#define BOOST_NO_LAMBDAS
-#define BOOST_NO_RVALUE_REFERENCES
-#define BOOST_NO_STATIC_ASSERT
-#define BOOST_NO_NULLPTR
-#define BOOST_NO_DECLTYPE
+# define BOOST_NO_AUTO_DECLARATIONS
+# define BOOST_NO_AUTO_MULTIDECLARATIONS
+# define BOOST_NO_LAMBDAS
+# define BOOST_NO_RVALUE_REFERENCES
+# define BOOST_NO_STATIC_ASSERT
+# define BOOST_NO_NULLPTR
+# define BOOST_NO_DECLTYPE
 #endif // _MSC_VER < 1600
 
 #if _MSC_VER >= 1600
-#define BOOST_HAS_STDINT_H
+# define BOOST_HAS_STDINT_H
 #endif
 
 // C++0x features not supported by any versions
@@ -271,12 +287,6 @@
 #define BOOST_COMPILER "Microsoft Visual C++ version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION)
 
 //
-// versions check:
-// we don't support Visual C++ prior to version 6:
-#if _MSC_VER < 1200
-#error "Compiler not supported or configured - please reconfigure"
-#endif
-//
 // last known and checked version is 1700 (VC11, aka 2011):
 #if (_MSC_VER > 1700)
 # if defined(BOOST_ASSERT_CONFIG)

Modified: branches/quickbook-dev/boost/config/stdlib/libstdcpp3.hpp
==============================================================================
--- branches/quickbook-dev/boost/config/stdlib/libstdcpp3.hpp (original)
+++ branches/quickbook-dev/boost/config/stdlib/libstdcpp3.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -34,7 +34,8 @@
 #ifdef __GLIBCXX__ // gcc 3.4 and greater:
 # if defined(_GLIBCXX_HAVE_GTHR_DEFAULT) \
         || defined(_GLIBCXX__PTHREADS) \
- || defined(_GLIBCXX_HAS_GTHREADS)
+ || defined(_GLIBCXX_HAS_GTHREADS) \
+ || defined(_WIN32)
       //
       // If the std lib has thread support turned on, then turn it on in Boost
       // as well. We do this because some gcc-3.4 std lib headers define _REENTANT

Modified: branches/quickbook-dev/boost/container/allocator/memory_util.hpp
==============================================================================
--- branches/quickbook-dev/boost/container/allocator/memory_util.hpp (original)
+++ branches/quickbook-dev/boost/container/allocator/memory_util.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -56,17 +56,17 @@
 namespace container_detail {
 
 
-BOOST_INTRUSIVE_INSTANTIATE_DEFAULT_TYPE_TMPLT(pointer);
-BOOST_INTRUSIVE_INSTANTIATE_DEFAULT_TYPE_TMPLT(const_pointer);
-BOOST_INTRUSIVE_INSTANTIATE_DEFAULT_TYPE_TMPLT(reference);
-BOOST_INTRUSIVE_INSTANTIATE_DEFAULT_TYPE_TMPLT(const_reference);
-BOOST_INTRUSIVE_INSTANTIATE_DEFAULT_TYPE_TMPLT(void_pointer);
-BOOST_INTRUSIVE_INSTANTIATE_DEFAULT_TYPE_TMPLT(const_void_pointer);
-BOOST_INTRUSIVE_INSTANTIATE_DEFAULT_TYPE_TMPLT(size_type);
-BOOST_INTRUSIVE_INSTANTIATE_DEFAULT_TYPE_TMPLT(propagate_on_container_copy_assignment);
-BOOST_INTRUSIVE_INSTANTIATE_DEFAULT_TYPE_TMPLT(propagate_on_container_move_assignment);
-BOOST_INTRUSIVE_INSTANTIATE_DEFAULT_TYPE_TMPLT(propagate_on_container_swap);
-BOOST_INTRUSIVE_INSTANTIATE_DEFAULT_TYPE_TMPLT(difference_type);
+BOOST_INTRUSIVE_INSTANTIATE_DEFAULT_TYPE_TMPLT(pointer)
+BOOST_INTRUSIVE_INSTANTIATE_DEFAULT_TYPE_TMPLT(const_pointer)
+BOOST_INTRUSIVE_INSTANTIATE_DEFAULT_TYPE_TMPLT(reference)
+BOOST_INTRUSIVE_INSTANTIATE_DEFAULT_TYPE_TMPLT(const_reference)
+BOOST_INTRUSIVE_INSTANTIATE_DEFAULT_TYPE_TMPLT(void_pointer)
+BOOST_INTRUSIVE_INSTANTIATE_DEFAULT_TYPE_TMPLT(const_void_pointer)
+BOOST_INTRUSIVE_INSTANTIATE_DEFAULT_TYPE_TMPLT(size_type)
+BOOST_INTRUSIVE_INSTANTIATE_DEFAULT_TYPE_TMPLT(propagate_on_container_copy_assignment)
+BOOST_INTRUSIVE_INSTANTIATE_DEFAULT_TYPE_TMPLT(propagate_on_container_move_assignment)
+BOOST_INTRUSIVE_INSTANTIATE_DEFAULT_TYPE_TMPLT(propagate_on_container_swap)
+BOOST_INTRUSIVE_INSTANTIATE_DEFAULT_TYPE_TMPLT(difference_type)
 
 } //namespace container_detail {
 } //namespace container {

Modified: branches/quickbook-dev/boost/container/deque.hpp
==============================================================================
--- branches/quickbook-dev/boost/container/deque.hpp (original)
+++ branches/quickbook-dev/boost/container/deque.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1069,7 +1069,10 @@
    {
       if (this->members_.m_finish.m_cur != this->members_.m_finish.m_first) {
          --this->members_.m_finish.m_cur;
- container_detail::to_raw_pointer(this->members_.m_finish.m_cur)->~value_type();
+ allocator_traits_type::destroy
+ ( this->alloc()
+ , container_detail::to_raw_pointer(this->members_.m_finish.m_cur)
+ );
       }
       else
          this->priv_pop_back_aux();
@@ -1083,7 +1086,10 @@
    void pop_front() BOOST_CONTAINER_NOEXCEPT
    {
       if (this->members_.m_start.m_cur != this->members_.m_start.m_last - 1) {
- container_detail::to_raw_pointer(this->members_.m_start.m_cur)->~value_type();
+ allocator_traits_type::destroy
+ ( this->alloc()
+ , container_detail::to_raw_pointer(this->members_.m_start.m_cur)
+ );
          ++this->members_.m_start.m_cur;
       }
       else
@@ -1598,14 +1604,22 @@
 
    void priv_destroy_range(iterator p, iterator p2)
    {
- for(;p != p2; ++p)
- container_detail::to_raw_pointer(&*p)->~value_type();
+ for(;p != p2; ++p){
+ allocator_traits_type::destroy
+ ( this->alloc()
+ , container_detail::to_raw_pointer(&*p)
+ );
+ }
    }
 
    void priv_destroy_range(pointer p, pointer p2)
    {
- for(;p != p2; ++p)
- container_detail::to_raw_pointer(&*p)->~value_type();
+ for(;p != p2; ++p){
+ allocator_traits_type::destroy
+ ( this->alloc()
+ , container_detail::to_raw_pointer(&*p)
+ );
+ }
    }
 
    template <class Integer>
@@ -1827,7 +1841,10 @@
       this->priv_deallocate_node(this->members_.m_finish.m_first);
       this->members_.m_finish.priv_set_node(this->members_.m_finish.m_node - 1);
       this->members_.m_finish.m_cur = this->members_.m_finish.m_last - 1;
- container_detail::to_raw_pointer(this->members_.m_finish.m_cur)->~value_type();
+ allocator_traits_type::destroy
+ ( this->alloc()
+ , container_detail::to_raw_pointer(this->members_.m_finish.m_cur)
+ );
    }
 
    // Called only if this->members_.m_start.m_cur == this->members_.m_start.m_last - 1. Note that
@@ -1836,7 +1853,10 @@
    // must have at least two nodes.
    void priv_pop_front_aux()
    {
- container_detail::to_raw_pointer(this->members_.m_start.m_cur)->~value_type();
+ allocator_traits_type::destroy
+ ( this->alloc()
+ , container_detail::to_raw_pointer(this->members_.m_start.m_cur)
+ );
       this->priv_deallocate_node(this->members_.m_start.m_first);
       this->members_.m_start.priv_set_node(this->members_.m_start.m_node + 1);
       this->members_.m_start.m_cur = this->members_.m_start.m_first;

Modified: branches/quickbook-dev/boost/container/detail/algorithms.hpp
==============================================================================
--- branches/quickbook-dev/boost/container/detail/algorithms.hpp (original)
+++ branches/quickbook-dev/boost/container/detail/algorithms.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -50,130 +50,7 @@
 {
    ei.construct_in_place(a, dest);
 }
-/*
-template<class InIt, class OutIt>
-struct optimize_assign
-{
- static const bool value = false;
-};
-
-template<class T>
-struct optimize_assign<const T*, T*>
-{
- static const bool value = boost::has_trivial_assign<T>::value;
-};
-
-template<class T>
-struct optimize_assign<T*, T*>
- : public optimize_assign<const T*, T*>
-{};
-
-template<class InIt, class OutIt>
-struct optimize_copy
-{
- static const bool value = false;
-};
-
-template<class T>
-struct optimize_copy<const T*, T*>
-{
- static const bool value = boost::has_trivial_copy<T>::value;
-};
-
-template<class T>
-struct optimize_copy<T*, T*>
- : public optimize_copy<const T*, T*>
-{};
-
-template<class InIt, class OutIt> inline
-OutIt copy_n_dispatch(InIt first, typename std::iterator_traits<InIt>::difference_type length, OutIt dest, container_detail::bool_<false>)
-{
- for (; length--; ++dest, ++first)
- *dest = *first;
- return dest;
-}
-
-template<class T> inline
-T *copy_n_dispatch(const T *first, typename std::iterator_traits<const T*>::difference_type length, T *dest, container_detail::bool_<true>)
-{
- std::size_t size = length*sizeof(T);
- return (static_cast<T*>(std::memmove(dest, first, size))) + size;
-}
 
-template<class InIt, class OutIt> inline
-OutIt copy_n(InIt first, typename std::iterator_traits<InIt>::difference_type length, OutIt dest)
-{
- const bool do_optimized_assign = optimize_assign<InIt, OutIt>::value;
- return copy_n_dispatch(first, length, dest, container_detail::bool_<do_optimized_assign>());
-}
-
-template<class InIt, class FwdIt> inline
-FwdIt uninitialized_copy_n_dispatch
- (InIt first,
- typename std::iterator_traits<InIt>::difference_type count,
- FwdIt dest, container_detail::bool_<false>)
-{
- typedef typename std::iterator_traits<FwdIt>::value_type value_type;
- //Save initial destination position
- FwdIt dest_init = dest;
- typename std::iterator_traits<InIt>::difference_type new_count = count+1;
-
- BOOST_TRY{
- //Try to build objects
- for (; --new_count; ++dest, ++first){
- construct_in_place(container_detail::to_raw_pointer(&*dest), first);
- }
- }
- BOOST_CATCH(...){
- //Call destructors
- new_count = count - new_count;
- for (; new_count--; ++dest_init){
- container_detail::to_raw_pointer(&*dest_init)->~value_type();
- }
- BOOST_RETHROW
- }
- BOOST_CATCH_END
- return dest;
-}
-template<class T> inline
-T *uninitialized_copy_n_dispatch(const T *first, typename std::iterator_traits<const T*>::difference_type length, T *dest, container_detail::bool_<true>)
-{
- std::size_t size = length*sizeof(T);
- return (static_cast<T*>(std::memmove(dest, first, size))) + size;
-}
-
-template<class InIt, class FwdIt> inline
-FwdIt uninitialized_copy_n
- (InIt first,
- typename std::iterator_traits<InIt>::difference_type count,
- FwdIt dest)
-{
- const bool do_optimized_copy = optimize_copy<InIt, FwdIt>::value;
- return uninitialized_copy_n_dispatch(first, count, dest, container_detail::bool_<do_optimized_copy>());
-}
-
-// uninitialized_copy_copy
-// Copies [first1, last1) into [result, result + (last1 - first1)), and
-// copies [first2, last2) into
-// [result + (last1 - first1), result + (last1 - first1) + (last2 - first2)).
-template <class InpIt1, class InpIt2, class FwdIt>
-FwdIt uninitialized_copy_copy
- (InpIt1 first1, InpIt1 last1, InpIt2 first2, InpIt2 last2, FwdIt result)
-{
- typedef typename std::iterator_traits<FwdIt>::value_type value_type;
- FwdIt mid = std::uninitialized_copy(first1, last1, result);
- BOOST_TRY {
- return std::uninitialized_copy(first2, last2, mid);
- }
- BOOST_CATCH(...){
- for(;result != mid; ++result){
- container_detail::to_raw_pointer(&*result)->~value_type();
- }
- BOOST_RETHROW
- }
- BOOST_CATCH_END
-}
-*/
 } //namespace container {
 } //namespace boost {
 

Modified: branches/quickbook-dev/boost/container/stable_vector.hpp
==============================================================================
--- branches/quickbook-dev/boost/container/stable_vector.hpp (original)
+++ branches/quickbook-dev/boost/container/stable_vector.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -446,7 +446,7 @@
    template<class AllocatorVersion>
    node_type_ptr_t allocate_one(AllocatorVersion,
       typename boost::container::container_detail::enable_if_c
- <boost::container::container_detail::is_same<AllocatorVersion, allocator_v2>
+ <!boost::container::container_detail::is_same<AllocatorVersion, allocator_v1>
             ::value>::type * = 0)
    { return node_alloc().allocate_one(); }
 
@@ -463,7 +463,7 @@
    template<class AllocatorVersion>
    void deallocate_one(node_type_ptr_t p, AllocatorVersion,
       typename boost::container::container_detail::enable_if_c
- <boost::container::container_detail::is_same<AllocatorVersion, allocator_v2>
+ <!boost::container::container_detail::is_same<AllocatorVersion, allocator_v1>
             ::value>::type * = 0)
    { node_alloc().deallocate_one(p); }
 
@@ -1316,7 +1316,7 @@
    template<class AllocatorVersion>
    void clear_pool(AllocatorVersion,
       typename boost::container::container_detail::enable_if_c
- <boost::container::container_detail::is_same<AllocatorVersion, allocator_v2>
+ <!boost::container::container_detail::is_same<AllocatorVersion, allocator_v1>
             ::value>::type * = 0)
    {
       if(!impl.empty() && impl.back()){
@@ -1355,7 +1355,7 @@
    template<class AllocatorVersion>
    void add_to_pool(size_type n, AllocatorVersion,
       typename boost::container::container_detail::enable_if_c
- <boost::container::container_detail::is_same<AllocatorVersion, allocator_v2>
+ <!boost::container::container_detail::is_same<AllocatorVersion, allocator_v1>
             ::value>::type * = 0)
    {
       void_ptr &pool_first_ref = impl.end()[-2];
@@ -1473,7 +1473,7 @@
    template<class AllocatorVersion>
    iterator priv_erase(const_iterator first, const_iterator last, AllocatorVersion,
       typename boost::container::container_detail::enable_if_c
- <boost::container::container_detail::is_same<AllocatorVersion, allocator_v2>
+ <!boost::container::container_detail::is_same<AllocatorVersion, allocator_v1>
             ::value>::type * = 0)
    {
       STABLE_VECTOR_CHECK_INVARIANT;
@@ -1542,7 +1542,8 @@
    void delete_node(const void_ptr &p)
    {
       node_type_ptr_t n(node_ptr_cast(p));
- n->~node_type_t();
+ allocator_traits<node_allocator_type>::
+ destroy(this->node_alloc(), container_detail::to_raw_pointer(n));
       this->put_in_pool(n);
    }
 

Modified: branches/quickbook-dev/boost/container/string.hpp
==============================================================================
--- branches/quickbook-dev/boost/container/string.hpp (original)
+++ branches/quickbook-dev/boost/container/string.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -127,7 +127,10 @@
    {
       if(!this->is_short()){
          this->deallocate_block();
- static_cast<long_t*>(static_cast<void*>(&this->members_.m_repr.r))->~long_t();
+ allocator_traits_type::destroy
+ ( this->alloc()
+ , static_cast<long_t*>(static_cast<void*>(&this->members_.m_repr.r))
+ );
       }
    }
 
@@ -240,10 +243,16 @@
    void is_short(bool yes)
    {
       if(yes && !this->is_short()){
- static_cast<long_t*>(static_cast<void*>(&this->members_.m_repr.r))->~long_t();
+ allocator_traits_type::destroy
+ ( this->alloc()
+ , static_cast<long_t*>(static_cast<void*>(&this->members_.m_repr.r))
+ );
       }
       else{
- new(static_cast<void*>(&this->members_.m_repr.r))long_t();
+ allocator_traits_type::construct
+ ( this->alloc()
+ , static_cast<long_t*>(static_cast<void*>(&this->members_.m_repr.r))
+ );
       }
       this->members_.m_repr.s.h.is_short = yes;
    }
@@ -314,16 +323,31 @@
    }
 
    void construct(pointer p, const value_type &value = value_type())
- { new((void*)container_detail::to_raw_pointer(p)) value_type(value); }
+ {
+ allocator_traits_type::construct
+ ( this->alloc()
+ , container_detail::to_raw_pointer(p)
+ , value
+ );
+ }
 
    void destroy(pointer p, size_type n)
    {
- for(; n--; ++p)
- container_detail::to_raw_pointer(p)->~value_type();
+ for(; n--; ++p){
+ allocator_traits_type::destroy
+ ( this->alloc()
+ , container_detail::to_raw_pointer(p)
+ );
+ }
    }
 
    void destroy(pointer p)
- { container_detail::to_raw_pointer(p)->~value_type(); }
+ {
+ allocator_traits_type::destroy
+ ( this->alloc()
+ , container_detail::to_raw_pointer(p)
+ );
+ }
 
    void allocate_initial_block(size_type n)
    {

Modified: branches/quickbook-dev/boost/container/vector.hpp
==============================================================================
--- branches/quickbook-dev/boost/container/vector.hpp (original)
+++ branches/quickbook-dev/boost/container/vector.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1328,7 +1328,7 @@
    template<class AllocVersion>
    void priv_shrink_to_fit(AllocVersion
                           , typename container_detail::enable_if_c<
- container_detail::is_same<AllocVersion, allocator_v2>::value >::type * = 0)
+ !container_detail::is_same<AllocVersion, allocator_v1>::value >::type * = 0)
    {
       if(this->members_.m_capacity){
          if(!size()){

Modified: branches/quickbook-dev/boost/crc.hpp
==============================================================================
--- branches/quickbook-dev/boost/crc.hpp (original)
+++ branches/quickbook-dev/boost/crc.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -26,8 +26,8 @@
       a standard wrong. However, the mistaken <code>typedef</code>s are still
       there for backwards compatibility.
     \note There are references to the <i>Rocksoft&trade; Model CRC
- Algorithm</i>, as described within \"<cite>A Painless Guide to CRC Error
- Detection Algorithms</cite>,\" linked from \"<a
+ Algorithm</i>, as described within \"A Painless Guide to CRC Error
+ Detection Algorithms,\" linked from \"<a
       href="http://www.ross.net/crc/crcpaper.html">CRC: A Paper On CRCs</a>\" by
       Ross Williams. It will be abbreviated \"RMCA\" in other documentation
       blocks.
@@ -540,7 +540,7 @@
         exposed from the remainder, without any zero-valued bits augmented to
         the message bits.
 
- \pre \a Register and \Word are both built-in unsigned integer types
+ \pre \a Register and \a Word are both built-in unsigned integer types
         \pre 0 \< \a register_length \<= std\::numeric_limits\<\a Register\>
           \::digits
         \pre 0 \< \a word_length \<= std\::numeric_limits\<\a Word\>\::digits
@@ -661,7 +661,7 @@
         string of bits will be appended to the message before extracting the
         CRC.
 
- \pre \a Register and \Word are both built-in unsigned integer types
+ \pre \a Register and \a Word are both built-in unsigned integer types
         \pre 0 \< \a register_length \<= std\::numeric_limits\<\a Register\>
           \::digits
         \pre 0 \< \a word_length \<= std\::numeric_limits\<\a Word\>\::digits
@@ -1601,11 +1601,12 @@
 
 /** Returns a representation of the polynomial divisor. The value of the
     2<sup>i</sup> bit is the value of the coefficient of the polynomial's
- x<sup>i</sup> term. The omitted bit for x<sup>#bit_count</sup> is always 1.
+ x<sup>i</sup> term. The omitted bit for x<sup>(#bit_count)</sup> term is
+ always 1.
 
     \return The bit-packed list of coefficients. If the bit-length of
       #value_type exceeds #bit_count, the values of higher-placed bits should be
- ignored (even any for x<sup>#bit_count</sup>) since they're unregulated.
+ ignored (even any for x<sup>(#bit_count)</sup>) since they're unregulated.
  */
 template < std::size_t Bits >
 inline
@@ -1874,7 +1875,7 @@
     the highest place down if <code>this-&gt;get_reflect_input()</code> is
     \c false, and lowest place up otherwise. The bytes themselves are processed
     starting from the one pointed by \a buffer, forward-iterated (as if the
- pointed-to objects were of <code>unsigned char<code>) until \a byte_count
+ pointed-to objects were of <code>unsigned char</code>) until \a byte_count
     bytes are read.
 
     \pre \a byte_count has to equal 0 if \a buffer is \c NULL or otherwise

Modified: branches/quickbook-dev/boost/detail/container_fwd.hpp
==============================================================================
--- branches/quickbook-dev/boost/detail/container_fwd.hpp (original)
+++ branches/quickbook-dev/boost/detail/container_fwd.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -38,7 +38,11 @@
 # define BOOST_DETAIL_NO_CONTAINER_FWD
 # elif defined(__GLIBCPP__) || defined(__GLIBCXX__)
      // GNU libstdc++ 3
-# if defined(_GLIBCXX_DEBUG) \
+ //
+ // Disable forwarding for all recent versions, as the library has a
+ // versioned namespace mode, and I don't know how to detect it.
+# if __GLIBCXX__ >= 20070513 \
+ || defined(_GLIBCXX_DEBUG) \
         || defined(_GLIBCXX_PARALLEL) \
         || defined(_GLIBCXX_PROFILE)
 # define BOOST_DETAIL_NO_CONTAINER_FWD

Modified: branches/quickbook-dev/boost/detail/fenv.hpp
==============================================================================
--- branches/quickbook-dev/boost/detail/fenv.hpp (original)
+++ branches/quickbook-dev/boost/detail/fenv.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -16,9 +16,10 @@
 
 /* If we're using clang + glibc, we have to get hacky.
  * See http://llvm.org/bugs/show_bug.cgi?id=6907 */
-#if defined(__clang__) && \
+#if defined(__clang__) && (__clang_major__ < 3) && \
     defined(__GNU_LIBRARY__) && /* up to version 5 */ \
- defined(__GLIBC__) /* version 6 + */
+ defined(__GLIBC__) && /* version 6 + */ \
+ !defined(_FENV_H)
   #define _FENV_H
 
   #include <features.h>

Modified: branches/quickbook-dev/boost/exception/detail/attribute_noreturn.hpp
==============================================================================
--- branches/quickbook-dev/boost/exception/detail/attribute_noreturn.hpp (original)
+++ branches/quickbook-dev/boost/exception/detail/attribute_noreturn.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -9,7 +9,7 @@
 #if defined(_MSC_VER)
 #define BOOST_ATTRIBUTE_NORETURN __declspec(noreturn)
 #elif defined(__GNUC__)
-#define BOOST_ATTRIBUTE_NORETURN __attribute__((noreturn))
+#define BOOST_ATTRIBUTE_NORETURN __attribute__((__noreturn__))
 #else
 #define BOOST_ATTRIBUTE_NORETURN
 #endif

Modified: branches/quickbook-dev/boost/exception/error_info.hpp
==============================================================================
--- branches/quickbook-dev/boost/exception/error_info.hpp (original)
+++ branches/quickbook-dev/boost/exception/error_info.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,4 +3,7 @@
 //Distributed under the Boost Software License, Version 1.0. (See accompanying
 //file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
+#ifndef UUID_EE7ECCA0433B11E1923E37064924019B
+#define UUID_EE7ECCA0433B11E1923E37064924019B
 namespace boost { template <class Tag,class T> class error_info; }
+#endif

Modified: branches/quickbook-dev/boost/exception/info_tuple.hpp
==============================================================================
--- branches/quickbook-dev/boost/exception/info_tuple.hpp (original)
+++ branches/quickbook-dev/boost/exception/info_tuple.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -19,6 +19,30 @@
 boost
     {
     template <
+ class E >
+ inline
+ E const &
+ operator<<(
+ E const & x,
+ tuple< > const & v )
+ {
+ return x;
+ }
+
+ template <
+ class E,
+ class Tag1,class T1 >
+ inline
+ E const &
+ operator<<(
+ E const & x,
+ tuple<
+ error_info<Tag1,T1> > const & v )
+ {
+ return x << v.template get<0>();
+ }
+
+ template <
         class E,
         class Tag1,class T1,
         class Tag2,class T2 >

Modified: branches/quickbook-dev/boost/filesystem/v3/operations.hpp
==============================================================================
--- branches/quickbook-dev/boost/filesystem/v3/operations.hpp (original)
+++ branches/quickbook-dev/boost/filesystem/v3/operations.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -136,7 +136,7 @@
     symlink_perms = 0x4000 // on POSIX, don't resolve symlinks; implied on Windows
   };
 
- BOOST_BITMASK(perms);
+ BOOST_BITMASK(perms)
 
 //--------------------------------------------------------------------------------------//
 // file_status //
@@ -765,9 +765,10 @@
     {
       if ((m_options & symlink_option::_detail_no_push) == symlink_option::_detail_no_push)
         m_options &= ~symlink_option::_detail_no_push;
- else if (is_directory(m_stack.top()->status())
- && (!is_symlink(m_stack.top()->symlink_status())
- || (m_options & symlink_option::recurse) == symlink_option::recurse))
+ // patch for following else if contributed by Daniel Aarno, fixing #5652 for cyclic symlinks
+ else if (((m_options & symlink_option::recurse) == symlink_option::recurse
+ || !is_symlink(m_stack.top()->symlink_status()))
+ && is_directory(m_stack.top()->status()))
       {
         if (ec == 0)
           m_stack.push(directory_iterator(m_stack.top()->path()));

Modified: branches/quickbook-dev/boost/filesystem/v3/path.hpp
==============================================================================
--- branches/quickbook-dev/boost/filesystem/v3/path.hpp (original)
+++ branches/quickbook-dev/boost/filesystem/v3/path.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -183,6 +183,12 @@
       return *this;
     }
 
+ path& operator=(const value_type* ptr) // required in case ptr overlaps *this
+ {
+ m_pathname = ptr;
+ return *this;
+ }
+
     template <class Source>
       typename boost::enable_if<path_traits::is_pathable<
         typename boost::decay<Source>::type>, path&>::type
@@ -193,6 +199,12 @@
       return *this;
     }
 
+ path& assign(const value_type* ptr, const codecvt_type&) // required in case ptr overlaps *this
+ {
+ m_pathname = ptr;
+ return *this;
+ }
+
     template <class Source>
     path& assign(Source const& source, const codecvt_type& cvt)
     {
@@ -227,6 +239,8 @@
 
     path& operator/=(const path& p);
 
+ path& operator/=(const value_type* ptr);
+
     template <class Source>
       typename boost::enable_if<path_traits::is_pathable<
         typename boost::decay<Source>::type>, path&>::type
@@ -235,6 +249,12 @@
       return append(source, codecvt());
     }
 
+ path& append(const value_type* ptr, const codecvt_type&) // required in case ptr overlaps *this
+ {
+ this->operator/=(ptr);
+ return *this;
+ }
+
     template <class Source>
     path& append(Source const& source, const codecvt_type& cvt);
 
@@ -378,6 +398,16 @@
     }
     bool is_relative() const { return !is_absolute(); }
 
+ // ----- iterators -----
+
+ class iterator;
+ typedef iterator const_iterator;
+
+ iterator begin() const;
+ iterator end() const;
+
+ // ----- static members -----
+
     // ----- imbue -----
 
     static std::locale imbue(const std::locale& loc);
@@ -389,14 +419,6 @@
       return *wchar_t_codecvt_facet();
     }
 
- // ----- iterators -----
-
- class iterator;
- typedef iterator const_iterator;
-
- iterator begin() const;
- iterator end() const;
-
     // ----- deprecated functions -----
 
 # if defined(BOOST_FILESYSTEM_DEPRECATED) && defined(BOOST_FILESYSTEM_NO_DEPRECATED)
@@ -650,14 +672,14 @@
   }
 
   template <class Source>
- path& path::append(Source const & source, const codecvt_type& cvt)
+ path& path::append(Source const& source, const codecvt_type& cvt)
   {
     if (path_traits::empty(source))
       return *this;
- string_type::size_type sep_pos(m_append_separator_if_needed());
- path_traits::dispatch(source, m_pathname, cvt);
- if (sep_pos)
- m_erase_redundant_separator(sep_pos);
+ string_type::size_type sep_pos(m_append_separator_if_needed());
+ path_traits::dispatch(source, m_pathname, cvt);
+ if (sep_pos)
+ m_erase_redundant_separator(sep_pos);
     return *this;
   }
 

Modified: branches/quickbook-dev/boost/filesystem/v3/path_traits.hpp
==============================================================================
--- branches/quickbook-dev/boost/filesystem/v3/path_traits.hpp (original)
+++ branches/quickbook-dev/boost/filesystem/v3/path_traits.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -164,7 +164,7 @@
     to += from;
   }
 
- // Source dispatch
+ // Source dispatch -----------------------------------------------------------------//
 
   // contiguous containers
   template <class U> inline

Modified: branches/quickbook-dev/boost/fusion/view/iterator_range/detail/at_impl.hpp
==============================================================================
--- branches/quickbook-dev/boost/fusion/view/iterator_range/detail/at_impl.hpp (original)
+++ branches/quickbook-dev/boost/fusion/view/iterator_range/detail/at_impl.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -33,7 +33,7 @@
                 static type
                 call(Seq& s)
                 {
- return * advance<N>(s.first);
+ return * fusion::advance<N>(s.first);
                 }
             };
         };

Modified: branches/quickbook-dev/boost/geometry/algorithms/append.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/append.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/append.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
@@ -38,7 +38,7 @@
 template <typename Geometry, typename Point>
 struct append_no_action
 {
- static inline void apply(Geometry& geometry, Point const& point,
+ static inline void apply(Geometry& , Point const& ,
                 int = 0, int = 0)
     {
     }

Modified: branches/quickbook-dev/boost/geometry/algorithms/area.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/area.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/area.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
@@ -19,7 +19,6 @@
 #include <boost/range/functions.hpp>
 #include <boost/range/metafunctions.hpp>
 
-
 #include <boost/geometry/core/closure.hpp>
 #include <boost/geometry/core/exterior_ring.hpp>
 #include <boost/geometry/core/interior_rings.hpp>
@@ -30,6 +29,7 @@
 
 #include <boost/geometry/algorithms/detail/calculate_null.hpp>
 #include <boost/geometry/algorithms/detail/calculate_sum.hpp>
+#include <boost/geometry/algorithms/detail/throw_on_empty_input.hpp>
 
 #include <boost/geometry/strategies/area.hpp>
 #include <boost/geometry/strategies/default_area_result.hpp>
@@ -241,6 +241,8 @@
             point_type
>::type strategy_type;
 
+ detail::throw_on_empty_input(geometry);
+
     return dispatch::area
         <
             Geometry
@@ -277,6 +279,8 @@
 {
     concept::check<Geometry const>();
 
+ detail::throw_on_empty_input(geometry);
+
     return dispatch::area
         <
             Geometry,

Modified: branches/quickbook-dev/boost/geometry/algorithms/assign.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/assign.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/assign.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/algorithms/buffer.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/buffer.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/buffer.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
@@ -83,7 +83,7 @@
 struct buffer<box_tag, box_tag, BoxIn, T, BoxOut>
 {
     static inline void apply(BoxIn const& box_in, T const& distance,
- T const& chord_length, BoxIn& box_out)
+ T const& , BoxIn& box_out)
     {
         detail::buffer::buffer_box(box_in, distance, box_out);
     }

Modified: branches/quickbook-dev/boost/geometry/algorithms/centroid.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/centroid.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/centroid.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
@@ -191,7 +191,7 @@
             it != end;
             ++previous, ++it)
         {
- Strategy::apply(*previous, *it, state);
+ strategy.apply(*previous, *it, state);
         }
     }
 };
@@ -211,7 +211,7 @@
                     Closure,
                     Strategy
>::apply(range, strategy, state);
- Strategy::result(state, centroid);
+ strategy.result(state, centroid);
         }
     }
 };
@@ -262,7 +262,7 @@
                     Polygon,
                     Strategy
>::apply(poly, strategy, state);
- Strategy::result(state, centroid);
+ strategy.result(state, centroid);
         }
     }
 };

Modified: branches/quickbook-dev/boost/geometry/algorithms/clear.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/clear.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/clear.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
@@ -79,7 +79,11 @@
 namespace dispatch
 {
 
-template <typename Tag, typename Geometry>
+template
+<
+ typename Geometry,
+ typename Tag = typename tag_cast<typename tag<Geometry>::type, multi_tag>::type
+>
 struct clear
 {
     BOOST_MPL_ASSERT_MSG
@@ -91,34 +95,34 @@
 
 // Point/box/segment do not have clear. So specialize to do nothing.
 template <typename Geometry>
-struct clear<point_tag, Geometry>
+struct clear<Geometry, point_tag>
     : detail::clear::no_action<Geometry>
 {};
 
 template <typename Geometry>
-struct clear<box_tag, Geometry>
+struct clear<Geometry, box_tag>
     : detail::clear::no_action<Geometry>
 {};
 
 template <typename Geometry>
-struct clear<segment_tag, Geometry>
+struct clear<Geometry, segment_tag>
     : detail::clear::no_action<Geometry>
 {};
 
 template <typename Geometry>
-struct clear<linestring_tag, Geometry>
+struct clear<Geometry, linestring_tag>
     : detail::clear::collection_clear<Geometry>
 {};
 
 template <typename Geometry>
-struct clear<ring_tag, Geometry>
+struct clear<Geometry, ring_tag>
     : detail::clear::collection_clear<Geometry>
 {};
 
 
 // Polygon can (indirectly) use std for clear
 template <typename Polygon>
-struct clear<polygon_tag, Polygon>
+struct clear<Polygon, polygon_tag>
     : detail::clear::polygon_clear<Polygon>
 {};
 
@@ -145,11 +149,7 @@
 {
     concept::check<Geometry>();
 
- dispatch::clear
- <
- typename tag_cast<typename tag<Geometry>::type, multi_tag>::type,
- Geometry
- >::apply(geometry);
+ dispatch::clear<Geometry>::apply(geometry);
 }
 
 

Modified: branches/quickbook-dev/boost/geometry/algorithms/comparable_distance.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/comparable_distance.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/comparable_distance.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/algorithms/convert.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/convert.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/convert.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/algorithms/convex_hull.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/convex_hull.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/convex_hull.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
@@ -14,7 +14,7 @@
 #ifndef BOOST_GEOMETRY_ALGORITHMS_CONVEX_HULL_HPP
 #define BOOST_GEOMETRY_ALGORITHMS_CONVEX_HULL_HPP
 
-
+#include <boost/array.hpp>
 
 #include <boost/geometry/core/cs.hpp>
 #include <boost/geometry/core/point_order.hpp>
@@ -27,12 +27,15 @@
 
 #include <boost/geometry/views/detail/range_type.hpp>
 
+#include <boost/geometry/algorithms/num_points.hpp>
 #include <boost/geometry/algorithms/detail/as_range.hpp>
+#include <boost/geometry/algorithms/detail/assign_box_corners.hpp>
 
 
 namespace boost { namespace geometry
 {
 
+
 #ifndef DOXYGEN_NO_DETAIL
 namespace detail { namespace convex_hull
 {
@@ -63,11 +66,11 @@
 template
 <
     typename Geometry,
- typename OutputGeometry,
     typename Strategy
>
 struct hull_to_geometry
 {
+ template <typename OutputGeometry>
     static inline void apply(Geometry const& geometry, OutputGeometry& out,
             Strategy const& strategy)
     {
@@ -87,6 +90,17 @@
 };
 
 
+// Helper metafunction for default strategy retrieval
+template <typename Geometry>
+struct default_strategy
+ : strategy_convex_hull
+ <
+ Geometry,
+ typename point_type<Geometry>::type
+ >
+{};
+
+
 }} // namespace detail::convex_hull
 #endif // DOXYGEN_NO_DETAIL
 
@@ -98,24 +112,50 @@
 
 template
 <
- typename Tag1,
     typename Geometry,
- typename Output,
- typename Strategy
+ typename Strategy = typename detail::convex_hull::default_strategy<Geometry>::type,
+ typename Tag = typename tag<Geometry>::type
>
 struct convex_hull
- : detail::convex_hull::hull_to_geometry<Geometry, Output, Strategy>
+ : detail::convex_hull::hull_to_geometry<Geometry, Strategy>
 {};
 
+template
+<
+ typename Box,
+ typename Strategy
+>
+struct convex_hull<Box, Strategy, box_tag>
+{
+ template <typename OutputGeometry>
+ static inline void apply(Box const& box, OutputGeometry& out,
+ Strategy const& )
+ {
+ static bool const Close
+ = geometry::closure<OutputGeometry>::value == closed;
+ static bool const Reverse
+ = geometry::point_order<OutputGeometry>::value == counterclockwise;
+
+ // A hull for boxes is trivial. Any strategy is (currently) skipped.
+ boost::array<typename point_type<Box>::type, 4> range;
+ geometry::detail::assign_box_corners_oriented<Reverse>(box, range);
+ geometry::append(out, range);
+ if (Close)
+ {
+ geometry::append(out, *boost::begin(range));
+ }
+ }
+};
+
+
 
 template
 <
- typename GeometryTag,
     order_selector Order,
- typename GeometryIn, typename Strategy
- >
+ typename Geometry, typename Strategy
+>
 struct convex_hull_insert
- : detail::convex_hull::hull_insert<GeometryIn, Order, Strategy>
+ : detail::convex_hull::hull_insert<Geometry, Order, Strategy>
 {};
 
 
@@ -123,24 +163,27 @@
 #endif // DOXYGEN_NO_DISPATCH
 
 
-template<typename Geometry1, typename Geometry2, typename Strategy>
-inline void convex_hull(Geometry1 const& geometry,
- Geometry2& out, Strategy const& strategy)
+template<typename Geometry, typename OutputGeometry, typename Strategy>
+inline void convex_hull(Geometry const& geometry,
+ OutputGeometry& out, Strategy const& strategy)
 {
     concept::check_concepts_and_equal_dimensions
         <
- const Geometry1,
- Geometry2
+ const Geometry,
+ OutputGeometry
>();
 
     BOOST_CONCEPT_ASSERT( (geometry::concept::ConvexHullStrategy<Strategy>) );
 
+ if (geometry::num_points(geometry) == 0)
+ {
+ // Leave output empty
+ return;
+ }
 
     dispatch::convex_hull
         <
- typename tag<Geometry1>::type,
- Geometry1,
- Geometry2,
+ Geometry,
             Strategy
>::apply(geometry, out, strategy);
 }
@@ -157,24 +200,17 @@
 
 \qbk{[include reference/algorithms/convex_hull.qbk]}
  */
-template<typename Geometry1, typename Geometry2>
-inline void convex_hull(Geometry1 const& geometry,
- Geometry2& hull)
+template<typename Geometry, typename OutputGeometry>
+inline void convex_hull(Geometry const& geometry,
+ OutputGeometry& hull)
 {
     concept::check_concepts_and_equal_dimensions
         <
- const Geometry1,
- Geometry2
+ const Geometry,
+ OutputGeometry
>();
 
- typedef typename point_type<Geometry2>::type point_type;
-
- typedef typename strategy_convex_hull
- <
- typename cs_tag<point_type>::type,
- Geometry1,
- point_type
- >::type strategy_type;
+ typedef typename detail::convex_hull::default_strategy<Geometry>::type strategy_type;
 
     convex_hull(geometry, hull, strategy_type());
 }
@@ -196,7 +232,6 @@
 
     return dispatch::convex_hull_insert
         <
- typename tag<Geometry>::type,
             geometry::point_order<Geometry>::value,
             Geometry, Strategy
>::apply(geometry, out, strategy);
@@ -224,14 +259,7 @@
     concept::check<Geometry const>();
     concept::check<typename point_type<Geometry>::type>();
 
- typedef typename point_type<Geometry>::type point_type;
-
- typedef typename strategy_convex_hull
- <
- typename cs_tag<point_type>::type,
- Geometry,
- point_type
- >::type strategy_type;
+ typedef typename detail::convex_hull::default_strategy<Geometry>::type strategy_type;
 
     return convex_hull_insert(geometry, out, strategy_type());
 }

Modified: branches/quickbook-dev/boost/geometry/algorithms/correct.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/correct.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/correct.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
@@ -80,7 +80,7 @@
 template <typename Box, std::size_t DimensionCount>
 struct correct_box_loop<Box, DimensionCount, DimensionCount>
 {
- static inline void apply(Box& box)
+ static inline void apply(Box& )
     {}
 
 };

Modified: branches/quickbook-dev/boost/geometry/algorithms/covered_by.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/covered_by.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/covered_by.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
@@ -73,7 +73,7 @@
 template <typename Point, typename Ring, typename Strategy>
 struct covered_by<point_tag, ring_tag, Point, Ring, Strategy>
 {
- static inline bool apply(Point const& point, Ring const& ring, Strategy const& strategy)
+ static inline bool apply(Point const& point, Ring const& ring, Strategy const& )
     {
         return detail::within::point_in_ring
             <

Modified: branches/quickbook-dev/boost/geometry/algorithms/detail/as_range.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/detail/as_range.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/detail/as_range.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/algorithms/detail/assign_box_corners.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/detail/assign_box_corners.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/detail/assign_box_corners.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/algorithms/detail/assign_indexed_point.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/detail/assign_indexed_point.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/detail/assign_indexed_point.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/algorithms/detail/assign_values.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/detail/assign_values.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/detail/assign_values.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/algorithms/detail/calculate_null.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/detail/calculate_null.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/detail/calculate_null.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/algorithms/detail/calculate_sum.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/detail/calculate_sum.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/detail/calculate_sum.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/algorithms/detail/convert_indexed_to_indexed.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/detail/convert_indexed_to_indexed.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/detail/convert_indexed_to_indexed.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/algorithms/detail/convert_point_to_point.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/detail/convert_point_to_point.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/detail/convert_point_to_point.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/algorithms/detail/disjoint.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/detail/disjoint.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/detail/disjoint.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/algorithms/detail/equals/collect_vectors.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/detail/equals/collect_vectors.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/detail/equals/collect_vectors.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/algorithms/detail/for_each_range.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/detail/for_each_range.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/detail/for_each_range.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
@@ -15,9 +15,9 @@
 #define BOOST_GEOMETRY_ALGORITHMS_DETAIL_FOR_EACH_RANGE_HPP
 
 
+#include <boost/mpl/assert.hpp>
 #include <boost/concept/requires.hpp>
 
-
 #include <boost/geometry/core/tag.hpp>
 #include <boost/geometry/core/tag_cast.hpp>
 
@@ -59,6 +59,17 @@
     }
 };
 
+template <typename Box, typename Actor, bool IsConst>
+struct fe_range_box
+{
+ static inline void apply(
+ typename add_const_if_c<IsConst, Box>::type& box,
+ Actor& actor)
+ {
+ actor.apply(box_view<Box>(box));
+ }
+};
+
 
 }} // namespace detail::for_each
 #endif // DOXYGEN_NO_DETAIL
@@ -76,7 +87,14 @@
     typename Actor,
     bool IsConst
>
-struct for_each_range {};
+struct for_each_range
+{
+ BOOST_MPL_ASSERT_MSG
+ (
+ false, NOT_OR_NOT_YET_IMPLEMENTED_FOR_THIS_GEOMETRY_TYPE
+ , (types<Geometry>)
+ );
+};
 
 
 template <typename Linestring, typename Actor, bool IsConst>
@@ -96,6 +114,11 @@
     : detail::for_each::fe_range_polygon<Polygon, Actor, IsConst>
 {};
 
+template <typename Box, typename Actor, bool IsConst>
+struct for_each_range<box_tag, Box, Actor, IsConst>
+ : detail::for_each::fe_range_box<Box, Actor, IsConst>
+{};
+
 
 } // namespace dispatch
 #endif // DOXYGEN_NO_DISPATCH

Modified: branches/quickbook-dev/boost/geometry/algorithms/detail/has_self_intersections.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/detail/has_self_intersections.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/detail/has_self_intersections.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/algorithms/detail/not.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/detail/not.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/detail/not.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/add_rings.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/add_rings.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/add_rings.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/append_no_duplicates.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/append_no_duplicates.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/append_no_duplicates.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/assign_parents.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/assign_parents.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/assign_parents.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/backtrack_check_si.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/backtrack_check_si.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/backtrack_check_si.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/calculate_distance_policy.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/calculate_distance_policy.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/calculate_distance_policy.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/check_enrich.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/check_enrich.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/check_enrich.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/clip_linestring.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/clip_linestring.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/clip_linestring.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/convert_ring.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/convert_ring.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/convert_ring.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/copy_segment_point.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/copy_segment_point.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/copy_segment_point.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/copy_segments.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/copy_segments.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/copy_segments.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/debug_turn_info.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/debug_turn_info.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/debug_turn_info.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/enrich_intersection_points.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/enrich_intersection_points.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/enrich_intersection_points.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -294,9 +294,9 @@
>
 inline void enrich_assign(Container& operations,
             TurnPoints& turn_points,
- operation_type for_operation,
- Geometry1 const& geometry1, Geometry2 const& geometry2,
- Strategy const& strategy)
+ operation_type ,
+ Geometry1 const& , Geometry2 const& ,
+ Strategy const& )
 {
     typedef typename IndexType::type operations_type;
     typedef typename boost::range_iterator<Container const>::type iterator_type;

Modified: branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/enrichment_info.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/enrichment_info.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/enrichment_info.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/follow.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/follow.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/follow.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -33,7 +33,7 @@
 {
     
 template <typename Turn, typename Operation>
-static inline bool is_entering(Turn const& turn, Operation const& op)
+static inline bool is_entering(Turn const& /* TODO remove this parameter */, Operation const& op)
 {
     // (Blocked means: blocked for polygon/polygon intersection, because
     // they are reversed. But for polygon/line it is similar to continue)
@@ -126,10 +126,10 @@
         typename Operation
>
     static inline void enter(LineStringOut& current_piece,
- LineString const& linestring,
+ LineString const& ,
                 segment_identifier& segment_id,
- int index, Point const& point,
- Operation const& operation, OutputIterator& out)
+ int , Point const& point,
+ Operation const& operation, OutputIterator& )
     {
         // On enter, append the intersection point and remember starting point
         detail::overlay::append_no_duplicates(current_piece, point);
@@ -148,7 +148,7 @@
                 LineString const& linestring,
                 segment_identifier& segment_id,
                 int index, Point const& point,
- Operation const& operation, OutputIterator& out)
+ Operation const& , OutputIterator& out)
     {
         // On leave, copy all segments from starting point, append the intersection point
         // and add the output piece
@@ -273,7 +273,7 @@
 
     template<typename Turns, typename OutputIterator>
     static inline OutputIterator apply(LineString const& linestring, Polygon const& polygon,
- detail::overlay::operation_type operation,
+ detail::overlay::operation_type , // TODO: this parameter might be redundant
                 Turns& turns, OutputIterator out)
     {
         typedef typename boost::range_iterator<Turns>::type turn_iterator;

Modified: branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/get_intersection_points.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/get_intersection_points.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/get_intersection_points.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -51,7 +51,7 @@
     static inline OutputIterator apply(
                 Point1 const& pi, Point1 const& pj, Point1 const& pk,
                 Point2 const& qi, Point2 const& qj, Point2 const& qk,
- TurnInfo const& tp_model,
+ TurnInfo const& ,
                 OutputIterator out)
     {
         typedef model::referring_segment<Point1 const> segment_type1;

Modified: branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/get_relative_order.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/get_relative_order.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/get_relative_order.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/get_ring.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/get_ring.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/get_ring.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/get_turn_info.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/get_turn_info.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/get_turn_info.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -89,7 +89,7 @@
         typename DirInfo
>
     static inline void apply(
- Point1 const& pi, Point1 const& pj, Point1 const& pk,
+ Point1 const& pi, Point1 const& pj, Point1 const& ,
                 Point2 const& qi, Point2 const& qj, Point2 const& qk,
                 TurnInfo& ti,
                 IntersectionInfo const& intersection_info,
@@ -399,10 +399,10 @@
>
     static inline void apply(
                 Point1 const& pi, Point1 const& pj, Point1 const& pk,
- Point2 const& qi, Point2 const& qj, Point2 const& qk,
+ Point2 const& , Point2 const& qj, Point2 const& qk,
                 TurnInfo& ti,
                 IntersectionInfo const& intersection_info,
- DirInfo const& dir_info)
+ DirInfo const& )
     {
         ti.method = method_equal;
         // Copy the SECOND intersection point
@@ -656,8 +656,8 @@
         typename DirInfo
>
     static inline void apply(
- Point1 const& pi, Point1 const& pj, Point1 const& pk,
- Point2 const& qi, Point2 const& qj, Point2 const& qk,
+ Point1 const& , Point1 const& , Point1 const& ,
+ Point2 const& , Point2 const& , Point2 const& ,
                 TurnInfo& ti,
                 IntersectionInfo const& intersection_info,
                 DirInfo const& dir_info)
@@ -687,7 +687,7 @@
 struct assign_null_policy
 {
     template <typename Point1, typename Point2, typename Info>
- static inline void apply(Info& info, Point1 const& p1, Point2 const& p2)
+ static inline void apply(Info& , Point1 const& , Point2 const& )
     {}
 
 };

Modified: branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/get_turns.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/get_turns.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/get_turns.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -158,6 +158,7 @@
     static inline bool apply(
             int source_id1, Geometry1 const& geometry1, Section1 const& sec1,
             int source_id2, Geometry2 const& geometry2, Section2 const& sec2,
+ bool skip_larger,
             Turns& turns,
             InterruptPolicy& interrupt_policy)
     {
@@ -229,7 +230,7 @@
                     // Also skip if index1 < index2 to avoid getting all
                     // intersections twice (only do this on same source!)
 
- skip = index1 >= index2
+ skip = (skip_larger && index1 >= index2)
                         || ndi2 == ndi1 + 1
                         || neighbouring<Geometry1>(sec1, index1, index2)
                         ;
@@ -405,6 +406,7 @@
>::apply(
                             m_source_id1, m_geometry1, sec1,
                             m_source_id2, m_geometry2, sec2,
+ false,
                             m_turns, m_interrupt_policy);
         }
         return true;

Modified: branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/handle_tangencies.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/handle_tangencies.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/handle_tangencies.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -93,6 +93,7 @@
     }
 
 
+#ifdef BOOST_GEOMETRY_DEBUG_ENRICH
     inline void debug_consider(int order, Indexed const& left,
             Indexed const& right, std::string const& header,
             bool skip = true,
@@ -101,8 +102,6 @@
     {
         if (skip) return;
 
-
-#ifdef BOOST_GEOMETRY_DEBUG_ENRICH
         point_type pi, pj, ri, rj, si, sj;
         geometry::copy_segment_points<Reverse1, Reverse2>(m_geometry1, m_geometry2,
             left.subject.seg_id,
@@ -151,14 +150,21 @@
             std::cout << " " << extra << " " << (ret ? "true" : "false");
         }
         std::cout << std::endl;
-#endif
     }
+#else
+ inline void debug_consider(int, Indexed const& ,
+ Indexed const& , std::string const& ,
+ bool = true,
+ std::string const& = "", bool = false
+ ) const
+ {}
+#endif
 
 
     // ux/ux
     inline bool consider_ux_ux(Indexed const& left,
             Indexed const& right
- , std::string const& header
+ , std::string const& // header
         ) const
     {
         bool ret = left.index < right.index;
@@ -190,7 +196,7 @@
     inline bool consider_iu_ux(Indexed const& left,
             Indexed const& right,
             int order // 1: iu first, -1: ux first
- , std::string const& header
+ , std::string const& // header
         ) const
     {
         bool ret = false;
@@ -234,7 +240,7 @@
     inline bool consider_iu_ix(Indexed const& left,
             Indexed const& right,
             int order // 1: iu first, -1: ix first
- , std::string const& header
+ , std::string const& // header
         ) const
     {
         //debug_consider(order, left, right, header, false, "iu/ix");
@@ -507,9 +513,9 @@
>
 inline void inspect_cluster(Iterator begin_cluster, Iterator end_cluster,
             TurnPoints& turn_points,
- operation_type for_operation,
- Geometry1 const& geometry1, Geometry2 const& geometry2,
- Strategy const& strategy)
+ operation_type ,
+ Geometry1 const& , Geometry2 const& ,
+ Strategy const& )
 {
     int count = 0;
 

Modified: branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/intersection_insert.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/intersection_insert.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/intersection_insert.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -50,7 +50,7 @@
 {
     static inline OutputIterator apply(Segment1 const& segment1,
             Segment2 const& segment2, OutputIterator out,
- Strategy const& strategy)
+ Strategy const& )
     {
         typedef typename point_type<PointOut>::type point_type;
 
@@ -86,7 +86,7 @@
 {
     static inline OutputIterator apply(Linestring1 const& linestring1,
             Linestring2 const& linestring2, OutputIterator out,
- Strategy const& strategy)
+ Strategy const& )
     {
         typedef typename point_type<PointOut>::type point_type;
 
@@ -146,7 +146,7 @@
 
     static inline OutputIterator apply(LineString const& linestring, Areal const& areal,
             OutputIterator out,
- Strategy const& strategy)
+ Strategy const& )
     {
         if (boost::size(linestring) == 0)
         {
@@ -351,7 +351,7 @@
>
 {
     static inline OutputIterator apply(Linestring const& linestring,
- Box const& box, OutputIterator out, Strategy const& strategy)
+ Box const& box, OutputIterator out, Strategy const& )
     {
         typedef typename point_type<GeometryOut>::type point_type;
         strategy::intersection::liang_barsky<Box, point_type> lb_strategy;
@@ -436,7 +436,7 @@
>
 {
     static inline OutputIterator apply(Segment const& segment,
- Box const& box, OutputIterator out, Strategy const& strategy)
+ Box const& box, OutputIterator out, Strategy const& )
     {
         geometry::segment_view<Segment> range(segment);
 
@@ -469,7 +469,7 @@
>
 {
     static inline OutputIterator apply(Geometry1 const& geometry1,
- Geometry2 const& geometry2, OutputIterator out, Strategy const& strategy)
+ Geometry2 const& geometry2, OutputIterator out, Strategy const& )
     {
 
         typedef detail::overlay::turn_info<PointOut> turn_info;

Modified: branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/overlay.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/overlay.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/overlay.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/overlay_type.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/overlay_type.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/overlay_type.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/ring_properties.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/ring_properties.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/ring_properties.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/segment_identifier.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/segment_identifier.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/segment_identifier.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/select_rings.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/select_rings.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/select_rings.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -40,7 +40,7 @@
     struct select_rings<box_tag, Box>
     {
         template <typename Geometry, typename Map>
- static inline void apply(Box const& box, Geometry const& geometry,
+ static inline void apply(Box const& box, Geometry const& ,
                 ring_identifier const& id, Map& map, bool midpoint)
         {
             map[id] = typename Map::mapped_type(box, midpoint);
@@ -58,7 +58,7 @@
     struct select_rings<ring_tag, Ring>
     {
         template <typename Geometry, typename Map>
- static inline void apply(Ring const& ring, Geometry const& geometry,
+ static inline void apply(Ring const& ring, Geometry const& ,
                     ring_identifier const& id, Map& map, bool midpoint)
         {
             if (boost::size(ring) > 0)
@@ -129,7 +129,7 @@
 struct decide<overlay_union>
 {
     template <typename Code>
- static bool include(ring_identifier const& id, Code const& code)
+ static bool include(ring_identifier const& , Code const& code)
     {
         return code.within_code * -1 == 1;
     }
@@ -162,7 +162,7 @@
 struct decide<overlay_intersection>
 {
     template <typename Code>
- static bool include(ring_identifier const& id, Code const& code)
+ static bool include(ring_identifier const& , Code const& code)
     {
         return code.within_code * 1 == 1;
     }

Modified: branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/self_turn_points.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/self_turn_points.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/self_turn_points.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -32,6 +32,22 @@
 namespace detail { namespace self_get_turn_points
 {
 
+struct no_interrupt_policy
+{
+ static bool const enabled = false;
+ static bool const has_intersections = false;
+
+
+ template <typename Range>
+ static inline bool apply(Range const&)
+ {
+ return false;
+ }
+};
+
+
+
+
 class self_ip_exception : public geometry::exception {};
 
 template
@@ -71,6 +87,7 @@
>::apply(
                             0, m_geometry, sec1,
                             0, m_geometry, sec2,
+ false,
                             m_turns, m_interrupt_policy);
         }
         if (m_interrupt_policy.has_intersections)

Modified: branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/stream_info.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/stream_info.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/stream_info.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/traversal_info.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/traversal_info.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/traversal_info.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/traverse.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/traverse.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/traverse.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -37,10 +37,10 @@
 {
 
 template <typename Turn, typename Operation>
+#ifdef BOOST_GEOMETRY_DEBUG_TRAVERSE
 inline void debug_traverse(Turn const& turn, Operation op,
                 std::string const& header)
 {
-#ifdef BOOST_GEOMETRY_DEBUG_TRAVERSE
     std::cout << header
         << " at " << op.seg_id
         << " meth: " << method_char(turn.method)
@@ -55,8 +55,12 @@
     {
         std::cout << std::endl;
     }
-#endif
 }
+#else
+inline void debug_traverse(Turn const& , Operation, std::string const& )
+{
+}
+#endif
 
 
 template <typename Info, typename Turn>

Modified: branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/turn_info.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/turn_info.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/turn_info.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/visit_info.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/visit_info.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/detail/overlay/visit_info.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/algorithms/detail/partition.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/detail/partition.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/detail/partition.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -10,14 +10,13 @@
 #define BOOST_GEOMETRY_ALGORITHMS_DETAIL_PARTITION_HPP
 
 #include <vector>
-#include <boost/geometry/algorithms/assign.hpp>
 #include <boost/range/algorithm/copy.hpp>
+#include <boost/geometry/algorithms/assign.hpp>
 #include <boost/geometry/core/coordinate_type.hpp>
 
 namespace boost { namespace geometry
 {
 
-
 namespace detail { namespace partition
 {
 
@@ -39,24 +38,31 @@
     geometry::set<min_corner, Dimension>(upper_box, mid);
 }
 
-// Divide collection into three subsets: lower, upper and oversized (not-fitting)
+// Divide collection into three subsets: lower, upper and oversized
+// (not-fitting)
 // (lower == left or bottom, upper == right or top)
 template <typename OverlapsPolicy, typename InputCollection, typename Box>
-static inline void divide_into_subsets(Box const& lower_box, Box const& upper_box,
+static inline void divide_into_subsets(Box const& lower_box,
+ Box const& upper_box,
         InputCollection const& collection,
         index_vector_type const& input,
         index_vector_type& lower,
         index_vector_type& upper,
         index_vector_type& exceeding)
 {
- typedef boost::range_iterator<index_vector_type const>::type index_iterator_type;
+ typedef boost::range_iterator
+ <
+ index_vector_type const
+ >::type index_iterator_type;
 
     for(index_iterator_type it = boost::begin(input);
         it != boost::end(input);
         ++it)
     {
- bool const lower_overlapping = OverlapsPolicy::apply(lower_box, collection[*it]);
- bool const upper_overlapping = OverlapsPolicy::apply(upper_box, collection[*it]);
+ bool const lower_overlapping = OverlapsPolicy::apply(lower_box,
+ collection[*it]);
+ bool const upper_overlapping = OverlapsPolicy::apply(upper_box,
+ collection[*it]);
 
         if (lower_overlapping && upper_overlapping)
         {
@@ -78,16 +84,18 @@
     }
 }
 
-
 // Match collection with itself
 template <typename InputCollection, typename Policy>
 static inline void handle_one(InputCollection const& collection,
         index_vector_type const& input,
         Policy& policy)
 {
- typedef boost::range_iterator<index_vector_type const>::type index_iterator_type;
+ typedef boost::range_iterator<index_vector_type const>::type
+ index_iterator_type;
     // Quadratic behaviour at lowest level (lowest quad, or all exceeding)
- for(index_iterator_type it1 = boost::begin(input); it1 != boost::end(input); ++it1)
+ for(index_iterator_type it1 = boost::begin(input);
+ it1 != boost::end(input);
+ ++it1)
     {
         index_iterator_type it2 = it1;
         for(++it2; it2 != boost::end(input); ++it2)
@@ -104,17 +112,24 @@
         InputCollection const& collection2, index_vector_type const& input2,
         Policy& policy)
 {
- typedef boost::range_iterator<index_vector_type const>::type index_iterator_type;
- for(index_iterator_type it1 = boost::begin(input1); it1 != boost::end(input1); ++it1)
+ typedef boost::range_iterator
+ <
+ index_vector_type const
+ >::type index_iterator_type;
+
+ for(index_iterator_type it1 = boost::begin(input1);
+ it1 != boost::end(input1);
+ ++it1)
     {
- for(index_iterator_type it2 = boost::begin(input2); it2 != boost::end(input2); ++it2)
+ for(index_iterator_type it2 = boost::begin(input2);
+ it2 != boost::end(input2);
+ ++it2)
         {
             policy.apply(collection1[*it1], collection2[*it2]);
         }
     }
 }
 
-
 template
 <
     int Dimension,
@@ -145,7 +160,8 @@
         {
             if (boost::size(input) > min_elements && level < 100)
             {
- sub_divide::apply(box, collection, input, level + 1, min_elements, policy, box_policy);
+ sub_divide::apply(box, collection, input, level + 1,
+ min_elements, policy, box_policy);
             }
             else
             {
@@ -169,7 +185,8 @@
         divide_box<Dimension>(box, lower_box, upper_box);
 
         index_vector_type lower, upper, exceeding;
- divide_into_subsets<OverlapsPolicy>(lower_box, upper_box, collection, input, lower, upper, exceeding);
+ divide_into_subsets<OverlapsPolicy>(lower_box, upper_box, collection,
+ input, lower, upper, exceeding);
 
         if (boost::size(exceeding) > 0)
         {
@@ -181,12 +198,13 @@
         }
 
         // Recursively call operation both parts
- next_level(lower_box, collection, lower, level, min_elements, policy, box_policy);
- next_level(upper_box, collection, upper, level, min_elements, policy, box_policy);
+ next_level(lower_box, collection, lower, level, min_elements,
+ policy, box_policy);
+ next_level(upper_box, collection, upper, level, min_elements,
+ policy, box_policy);
     }
 };
 
-
 template
 <
     int Dimension,
@@ -208,8 +226,10 @@
 
     template <typename InputCollection, typename Policy>
     static inline void next_level(Box const& box,
- InputCollection const& collection1, index_vector_type const& input1,
- InputCollection const& collection2, index_vector_type const& input2,
+ InputCollection const& collection1,
+ index_vector_type const& input1,
+ InputCollection const& collection2,
+ index_vector_type const& input2,
             int level, int min_elements,
             Policy& policy, VisitBoxPolicy& box_policy)
     {
@@ -219,7 +239,9 @@
                 && boost::size(input2) > min_elements
                 && level < 100)
             {
- sub_divide::apply(box, collection1, input1, collection2, input2, level + 1, min_elements, policy, box_policy);
+ sub_divide::apply(box, collection1, input1, collection2,
+ input2, level + 1, min_elements,
+ policy, box_policy);
             }
             else
             {
@@ -245,13 +267,16 @@
 
         index_vector_type lower1, upper1, exceeding1;
         index_vector_type lower2, upper2, exceeding2;
- divide_into_subsets<OverlapsPolicy>(lower_box, upper_box, collection1, input1, lower1, upper1, exceeding1);
- divide_into_subsets<OverlapsPolicy>(lower_box, upper_box, collection2, input2, lower2, upper2, exceeding2);
+ divide_into_subsets<OverlapsPolicy>(lower_box, upper_box, collection1,
+ input1, lower1, upper1, exceeding1);
+ divide_into_subsets<OverlapsPolicy>(lower_box, upper_box, collection2,
+ input2, lower2, upper2, exceeding2);
 
         if (boost::size(exceeding1) > 0)
         {
             // All exceeding from 1 with 2:
- handle_two(collection1, exceeding1, collection2, exceeding2, policy);
+ handle_two(collection1, exceeding1, collection2, exceeding2,
+ policy);
 
             // All exceeding from 1 with lower and upper of 2:
             handle_two(collection1, exceeding1, collection2, lower2, policy);
@@ -264,13 +289,13 @@
             handle_two(collection1, upper1, collection2, exceeding2, policy);
         }
 
- next_level(lower_box, collection1, lower1, collection2, lower2, level, min_elements, policy, box_policy);
- next_level(upper_box, collection1, upper1, collection2, upper2, level, min_elements, policy, box_policy);
+ next_level(lower_box, collection1, lower1, collection2, lower2, level,
+ min_elements, policy, box_policy);
+ next_level(upper_box, collection1, upper1, collection2, upper2, level,
+ min_elements, policy, box_policy);
     }
 };
 
-
-
 }} // namespace detail::partition
 
 struct visit_no_policy
@@ -280,7 +305,6 @@
     {}
 };
 
-
 template
 <
     typename Box,
@@ -293,7 +317,8 @@
     typedef std::vector<std::size_t> index_vector_type;
 
     template <typename InputCollection>
- static inline void expand_to_collection(InputCollection const& collection, Box& total, index_vector_type& index_vector)
+ static inline void expand_to_collection(InputCollection const& collection,
+ Box& total, index_vector_type& index_vector)
     {
         std::size_t index = 0;
         for(typename boost::range_iterator<InputCollection const>::type it
@@ -306,7 +331,6 @@
         }
     }
 
-
 public :
     template <typename InputCollection, typename VisitPolicy>
     static inline void apply(InputCollection const& collection,
@@ -327,12 +351,18 @@
                     0, Box,
                     OverlapsPolicy,
                     VisitBoxPolicy
- >::apply(total, collection, index_vector, 0, min_elements, visitor, box_visitor);
+ >::apply(total, collection, index_vector, 0, min_elements,
+ visitor, box_visitor);
         }
         else
         {
- typedef typename boost::range_iterator<InputCollection const>::type iterator_type;
- for(iterator_type it1 = boost::begin(collection); it1 != boost::end(collection); ++it1)
+ typedef typename boost::range_iterator
+ <
+ InputCollection const
+ >::type iterator_type;
+ for(iterator_type it1 = boost::begin(collection);
+ it1 != boost::end(collection);
+ ++it1)
             {
                 iterator_type it2 = it1;
                 for(++it2; it2 != boost::end(collection); ++it2)
@@ -351,7 +381,8 @@
                 VisitBoxPolicy box_visitor = visit_no_policy()
                 )
     {
- if (boost::size(collection1) > min_elements && boost::size(collection2) > min_elements)
+ if (boost::size(collection1) > min_elements
+ && boost::size(collection2) > min_elements)
         {
             index_vector_type index_vector1, index_vector2;
             Box total;
@@ -369,10 +400,17 @@
         }
         else
         {
- typedef typename boost::range_iterator<InputCollection const>::type iterator_type;
- for(iterator_type it1 = boost::begin(collection1); it1 != boost::end(collection1); ++it1)
+ typedef typename boost::range_iterator
+ <
+ InputCollection const
+ >::type iterator_type;
+ for(iterator_type it1 = boost::begin(collection1);
+ it1 != boost::end(collection1);
+ ++it1)
             {
- for(iterator_type it2 = boost::begin(collection2); it2 != boost::end(collection2); ++it2)
+ for(iterator_type it2 = boost::begin(collection2);
+ it2 != boost::end(collection2);
+ ++it2)
                 {
                     visitor.apply(*it1, *it2);
                 }
@@ -382,8 +420,6 @@
 
 };
 
-
 }} // namespace boost::geometry
 
-
-#endif // BOOST_GEOMETRY_ALGORITHMS_DETAIL_RING_IDENTIFIER_HPP
+#endif // BOOST_GEOMETRY_ALGORITHMS_DETAIL_PARTITION_HPP

Modified: branches/quickbook-dev/boost/geometry/algorithms/detail/point_on_border.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/detail/point_on_border.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/detail/point_on_border.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/algorithms/detail/ring_identifier.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/detail/ring_identifier.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/detail/ring_identifier.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/algorithms/detail/sections/range_by_section.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/detail/sections/range_by_section.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/detail/sections/range_by_section.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
@@ -36,7 +36,7 @@
 template <typename Range, typename Section>
 struct full_section_range
 {
- static inline Range const& apply(Range const& range, Section const& section)
+ static inline Range const& apply(Range const& range, Section const& )
     {
         return range;
     }

Modified: branches/quickbook-dev/boost/geometry/algorithms/detail/sections/sectionalize.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/detail/sections/sectionalize.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/detail/sections/sectionalize.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/algorithms/difference.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/difference.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/difference.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/algorithms/disjoint.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/disjoint.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/disjoint.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/algorithms/distance.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/distance.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/distance.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
@@ -25,6 +25,7 @@
 #include <boost/geometry/core/tag_cast.hpp>
 
 #include <boost/geometry/algorithms/not_implemented.hpp>
+#include <boost/geometry/algorithms/detail/throw_on_empty_input.hpp>
 
 #include <boost/geometry/geometries/segment.hpp>
 #include <boost/geometry/geometries/concepts/check.hpp>
@@ -63,7 +64,7 @@
 struct point_to_segment
 {
     static inline typename return_type<Strategy>::type apply(Point const& point,
- Segment const& segment, Strategy const& strategy)
+ Segment const& segment, Strategy const& )
     {
         typename strategy::distance::services::default_strategy
             <
@@ -549,6 +550,9 @@
 {
     concept::check<Geometry1 const>();
     concept::check<Geometry2 const>();
+
+ detail::throw_on_empty_input(geometry1);
+ detail::throw_on_empty_input(geometry2);
 
     return dispatch::distance
                <

Modified: branches/quickbook-dev/boost/geometry/algorithms/envelope.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/envelope.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/envelope.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/algorithms/equals.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/equals.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/equals.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/algorithms/expand.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/expand.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/expand.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/algorithms/for_each.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/for_each.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/for_each.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
@@ -55,8 +55,10 @@
 struct fe_point_per_segment
 {
     static inline Functor apply(
- typename add_const_if_c<IsConst, Point>::type& point, Functor f)
+ typename add_const_if_c<IsConst, Point>::type& , Functor f)
     {
+ // TODO: if non-const, we should extract the points from the segment
+ // and call the functor on those two points
         return f;
     }
 };

Modified: branches/quickbook-dev/boost/geometry/algorithms/intersection.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/intersection.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/intersection.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/algorithms/intersects.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/intersects.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/intersects.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/algorithms/length.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/length.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/length.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
@@ -28,6 +28,7 @@
 
 #include <boost/geometry/algorithms/assign.hpp>
 #include <boost/geometry/algorithms/detail/calculate_null.hpp>
+#include <boost/geometry/algorithms/detail/throw_on_empty_input.hpp>
 #include <boost/geometry/views/closeable_view.hpp>
 #include <boost/geometry/strategies/distance.hpp>
 #include <boost/geometry/strategies/default_length_result.hpp>
@@ -151,6 +152,8 @@
 {
     concept::check<Geometry const>();
 
+ detail::throw_on_empty_input(geometry);
+
     typedef typename strategy::distance::services::default_strategy
         <
             point_tag, typename point_type<Geometry>::type
@@ -185,6 +188,8 @@
 {
     concept::check<Geometry const>();
 
+ detail::throw_on_empty_input(geometry);
+
     return dispatch::length
         <
             typename tag<Geometry>::type,

Modified: branches/quickbook-dev/boost/geometry/algorithms/make.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/make.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/make.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/algorithms/not_implemented.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/not_implemented.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/not_implemented.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/algorithms/num_geometries.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/num_geometries.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/num_geometries.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/algorithms/num_interior_rings.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/num_interior_rings.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/num_interior_rings.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/algorithms/num_points.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/num_points.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/num_points.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/algorithms/overlaps.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/overlaps.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/overlaps.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/algorithms/perimeter.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/perimeter.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/perimeter.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
@@ -22,6 +22,7 @@
 #include <boost/geometry/algorithms/length.hpp>
 #include <boost/geometry/algorithms/detail/calculate_null.hpp>
 #include <boost/geometry/algorithms/detail/calculate_sum.hpp>
+#include <boost/geometry/algorithms/detail/throw_on_empty_input.hpp>
 
 
 namespace boost { namespace geometry
@@ -97,6 +98,8 @@
             point_tag, point_type
>::type strategy_type;
 
+ detail::throw_on_empty_input(geometry);
+
     return dispatch::perimeter
         <
             typename tag<Geometry>::type,
@@ -125,6 +128,8 @@
 {
     concept::check<Geometry const>();
 
+ detail::throw_on_empty_input(geometry);
+
     return dispatch::perimeter
         <
             typename tag<Geometry>::type,

Modified: branches/quickbook-dev/boost/geometry/algorithms/reverse.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/reverse.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/reverse.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/algorithms/simplify.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/simplify.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/simplify.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
@@ -67,7 +67,7 @@
 {
     template <typename Distance>
     static inline void apply(Range const& range, Range& out,
- Distance const& max_distance, Strategy const& strategy)
+ Distance const& , Strategy const& )
     {
         std::copy
             (
@@ -179,7 +179,7 @@
 {
     template <typename Distance>
     static inline void apply(Point const& point, Point& out,
- Distance const& max_distance, Strategy const& strategy)
+ Distance const& , Strategy const& )
     {
         geometry::convert(point, out);
     }

Modified: branches/quickbook-dev/boost/geometry/algorithms/sym_difference.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/sym_difference.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/sym_difference.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/algorithms/transform.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/transform.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/transform.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/algorithms/union.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/union.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/union.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/algorithms/unique.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/unique.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/unique.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/algorithms/within.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/algorithms/within.hpp (original)
+++ branches/quickbook-dev/boost/geometry/algorithms/within.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/arithmetic/arithmetic.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/arithmetic/arithmetic.hpp (original)
+++ branches/quickbook-dev/boost/geometry/arithmetic/arithmetic.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2008-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2008-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/arithmetic/dot_product.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/arithmetic/dot_product.hpp (original)
+++ branches/quickbook-dev/boost/geometry/arithmetic/dot_product.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2008-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2008-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/core/access.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/core/access.hpp (original)
+++ branches/quickbook-dev/boost/geometry/core/access.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2008-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2008-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/core/closure.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/core/closure.hpp (original)
+++ branches/quickbook-dev/boost/geometry/core/closure.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/core/coordinate_dimension.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/core/coordinate_dimension.hpp (original)
+++ branches/quickbook-dev/boost/geometry/core/coordinate_dimension.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2008-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2008-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/core/coordinate_system.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/core/coordinate_system.hpp (original)
+++ branches/quickbook-dev/boost/geometry/core/coordinate_system.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2008-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2008-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/core/coordinate_type.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/core/coordinate_type.hpp (original)
+++ branches/quickbook-dev/boost/geometry/core/coordinate_type.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2008-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2008-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/core/cs.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/core/cs.hpp (original)
+++ branches/quickbook-dev/boost/geometry/core/cs.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/core/exception.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/core/exception.hpp (original)
+++ branches/quickbook-dev/boost/geometry/core/exception.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
@@ -29,6 +29,32 @@
 {};
 
 
+/*!
+\brief Empty Input Exception
+\ingroup core
+\details The empty_input_exception is thrown if free functions, e.g. distance,
+ are called with empty geometries, e.g. a linestring
+ without points, a polygon without points, an empty multi-geometry.
+\qbk{
+[heading See also]
+\* [link geometry.reference.algorithms.area the area function]
+\* [link geometry.reference.algorithms.distance the distance function]
+\* [link geometry.reference.algorithms.length the length function]
+}
+ */
+class empty_input_exception : public geometry::exception
+{
+public:
+
+ inline empty_input_exception() {}
+
+ virtual char const* what() const throw()
+ {
+ return "Boost.Geometry Empty-Input exception";
+ }
+};
+
+
 }} // namespace boost::geometry
 
 #endif // BOOST_GEOMETRY_CORE_EXCEPTION_HPP

Modified: branches/quickbook-dev/boost/geometry/core/exterior_ring.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/core/exterior_ring.hpp (original)
+++ branches/quickbook-dev/boost/geometry/core/exterior_ring.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/core/geometry_id.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/core/geometry_id.hpp (original)
+++ branches/quickbook-dev/boost/geometry/core/geometry_id.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/core/interior_rings.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/core/interior_rings.hpp (original)
+++ branches/quickbook-dev/boost/geometry/core/interior_rings.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/core/interior_type.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/core/interior_type.hpp (original)
+++ branches/quickbook-dev/boost/geometry/core/interior_type.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/core/is_areal.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/core/is_areal.hpp (original)
+++ branches/quickbook-dev/boost/geometry/core/is_areal.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/core/mutable_range.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/core/mutable_range.hpp (original)
+++ branches/quickbook-dev/boost/geometry/core/mutable_range.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/core/point_order.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/core/point_order.hpp (original)
+++ branches/quickbook-dev/boost/geometry/core/point_order.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/core/point_type.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/core/point_type.hpp (original)
+++ branches/quickbook-dev/boost/geometry/core/point_type.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/core/radian_access.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/core/radian_access.hpp (original)
+++ branches/quickbook-dev/boost/geometry/core/radian_access.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/core/reverse_dispatch.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/core/reverse_dispatch.hpp (original)
+++ branches/quickbook-dev/boost/geometry/core/reverse_dispatch.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/core/ring_type.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/core/ring_type.hpp (original)
+++ branches/quickbook-dev/boost/geometry/core/ring_type.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/core/tag.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/core/tag.hpp (original)
+++ branches/quickbook-dev/boost/geometry/core/tag.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/core/tag_cast.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/core/tag_cast.hpp (original)
+++ branches/quickbook-dev/boost/geometry/core/tag_cast.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/core/tags.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/core/tags.hpp (original)
+++ branches/quickbook-dev/boost/geometry/core/tags.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/core/topological_dimension.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/core/topological_dimension.hpp (original)
+++ branches/quickbook-dev/boost/geometry/core/topological_dimension.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/extensions/algorithms/buffer/intersecting_inserter.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/algorithms/buffer/intersecting_inserter.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/algorithms/buffer/intersecting_inserter.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/extensions/algorithms/buffer/line_line_intersection.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/algorithms/buffer/line_line_intersection.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/algorithms/buffer/line_line_intersection.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/extensions/algorithms/buffer/linestring_buffer.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/algorithms/buffer/linestring_buffer.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/algorithms/buffer/linestring_buffer.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/extensions/algorithms/buffer/polygon_buffer.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/algorithms/buffer/polygon_buffer.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/algorithms/buffer/polygon_buffer.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -17,6 +17,7 @@
 #include <boost/typeof/typeof.hpp>
 
 #include <boost/geometry/core/point_type.hpp>
+#include <boost/geometry/core/interior_rings.hpp>
 
 #include <boost/geometry/extensions/strategies/buffer_side.hpp>
 #include <boost/geometry/extensions/algorithms/buffer/line_line_intersection.hpp>
@@ -50,7 +51,7 @@
 #endif
             )
     {
- typedef segment<output_point_type const> segment_type;
+ typedef model::referring_segment<output_point_type const> segment_type;
         typedef typename boost::range_iterator
             <
                 RingInput const
@@ -205,9 +206,9 @@
 #endif
                 );
 
- typename interior_return_type<Polygon const>::type rings
+ typename interior_return_type<PolygonInput const>::type rings
                     = interior_rings(polygon);
- for (BOOST_AUTO_TPL(it, boost::begin(rings); it != boost::end(rings); ++it)
+ for (BOOST_AUTO_TPL(it, boost::begin(rings)); it != boost::end(rings); ++it)
         {
             output_ring_type ring;
             policy::apply(*it, ring, distance, join_strategy

Modified: branches/quickbook-dev/boost/geometry/extensions/algorithms/buffer/remove_within_distance.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/algorithms/buffer/remove_within_distance.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/algorithms/buffer/remove_within_distance.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/extensions/algorithms/buffer/sectionalizing_buffer.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/algorithms/buffer/sectionalizing_buffer.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/algorithms/buffer/sectionalizing_buffer.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/extensions/algorithms/buffer/segmenting_buffer.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/algorithms/buffer/segmenting_buffer.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/algorithms/buffer/segmenting_buffer.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -92,7 +92,7 @@
     typedef typename point_type<GeometryOut>::type point_type;
     typedef typename coordinate_type<point_type>::type coordinate_type;
     typedef coordinate_type distance_type; // TODO promote to FP
- typedef segment<point_type const> segment_type;
+ typedef model::segment<point_type const> segment_type;
     typedef typename geometry::ring_type<GeometryOut>::type ring_type;
     typedef typename strategy::side::services::default_strategy<typename cs_tag<point_type>::type>::type side;
 

Modified: branches/quickbook-dev/boost/geometry/extensions/algorithms/buffer/splitting_buffer.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/algorithms/buffer/splitting_buffer.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/algorithms/buffer/splitting_buffer.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/extensions/algorithms/buffer/traversing_buffer.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/algorithms/buffer/traversing_buffer.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/algorithms/buffer/traversing_buffer.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/extensions/algorithms/connect.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/algorithms/connect.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/algorithms/connect.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/extensions/algorithms/detail/overlay/dissolver.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/algorithms/detail/overlay/dissolver.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/algorithms/detail/overlay/dissolver.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/extensions/algorithms/detail/overlay/msm_state.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/algorithms/detail/overlay/msm_state.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/algorithms/detail/overlay/msm_state.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/extensions/algorithms/detail/overlay/split_rings.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/algorithms/detail/overlay/split_rings.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/algorithms/detail/overlay/split_rings.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/extensions/algorithms/dissolve.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/algorithms/dissolve.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/algorithms/dissolve.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/extensions/algorithms/mark_spikes.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/algorithms/mark_spikes.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/algorithms/mark_spikes.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2010-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2010-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/extensions/algorithms/midpoints.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/algorithms/midpoints.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/algorithms/midpoints.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/extensions/algorithms/offset.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/algorithms/offset.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/algorithms/offset.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/extensions/algorithms/parse.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/algorithms/parse.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/algorithms/parse.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/extensions/algorithms/point_on_line.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/algorithms/point_on_line.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/algorithms/point_on_line.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/extensions/algorithms/remove_holes_if.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/algorithms/remove_holes_if.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/algorithms/remove_holes_if.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/extensions/algorithms/remove_marked.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/algorithms/remove_marked.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/algorithms/remove_marked.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/extensions/algorithms/remove_spikes.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/algorithms/remove_spikes.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/algorithms/remove_spikes.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/extensions/algorithms/selected.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/algorithms/selected.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/algorithms/selected.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/extensions/arithmetic/cross_product.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/arithmetic/cross_product.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/arithmetic/cross_product.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/extensions/astronomy/core/cs.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/astronomy/core/cs.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/astronomy/core/cs.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/extensions/contrib/ttmath_stub.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/contrib/ttmath_stub.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/contrib/ttmath_stub.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/extensions/geometries/quantity_point.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/geometries/quantity_point.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/geometries/quantity_point.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/extensions/gis/geographic/core/cs.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/gis/geographic/core/cs.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/gis/geographic/core/cs.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/extensions/gis/geographic/detail/ellipsoid.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/gis/geographic/detail/ellipsoid.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/gis/geographic/detail/ellipsoid.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/extensions/gis/geographic/strategies/andoyer.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/gis/geographic/strategies/andoyer.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/gis/geographic/strategies/andoyer.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/extensions/gis/geographic/strategies/area_huiller_earth.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/gis/geographic/strategies/area_huiller_earth.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/gis/geographic/strategies/area_huiller_earth.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/extensions/gis/geographic/strategies/distance_cross_track.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/gis/geographic/strategies/distance_cross_track.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/gis/geographic/strategies/distance_cross_track.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/extensions/gis/geographic/strategies/dms_parser.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/gis/geographic/strategies/dms_parser.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/gis/geographic/strategies/dms_parser.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/extensions/gis/geographic/strategies/vincenty.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/gis/geographic/strategies/vincenty.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/gis/geographic/strategies/vincenty.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/extensions/gis/io/shapelib/dbf_write_attribute.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/gis/io/shapelib/dbf_write_attribute.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/gis/io/shapelib/dbf_write_attribute.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/extensions/gis/io/shapelib/shape_creator.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/gis/io/shapelib/shape_creator.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/gis/io/shapelib/shape_creator.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/extensions/gis/io/shapelib/shape_reader.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/gis/io/shapelib/shape_reader.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/gis/io/shapelib/shape_reader.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/extensions/gis/io/shapelib/shp_create_object.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/gis/io/shapelib/shp_create_object.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/gis/io/shapelib/shp_create_object.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/extensions/gis/io/shapelib/shp_create_object_multi.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/gis/io/shapelib/shp_create_object_multi.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/gis/io/shapelib/shp_create_object_multi.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/extensions/gis/io/shapelib/shp_read_object.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/gis/io/shapelib/shp_read_object.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/gis/io/shapelib/shp_read_object.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/extensions/gis/io/veshape/write_veshape.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/gis/io/veshape/write_veshape.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/gis/io/veshape/write_veshape.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/extensions/gis/io/wkb/detail/endian.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/gis/io/wkb/detail/endian.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/gis/io/wkb/detail/endian.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/extensions/gis/io/wkb/detail/ogc.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/gis/io/wkb/detail/ogc.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/gis/io/wkb/detail/ogc.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/extensions/gis/io/wkb/detail/parser.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/gis/io/wkb/detail/parser.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/gis/io/wkb/detail/parser.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/extensions/gis/io/wkb/read_wkb.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/gis/io/wkb/read_wkb.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/gis/io/wkb/read_wkb.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/extensions/gis/io/wkb/utility.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/gis/io/wkb/utility.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/gis/io/wkb/utility.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/extensions/gis/latlong/detail/graticule.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/gis/latlong/detail/graticule.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/gis/latlong/detail/graticule.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/extensions/gis/latlong/latlong.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/gis/latlong/latlong.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/gis/latlong/latlong.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/extensions/gis/latlong/point_ll.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/gis/latlong/point_ll.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/gis/latlong/point_ll.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/extensions/gis/projections/epsg.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/gis/projections/epsg.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/gis/projections/epsg.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2008-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/extensions/gis/projections/epsg_traits.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/gis/projections/epsg_traits.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/gis/projections/epsg_traits.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2008-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/extensions/gis/projections/factory.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/gis/projections/factory.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/gis/projections/factory.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2008-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/aasincos.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/aasincos.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/aasincos.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // This file is manually converted from PROJ4
 
-// Copyright (c) 2008-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/adjlon.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/adjlon.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/adjlon.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // This file is manually converted from PROJ4
 
-// Copyright (c) 2008-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/base_dynamic.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/base_dynamic.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/base_dynamic.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/base_static.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/base_static.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/base_static.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/factory_entry.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/factory_entry.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/factory_entry.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/function_overloads.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/function_overloads.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/function_overloads.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/pj_auth.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/pj_auth.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/pj_auth.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // This file is manually converted from PROJ4
 
-// Copyright (c) 2008-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/pj_datum_set.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/pj_datum_set.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/pj_datum_set.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // This file is manually converted from PROJ4
 
-// Copyright (c) 2008-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/pj_datums.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/pj_datums.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/pj_datums.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // This file is manually converted from PROJ4
 
-// Copyright (c) 2008-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/pj_ell_set.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/pj_ell_set.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/pj_ell_set.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // This file is manually converted from PROJ4
 
-// Copyright (c) 2008-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/pj_ellps.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/pj_ellps.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/pj_ellps.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // This file is manually converted from PROJ4
 
-// Copyright (c) 2008-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/pj_fwd.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/pj_fwd.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/pj_fwd.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // This file is manually converted from PROJ4
 
-// Copyright (c) 2008-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/pj_gauss.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/pj_gauss.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/pj_gauss.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // This file is manually converted from PROJ4
 
-// Copyright (c) 2008-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/pj_init.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/pj_init.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/pj_init.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // This file is manually converted from PROJ4
 
-// Copyright (c) 2008-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/pj_inv.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/pj_inv.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/pj_inv.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // This file is manually converted from PROJ4
 
-// Copyright (c) 2008-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/pj_mlfn.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/pj_mlfn.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/pj_mlfn.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // This file is manually converted from PROJ4
 
-// Copyright (c) 2008-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/pj_msfn.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/pj_msfn.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/pj_msfn.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // This file is manually converted from PROJ4
 
-// Copyright (c) 2008-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/pj_param.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/pj_param.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/pj_param.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // This file is manually converted from PROJ4
 
-// Copyright (c) 2008-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/pj_phi2.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/pj_phi2.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/pj_phi2.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // This file is manually converted from PROJ4
 
-// Copyright (c) 2008-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/pj_qsfn.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/pj_qsfn.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/pj_qsfn.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // This file is manually converted from PROJ4
 
-// Copyright (c) 2008-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/pj_tsfn.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/pj_tsfn.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/pj_tsfn.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // This file is manually converted from PROJ4
 
-// Copyright (c) 2008-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/pj_units.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/pj_units.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/pj_units.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // This file is manually converted from PROJ4
 
-// Copyright (c) 2008-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/pj_zpoly1.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/pj_zpoly1.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/pj_zpoly1.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // This file is manually converted from PROJ4
 
-// Copyright (c) 2008-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/proj_mdist.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/proj_mdist.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/proj_mdist.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // This file is manually converted from PROJ4
 
-// Copyright (c) 2008-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/projects.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/projects.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/gis/projections/impl/projects.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // This file is manually converted from PROJ4 (projects.h)
 
-// Copyright (c) 2008-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/extensions/gis/projections/parameters.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/gis/projections/parameters.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/gis/projections/parameters.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2008-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/extensions/gis/projections/project_inverse_transformer.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/gis/projections/project_inverse_transformer.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/gis/projections/project_inverse_transformer.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2008-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/extensions/gis/projections/project_transformer.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/gis/projections/project_transformer.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/gis/projections/project_transformer.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2008-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/extensions/gis/projections/projection.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/gis/projections/projection.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/gis/projections/projection.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2008-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/extensions/io/svg/svg_mapper.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/io/svg/svg_mapper.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/io/svg/svg_mapper.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/extensions/io/svg/write_svg.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/io/svg/write_svg.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/io/svg/write_svg.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/extensions/io/svg/write_svg_multi.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/io/svg/write_svg_multi.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/io/svg/write_svg_multi.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/extensions/iterators/circular_iterator.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/iterators/circular_iterator.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/iterators/circular_iterator.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/extensions/iterators/section_iterators.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/iterators/section_iterators.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/iterators/section_iterators.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/extensions/iterators/segment_returning_iterator.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/iterators/segment_returning_iterator.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/iterators/segment_returning_iterator.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
-// Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
+// Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/extensions/multi/algorithms/dissolve.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/multi/algorithms/dissolve.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/multi/algorithms/dissolve.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/extensions/nsphere/algorithms/append.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/nsphere/algorithms/append.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/nsphere/algorithms/append.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/extensions/nsphere/algorithms/area.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/nsphere/algorithms/area.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/nsphere/algorithms/area.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/extensions/nsphere/algorithms/assign.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/nsphere/algorithms/assign.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/nsphere/algorithms/assign.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/extensions/nsphere/algorithms/clear.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/nsphere/algorithms/clear.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/nsphere/algorithms/clear.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/extensions/nsphere/algorithms/envelope.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/nsphere/algorithms/envelope.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/nsphere/algorithms/envelope.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/extensions/nsphere/algorithms/num_points.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/nsphere/algorithms/num_points.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/nsphere/algorithms/num_points.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/extensions/nsphere/algorithms/within.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/nsphere/algorithms/within.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/nsphere/algorithms/within.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/extensions/nsphere/core/access.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/nsphere/core/access.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/nsphere/core/access.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/extensions/nsphere/core/geometry_id.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/nsphere/core/geometry_id.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/nsphere/core/geometry_id.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/extensions/nsphere/core/radius.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/nsphere/core/radius.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/nsphere/core/radius.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/extensions/nsphere/core/replace_point_type.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/nsphere/core/replace_point_type.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/nsphere/core/replace_point_type.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/extensions/nsphere/core/tags.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/nsphere/core/tags.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/nsphere/core/tags.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/extensions/nsphere/core/topological_dimension.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/nsphere/core/topological_dimension.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/nsphere/core/topological_dimension.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/extensions/nsphere/geometries/concepts/check.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/nsphere/geometries/concepts/check.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/nsphere/geometries/concepts/check.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/extensions/nsphere/geometries/concepts/nsphere_concept.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/nsphere/geometries/concepts/nsphere_concept.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/nsphere/geometries/concepts/nsphere_concept.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/extensions/nsphere/geometries/nsphere.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/nsphere/geometries/nsphere.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/nsphere/geometries/nsphere.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/extensions/nsphere/nsphere.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/nsphere/nsphere.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/nsphere/nsphere.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/extensions/strategies/buffer.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/strategies/buffer.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/strategies/buffer.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
@@ -25,7 +25,9 @@
 #include <boost/geometry/extensions/strategies/buffer_side.hpp>
 
 
-#define BOOST_GEOMETRY_BUFFER_NO_HELPER_POINTS
+// This should NOT be defined, it omits essential points in concavities.
+// Code is commented now
+// #define BOOST_GEOMETRY_BUFFER_NO_HELPER_POINTS
 
 
 namespace boost { namespace geometry
@@ -136,11 +138,11 @@
         if (side::apply(perp1, ip, perp2) == signum)
         {
 
-#ifdef BOOST_GEOMETRY_BUFFER_NO_HELPER_POINTS
+//#ifdef BOOST_GEOMETRY_BUFFER_NO_HELPER_POINTS
             // Because perp1 crosses perp2 at IP, it is not necessary to
             // include IP
- buffered.push_back(ip);
-#else
+ //buffered.push_back(ip);
+//#else
             // If it is concave (corner to left), add helperline
             // The helper-line IS essential for buffering holes. Without,
             // holes might be generated, while they should NOT be there.
@@ -148,7 +150,7 @@
             // We might consider to make it optional (because more efficient)
             buffered.push_back(perp1);
             buffered.push_back(perp2);
-#endif
+//#endif
         }
         else
         {
@@ -312,13 +314,13 @@
 
         if (side::apply(perp1, ip, perp2) == signum)
         {
-#ifdef BOOST_GEOMETRY_BUFFER_NO_HELPER_POINTS
- buffered.push_back(ip);
-#else
+//#ifdef BOOST_GEOMETRY_BUFFER_NO_HELPER_POINTS
+// buffered.push_back(ip);
+//#else
             // If it is concave (corner to left), add helperline
             buffered.push_back(perp1);
             buffered.push_back(perp2);
-#endif
+//#endif
         }
         else
         {

Modified: branches/quickbook-dev/boost/geometry/extensions/strategies/buffer_join_round.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/strategies/buffer_join_round.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/strategies/buffer_join_round.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/extensions/strategies/buffer_side.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/strategies/buffer_side.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/strategies/buffer_side.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/extensions/strategies/parse.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/strategies/parse.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/strategies/parse.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/extensions/util/get_cs_as_radian.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/util/get_cs_as_radian.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/util/get_cs_as_radian.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/extensions/util/replace_point_type.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/util/replace_point_type.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/util/replace_point_type.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/extensions/views/enveloped_view.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/views/enveloped_view.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/views/enveloped_view.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Range (aka GGL, Generic Range Library)
 //
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/extensions/views/section_view.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/extensions/views/section_view.hpp (original)
+++ branches/quickbook-dev/boost/geometry/extensions/views/section_view.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/geometries/adapted/boost_array.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/geometries/adapted/boost_array.hpp (original)
+++ branches/quickbook-dev/boost/geometry/geometries/adapted/boost_array.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
 // Copyright (c) 2010 Alfredo Correa
-// Copyright (c) 2010-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2010-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/geometries/adapted/boost_fusion.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/geometries/adapted/boost_fusion.hpp (original)
+++ branches/quickbook-dev/boost/geometry/geometries/adapted/boost_fusion.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2011 Akira Takahashi
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Akira Takahashi
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/geometries/adapted/boost_polygon.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/geometries/adapted/boost_polygon.hpp (original)
+++ branches/quickbook-dev/boost/geometry/geometries/adapted/boost_polygon.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2010-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2010-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/geometries/adapted/boost_polygon/box.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/geometries/adapted/boost_polygon/box.hpp (original)
+++ branches/quickbook-dev/boost/geometry/geometries/adapted/boost_polygon/box.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2010-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2010-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/geometries/adapted/boost_polygon/hole_iterator.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/geometries/adapted/boost_polygon/hole_iterator.hpp (original)
+++ branches/quickbook-dev/boost/geometry/geometries/adapted/boost_polygon/hole_iterator.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2010-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2010-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/geometries/adapted/boost_polygon/holes_proxy.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/geometries/adapted/boost_polygon/holes_proxy.hpp (original)
+++ branches/quickbook-dev/boost/geometry/geometries/adapted/boost_polygon/holes_proxy.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2010-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2010-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/geometries/adapted/boost_polygon/point.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/geometries/adapted/boost_polygon/point.hpp (original)
+++ branches/quickbook-dev/boost/geometry/geometries/adapted/boost_polygon/point.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2010-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2010-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/geometries/adapted/boost_polygon/polygon.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/geometries/adapted/boost_polygon/polygon.hpp (original)
+++ branches/quickbook-dev/boost/geometry/geometries/adapted/boost_polygon/polygon.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2010-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2010-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/geometries/adapted/boost_polygon/ring.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/geometries/adapted/boost_polygon/ring.hpp (original)
+++ branches/quickbook-dev/boost/geometry/geometries/adapted/boost_polygon/ring.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2010-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2010-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/geometries/adapted/boost_polygon/ring_proxy.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/geometries/adapted/boost_polygon/ring_proxy.hpp (original)
+++ branches/quickbook-dev/boost/geometry/geometries/adapted/boost_polygon/ring_proxy.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2010-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2010-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/geometries/adapted/boost_range/adjacent_filtered.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/geometries/adapted/boost_range/adjacent_filtered.hpp (original)
+++ branches/quickbook-dev/boost/geometry/geometries/adapted/boost_range/adjacent_filtered.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2010-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2010-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/geometries/adapted/boost_range/filtered.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/geometries/adapted/boost_range/filtered.hpp (original)
+++ branches/quickbook-dev/boost/geometry/geometries/adapted/boost_range/filtered.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2010-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2010-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/geometries/adapted/boost_range/reversed.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/geometries/adapted/boost_range/reversed.hpp (original)
+++ branches/quickbook-dev/boost/geometry/geometries/adapted/boost_range/reversed.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2010-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2010-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/geometries/adapted/boost_range/sliced.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/geometries/adapted/boost_range/sliced.hpp (original)
+++ branches/quickbook-dev/boost/geometry/geometries/adapted/boost_range/sliced.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2010-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2010-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/geometries/adapted/boost_range/strided.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/geometries/adapted/boost_range/strided.hpp (original)
+++ branches/quickbook-dev/boost/geometry/geometries/adapted/boost_range/strided.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2010-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2010-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/geometries/adapted/boost_range/uniqued.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/geometries/adapted/boost_range/uniqued.hpp (original)
+++ branches/quickbook-dev/boost/geometry/geometries/adapted/boost_range/uniqued.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2010-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2010-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/geometries/adapted/boost_tuple.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/geometries/adapted/boost_tuple.hpp (original)
+++ branches/quickbook-dev/boost/geometry/geometries/adapted/boost_tuple.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2008-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2008-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/geometries/adapted/c_array.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/geometries/adapted/c_array.hpp (original)
+++ branches/quickbook-dev/boost/geometry/geometries/adapted/c_array.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/geometries/adapted/std_pair_as_segment.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/geometries/adapted/std_pair_as_segment.hpp (original)
+++ branches/quickbook-dev/boost/geometry/geometries/adapted/std_pair_as_segment.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2008-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2008-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/geometries/box.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/geometries/box.hpp (original)
+++ branches/quickbook-dev/boost/geometry/geometries/box.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/geometries/concepts/box_concept.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/geometries/concepts/box_concept.hpp (original)
+++ branches/quickbook-dev/boost/geometry/geometries/concepts/box_concept.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2008-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2008-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/geometries/concepts/check.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/geometries/concepts/check.hpp (original)
+++ branches/quickbook-dev/boost/geometry/geometries/concepts/check.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2008-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2008-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/geometries/concepts/linestring_concept.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/geometries/concepts/linestring_concept.hpp (original)
+++ branches/quickbook-dev/boost/geometry/geometries/concepts/linestring_concept.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2008-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2008-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/geometries/concepts/point_concept.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/geometries/concepts/point_concept.hpp (original)
+++ branches/quickbook-dev/boost/geometry/geometries/concepts/point_concept.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 //
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2008-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2008-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/geometries/concepts/polygon_concept.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/geometries/concepts/polygon_concept.hpp (original)
+++ branches/quickbook-dev/boost/geometry/geometries/concepts/polygon_concept.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2008-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2008-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/geometries/concepts/ring_concept.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/geometries/concepts/ring_concept.hpp (original)
+++ branches/quickbook-dev/boost/geometry/geometries/concepts/ring_concept.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2008-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2008-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/geometries/concepts/segment_concept.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/geometries/concepts/segment_concept.hpp (original)
+++ branches/quickbook-dev/boost/geometry/geometries/concepts/segment_concept.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2008-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2008-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/geometries/geometries.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/geometries/geometries.hpp (original)
+++ branches/quickbook-dev/boost/geometry/geometries/geometries.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/geometries/linestring.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/geometries/linestring.hpp (original)
+++ branches/quickbook-dev/boost/geometry/geometries/linestring.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/geometries/point.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/geometries/point.hpp (original)
+++ branches/quickbook-dev/boost/geometry/geometries/point.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/geometries/point_xy.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/geometries/point_xy.hpp (original)
+++ branches/quickbook-dev/boost/geometry/geometries/point_xy.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/geometries/polygon.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/geometries/polygon.hpp (original)
+++ branches/quickbook-dev/boost/geometry/geometries/polygon.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/geometries/register/box.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/geometries/register/box.hpp (original)
+++ branches/quickbook-dev/boost/geometry/geometries/register/box.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/geometries/register/linestring.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/geometries/register/linestring.hpp (original)
+++ branches/quickbook-dev/boost/geometry/geometries/register/linestring.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/geometries/register/point.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/geometries/register/point.hpp (original)
+++ branches/quickbook-dev/boost/geometry/geometries/register/point.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/geometries/register/ring.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/geometries/register/ring.hpp (original)
+++ branches/quickbook-dev/boost/geometry/geometries/register/ring.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/geometries/register/segment.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/geometries/register/segment.hpp (original)
+++ branches/quickbook-dev/boost/geometry/geometries/register/segment.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/geometries/ring.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/geometries/ring.hpp (original)
+++ branches/quickbook-dev/boost/geometry/geometries/ring.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/geometries/segment.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/geometries/segment.hpp (original)
+++ branches/quickbook-dev/boost/geometry/geometries/segment.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/geometry.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/geometry.hpp (original)
+++ branches/quickbook-dev/boost/geometry/geometry.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
@@ -42,6 +42,7 @@
 #include <boost/geometry/algorithms/clear.hpp>
 #include <boost/geometry/algorithms/convex_hull.hpp>
 #include <boost/geometry/algorithms/correct.hpp>
+#include <boost/geometry/algorithms/covered_by.hpp>
 #include <boost/geometry/algorithms/comparable_distance.hpp>
 #include <boost/geometry/algorithms/difference.hpp>
 #include <boost/geometry/algorithms/distance.hpp>

Modified: branches/quickbook-dev/boost/geometry/io/dsv/write.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/io/dsv/write.hpp (original)
+++ branches/quickbook-dev/boost/geometry/io/dsv/write.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/io/io.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/io/io.hpp (original)
+++ branches/quickbook-dev/boost/geometry/io/io.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/io/wkt/detail/prefix.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/io/wkt/detail/prefix.hpp (original)
+++ branches/quickbook-dev/boost/geometry/io/wkt/detail/prefix.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/io/wkt/detail/wkt_multi.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/io/wkt/detail/wkt_multi.hpp (original)
+++ branches/quickbook-dev/boost/geometry/io/wkt/detail/wkt_multi.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/io/wkt/iomanip.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/io/wkt/iomanip.hpp (original)
+++ branches/quickbook-dev/boost/geometry/io/wkt/iomanip.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/io/wkt/read.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/io/wkt/read.hpp (original)
+++ branches/quickbook-dev/boost/geometry/io/wkt/read.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/io/wkt/wkt.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/io/wkt/wkt.hpp (original)
+++ branches/quickbook-dev/boost/geometry/io/wkt/wkt.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/io/wkt/write.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/io/wkt/write.hpp (original)
+++ branches/quickbook-dev/boost/geometry/io/wkt/write.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/iterators/base.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/iterators/base.hpp (original)
+++ branches/quickbook-dev/boost/geometry/iterators/base.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/iterators/closing_iterator.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/iterators/closing_iterator.hpp (original)
+++ branches/quickbook-dev/boost/geometry/iterators/closing_iterator.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/iterators/ever_circling_iterator.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/iterators/ever_circling_iterator.hpp (original)
+++ branches/quickbook-dev/boost/geometry/iterators/ever_circling_iterator.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/multi/algorithms/area.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/multi/algorithms/area.hpp (original)
+++ branches/quickbook-dev/boost/geometry/multi/algorithms/area.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
@@ -20,6 +20,7 @@
 #include <boost/geometry/algorithms/area.hpp>
 #include <boost/geometry/multi/core/point_type.hpp>
 #include <boost/geometry/multi/algorithms/detail/multi_sum.hpp>
+#include <boost/geometry/multi/algorithms/num_points.hpp>
 
 
 namespace boost { namespace geometry

Modified: branches/quickbook-dev/boost/geometry/multi/algorithms/centroid.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/multi/algorithms/centroid.hpp (original)
+++ branches/quickbook-dev/boost/geometry/multi/algorithms/centroid.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/multi/algorithms/clear.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/multi/algorithms/clear.hpp (original)
+++ branches/quickbook-dev/boost/geometry/multi/algorithms/clear.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
@@ -28,7 +28,7 @@
 {
 
 template <typename Geometry>
-struct clear<multi_tag, Geometry>
+struct clear<Geometry, multi_tag>
     : detail::clear::collection_clear<Geometry>
 {};
 

Modified: branches/quickbook-dev/boost/geometry/multi/algorithms/convert.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/multi/algorithms/convert.hpp (original)
+++ branches/quickbook-dev/boost/geometry/multi/algorithms/convert.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/multi/algorithms/correct.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/multi/algorithms/correct.hpp (original)
+++ branches/quickbook-dev/boost/geometry/multi/algorithms/correct.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/multi/algorithms/covered_by.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/multi/algorithms/covered_by.hpp (original)
+++ branches/quickbook-dev/boost/geometry/multi/algorithms/covered_by.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/multi/algorithms/detail/for_each_range.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/multi/algorithms/detail/for_each_range.hpp (original)
+++ branches/quickbook-dev/boost/geometry/multi/algorithms/detail/for_each_range.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/multi/algorithms/detail/modify.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/multi/algorithms/detail/modify.hpp (original)
+++ branches/quickbook-dev/boost/geometry/multi/algorithms/detail/modify.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/multi/algorithms/detail/modify_with_predicate.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/multi/algorithms/detail/modify_with_predicate.hpp (original)
+++ branches/quickbook-dev/boost/geometry/multi/algorithms/detail/modify_with_predicate.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/multi/algorithms/detail/multi_sum.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/multi/algorithms/detail/multi_sum.hpp (original)
+++ branches/quickbook-dev/boost/geometry/multi/algorithms/detail/multi_sum.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/multi/algorithms/detail/overlay/copy_segment_point.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/multi/algorithms/detail/overlay/copy_segment_point.hpp (original)
+++ branches/quickbook-dev/boost/geometry/multi/algorithms/detail/overlay/copy_segment_point.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/multi/algorithms/detail/overlay/copy_segments.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/multi/algorithms/detail/overlay/copy_segments.hpp (original)
+++ branches/quickbook-dev/boost/geometry/multi/algorithms/detail/overlay/copy_segments.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/multi/algorithms/detail/overlay/get_ring.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/multi/algorithms/detail/overlay/get_ring.hpp (original)
+++ branches/quickbook-dev/boost/geometry/multi/algorithms/detail/overlay/get_ring.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/multi/algorithms/detail/overlay/get_turns.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/multi/algorithms/detail/overlay/get_turns.hpp (original)
+++ branches/quickbook-dev/boost/geometry/multi/algorithms/detail/overlay/get_turns.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/multi/algorithms/detail/overlay/select_rings.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/multi/algorithms/detail/overlay/select_rings.hpp (original)
+++ branches/quickbook-dev/boost/geometry/multi/algorithms/detail/overlay/select_rings.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/multi/algorithms/detail/overlay/self_turn_points.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/multi/algorithms/detail/overlay/self_turn_points.hpp (original)
+++ branches/quickbook-dev/boost/geometry/multi/algorithms/detail/overlay/self_turn_points.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/multi/algorithms/detail/point_on_border.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/multi/algorithms/detail/point_on_border.hpp (original)
+++ branches/quickbook-dev/boost/geometry/multi/algorithms/detail/point_on_border.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/multi/algorithms/detail/sections/range_by_section.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/multi/algorithms/detail/sections/range_by_section.hpp (original)
+++ branches/quickbook-dev/boost/geometry/multi/algorithms/detail/sections/range_by_section.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/multi/algorithms/detail/sections/sectionalize.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/multi/algorithms/detail/sections/sectionalize.hpp (original)
+++ branches/quickbook-dev/boost/geometry/multi/algorithms/detail/sections/sectionalize.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/multi/algorithms/distance.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/multi/algorithms/distance.hpp (original)
+++ branches/quickbook-dev/boost/geometry/multi/algorithms/distance.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
@@ -23,6 +23,7 @@
 #include <boost/geometry/multi/core/point_type.hpp>
 
 #include <boost/geometry/algorithms/distance.hpp>
+#include <boost/geometry/multi/algorithms/num_points.hpp>
 #include <boost/geometry/util/select_coordinate_type.hpp>
 
 
@@ -36,6 +37,12 @@
 
 template<typename Geometry, typename MultiGeometry, typename Strategy>
 struct distance_single_to_multi
+ : private dispatch::distance
+ <
+ Geometry,
+ typename range_value<MultiGeometry>::type,
+ Strategy
+ >
 {
     typedef typename strategy::distance::services::return_type<Strategy>::type return_type;
 
@@ -43,19 +50,24 @@
                 MultiGeometry const& multi,
                 Strategy const& strategy)
     {
+ return_type mindist = return_type();
         bool first = true;
- return_type mindist;
 
         for(typename range_iterator<MultiGeometry const>::type it = boost::begin(multi);
                 it != boost::end(multi);
- ++it)
+ ++it, first = false)
         {
- return_type dist = geometry::distance(geometry, *it);
+ return_type dist = dispatch::distance
+ <
+ Geometry,
+ typename range_value<MultiGeometry>::type,
+ Strategy
+ >::apply(geometry, *it, strategy);
+
             if (first || dist < mindist)
             {
                 mindist = dist;
             }
- first = false;
         }
 
         return mindist;
@@ -64,18 +76,24 @@
 
 template<typename Multi1, typename Multi2, typename Strategy>
 struct distance_multi_to_multi
+ : private distance_single_to_multi
+ <
+ typename range_value<Multi1>::type,
+ Multi2,
+ Strategy
+ >
 {
     typedef typename strategy::distance::services::return_type<Strategy>::type return_type;
 
     static inline return_type apply(Multi1 const& multi1,
                 Multi2 const& multi2, Strategy const& strategy)
     {
+ return_type mindist = return_type();
         bool first = true;
- return_type mindist;
 
         for(typename range_iterator<Multi1 const>::type it = boost::begin(multi1);
                 it != boost::end(multi1);
- ++it)
+ ++it, first = false)
         {
             return_type dist = distance_single_to_multi
                 <
@@ -87,7 +105,6 @@
             {
                 mindist = dist;
             }
- first = false;
         }
 
         return mindist;

Modified: branches/quickbook-dev/boost/geometry/multi/algorithms/envelope.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/multi/algorithms/envelope.hpp (original)
+++ branches/quickbook-dev/boost/geometry/multi/algorithms/envelope.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/multi/algorithms/equals.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/multi/algorithms/equals.hpp (original)
+++ branches/quickbook-dev/boost/geometry/multi/algorithms/equals.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/multi/algorithms/for_each.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/multi/algorithms/for_each.hpp (original)
+++ branches/quickbook-dev/boost/geometry/multi/algorithms/for_each.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/multi/algorithms/intersection.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/multi/algorithms/intersection.hpp (original)
+++ branches/quickbook-dev/boost/geometry/multi/algorithms/intersection.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -181,7 +181,7 @@
 struct clip_multi_linestring
 {
     static inline OutputIterator apply(MultiLinestring const& multi_linestring,
- Box const& box, OutputIterator out, Strategy const& strategy)
+ Box const& box, OutputIterator out, Strategy const& )
     {
         typedef typename point_type<LinestringOut>::type point_type;
         strategy::intersection::liang_barsky<Box, point_type> lb_strategy;

Modified: branches/quickbook-dev/boost/geometry/multi/algorithms/length.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/multi/algorithms/length.hpp (original)
+++ branches/quickbook-dev/boost/geometry/multi/algorithms/length.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
@@ -20,6 +20,7 @@
 #include <boost/geometry/algorithms/length.hpp>
 #include <boost/geometry/multi/core/tags.hpp>
 #include <boost/geometry/multi/algorithms/detail/multi_sum.hpp>
+#include <boost/geometry/multi/algorithms/num_points.hpp>
 
 
 namespace boost { namespace geometry

Modified: branches/quickbook-dev/boost/geometry/multi/algorithms/num_geometries.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/multi/algorithms/num_geometries.hpp (original)
+++ branches/quickbook-dev/boost/geometry/multi/algorithms/num_geometries.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/multi/algorithms/num_interior_rings.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/multi/algorithms/num_interior_rings.hpp (original)
+++ branches/quickbook-dev/boost/geometry/multi/algorithms/num_interior_rings.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/multi/algorithms/num_points.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/multi/algorithms/num_points.hpp (original)
+++ branches/quickbook-dev/boost/geometry/multi/algorithms/num_points.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/multi/algorithms/perimeter.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/multi/algorithms/perimeter.hpp (original)
+++ branches/quickbook-dev/boost/geometry/multi/algorithms/perimeter.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
@@ -22,6 +22,7 @@
 #include <boost/geometry/multi/core/tags.hpp>
 
 #include <boost/geometry/multi/algorithms/detail/multi_sum.hpp>
+#include <boost/geometry/multi/algorithms/num_points.hpp>
 
 namespace boost { namespace geometry
 {

Modified: branches/quickbook-dev/boost/geometry/multi/algorithms/reverse.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/multi/algorithms/reverse.hpp (original)
+++ branches/quickbook-dev/boost/geometry/multi/algorithms/reverse.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/multi/algorithms/simplify.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/multi/algorithms/simplify.hpp (original)
+++ branches/quickbook-dev/boost/geometry/multi/algorithms/simplify.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/multi/algorithms/transform.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/multi/algorithms/transform.hpp (original)
+++ branches/quickbook-dev/boost/geometry/multi/algorithms/transform.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/multi/algorithms/unique.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/multi/algorithms/unique.hpp (original)
+++ branches/quickbook-dev/boost/geometry/multi/algorithms/unique.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/multi/algorithms/within.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/multi/algorithms/within.hpp (original)
+++ branches/quickbook-dev/boost/geometry/multi/algorithms/within.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/multi/core/closure.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/multi/core/closure.hpp (original)
+++ branches/quickbook-dev/boost/geometry/multi/core/closure.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/multi/core/geometry_id.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/multi/core/geometry_id.hpp (original)
+++ branches/quickbook-dev/boost/geometry/multi/core/geometry_id.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/multi/core/interior_rings.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/multi/core/interior_rings.hpp (original)
+++ branches/quickbook-dev/boost/geometry/multi/core/interior_rings.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/multi/core/is_areal.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/multi/core/is_areal.hpp (original)
+++ branches/quickbook-dev/boost/geometry/multi/core/is_areal.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/multi/core/point_order.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/multi/core/point_order.hpp (original)
+++ branches/quickbook-dev/boost/geometry/multi/core/point_order.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/multi/core/point_type.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/multi/core/point_type.hpp (original)
+++ branches/quickbook-dev/boost/geometry/multi/core/point_type.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/multi/core/ring_type.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/multi/core/ring_type.hpp (original)
+++ branches/quickbook-dev/boost/geometry/multi/core/ring_type.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/multi/core/tags.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/multi/core/tags.hpp (original)
+++ branches/quickbook-dev/boost/geometry/multi/core/tags.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/multi/core/topological_dimension.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/multi/core/topological_dimension.hpp (original)
+++ branches/quickbook-dev/boost/geometry/multi/core/topological_dimension.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/multi/geometries/concepts/check.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/multi/geometries/concepts/check.hpp (original)
+++ branches/quickbook-dev/boost/geometry/multi/geometries/concepts/check.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/multi/geometries/concepts/multi_linestring_concept.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/multi/geometries/concepts/multi_linestring_concept.hpp (original)
+++ branches/quickbook-dev/boost/geometry/multi/geometries/concepts/multi_linestring_concept.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/multi/geometries/concepts/multi_point_concept.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/multi/geometries/concepts/multi_point_concept.hpp (original)
+++ branches/quickbook-dev/boost/geometry/multi/geometries/concepts/multi_point_concept.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/multi/geometries/concepts/multi_polygon_concept.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/multi/geometries/concepts/multi_polygon_concept.hpp (original)
+++ branches/quickbook-dev/boost/geometry/multi/geometries/concepts/multi_polygon_concept.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/multi/geometries/multi_geometries.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/multi/geometries/multi_geometries.hpp (original)
+++ branches/quickbook-dev/boost/geometry/multi/geometries/multi_geometries.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/multi/geometries/multi_linestring.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/multi/geometries/multi_linestring.hpp (original)
+++ branches/quickbook-dev/boost/geometry/multi/geometries/multi_linestring.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/multi/geometries/multi_point.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/multi/geometries/multi_point.hpp (original)
+++ branches/quickbook-dev/boost/geometry/multi/geometries/multi_point.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/multi/geometries/multi_polygon.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/multi/geometries/multi_polygon.hpp (original)
+++ branches/quickbook-dev/boost/geometry/multi/geometries/multi_polygon.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/multi/geometries/register/multi_linestring.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/multi/geometries/register/multi_linestring.hpp (original)
+++ branches/quickbook-dev/boost/geometry/multi/geometries/register/multi_linestring.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/multi/geometries/register/multi_point.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/multi/geometries/register/multi_point.hpp (original)
+++ branches/quickbook-dev/boost/geometry/multi/geometries/register/multi_point.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/multi/geometries/register/multi_polygon.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/multi/geometries/register/multi_polygon.hpp (original)
+++ branches/quickbook-dev/boost/geometry/multi/geometries/register/multi_polygon.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/multi/io/wkt/detail/prefix.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/multi/io/wkt/detail/prefix.hpp (original)
+++ branches/quickbook-dev/boost/geometry/multi/io/wkt/detail/prefix.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/multi/io/wkt/read.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/multi/io/wkt/read.hpp (original)
+++ branches/quickbook-dev/boost/geometry/multi/io/wkt/read.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/multi/io/wkt/wkt.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/multi/io/wkt/wkt.hpp (original)
+++ branches/quickbook-dev/boost/geometry/multi/io/wkt/wkt.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/multi/io/wkt/write.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/multi/io/wkt/write.hpp (original)
+++ branches/quickbook-dev/boost/geometry/multi/io/wkt/write.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/multi/multi.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/multi/multi.hpp (original)
+++ branches/quickbook-dev/boost/geometry/multi/multi.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
@@ -29,6 +29,7 @@
 #include <boost/geometry/multi/algorithms/area.hpp>
 #include <boost/geometry/multi/algorithms/centroid.hpp>
 #include <boost/geometry/multi/algorithms/clear.hpp>
+#include <boost/geometry/multi/algorithms/convert.hpp>
 #include <boost/geometry/multi/algorithms/correct.hpp>
 #include <boost/geometry/multi/algorithms/distance.hpp>
 #include <boost/geometry/multi/algorithms/envelope.hpp>
@@ -46,6 +47,7 @@
 #include <boost/geometry/multi/algorithms/unique.hpp>
 #include <boost/geometry/multi/algorithms/within.hpp>
 
+#include <boost/geometry/multi/algorithms/detail/for_each_range.hpp>
 #include <boost/geometry/multi/algorithms/detail/modify_with_predicate.hpp>
 #include <boost/geometry/multi/algorithms/detail/multi_sum.hpp>
 
@@ -66,8 +68,8 @@
 #include <boost/geometry/multi/views/detail/range_type.hpp>
 #include <boost/geometry/multi/strategies/cartesian/centroid_average.hpp>
 
-#include <boost/geometry/multi/util/write_dsv.hpp>
-
+#include <boost/geometry/multi/io/dsv/write.hpp>
+#include <boost/geometry/multi/io/wkt/wkt.hpp>
 
 
 #endif // BOOST_GEOMETRY_MULTI_HPP

Modified: branches/quickbook-dev/boost/geometry/multi/strategies/cartesian/centroid_average.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/multi/strategies/cartesian/centroid_average.hpp (original)
+++ branches/quickbook-dev/boost/geometry/multi/strategies/cartesian/centroid_average.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/multi/views/detail/range_type.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/multi/views/detail/range_type.hpp (original)
+++ branches/quickbook-dev/boost/geometry/multi/views/detail/range_type.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/policies/compare.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/policies/compare.hpp (original)
+++ branches/quickbook-dev/boost/geometry/policies/compare.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/policies/relate/de9im.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/policies/relate/de9im.hpp (original)
+++ branches/quickbook-dev/boost/geometry/policies/relate/de9im.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/policies/relate/direction.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/policies/relate/direction.hpp (original)
+++ branches/quickbook-dev/boost/geometry/policies/relate/direction.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -241,7 +241,7 @@
         return return_type('p', false);
     }
 
- static inline return_type error(std::string const& msg)
+ static inline return_type error(std::string const&)
     {
         // msg
         return return_type('d', false);

Modified: branches/quickbook-dev/boost/geometry/policies/relate/intersection_points.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/policies/relate/intersection_points.hpp (original)
+++ branches/quickbook-dev/boost/geometry/policies/relate/intersection_points.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -120,7 +120,7 @@
         return collinear_inside(s, index1, 1 - index1);
     }
 
- static inline return_type collinear_a_in_b(S1 const& s, bool opposite)
+ static inline return_type collinear_a_in_b(S1 const& s, bool)
     {
         return collinear_inside(s);
     }
@@ -144,7 +144,7 @@
         return result;
     }
 
- static inline return_type segment_equal(S1 const& s, bool opposite)
+ static inline return_type segment_equal(S1 const& s, bool)
     {
         return_type result;
         result.count = 2;
@@ -160,7 +160,7 @@
     {
         return return_type();
     }
- static inline return_type error(std::string const& msg)
+ static inline return_type error(std::string const&)
     {
         return return_type();
     }

Modified: branches/quickbook-dev/boost/geometry/policies/relate/intersection_points_determinant.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/policies/relate/intersection_points_determinant.hpp (original)
+++ branches/quickbook-dev/boost/geometry/policies/relate/intersection_points_determinant.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/policies/relate/intersection_points_slope.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/policies/relate/intersection_points_slope.hpp (original)
+++ branches/quickbook-dev/boost/geometry/policies/relate/intersection_points_slope.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/policies/relate/tupled.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/policies/relate/tupled.hpp (original)
+++ branches/quickbook-dev/boost/geometry/policies/relate/tupled.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/strategies/agnostic/hull_graham_andrew.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/strategies/agnostic/hull_graham_andrew.hpp (original)
+++ branches/quickbook-dev/boost/geometry/strategies/agnostic/hull_graham_andrew.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
@@ -67,12 +67,17 @@
     StrategyLess less;
     StrategyGreater greater;
 
- get_extremes()
+ inline get_extremes()
         : first(true)
     {}
 
     inline void apply(InputRange const& range)
     {
+ if (boost::size(range) == 0)
+ {
+ return;
+ }
+
         // First iterate through this range
         // (this two-stage approach avoids many point copies,
         // because iterators are kept in memory. Because iterators are
@@ -414,7 +419,7 @@
 
 #ifndef DOXYGEN_NO_STRATEGY_SPECIALIZATIONS
 template <typename InputGeometry, typename OutputPoint>
-struct strategy_convex_hull<cartesian_tag, InputGeometry, OutputPoint>
+struct strategy_convex_hull<InputGeometry, OutputPoint, cartesian_tag>
 {
     typedef strategy::convex_hull::graham_andrew<InputGeometry, OutputPoint> type;
 };

Modified: branches/quickbook-dev/boost/geometry/strategies/agnostic/point_in_box_by_side.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/strategies/agnostic/point_in_box_by_side.hpp (original)
+++ branches/quickbook-dev/boost/geometry/strategies/agnostic/point_in_box_by_side.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/strategies/agnostic/point_in_poly_oriented_winding.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/strategies/agnostic/point_in_poly_oriented_winding.hpp (original)
+++ branches/quickbook-dev/boost/geometry/strategies/agnostic/point_in_poly_oriented_winding.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/strategies/agnostic/point_in_poly_winding.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/strategies/agnostic/point_in_poly_winding.hpp (original)
+++ branches/quickbook-dev/boost/geometry/strategies/agnostic/point_in_poly_winding.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/strategies/agnostic/simplify_douglas_peucker.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/strategies/agnostic/simplify_douglas_peucker.hpp (original)
+++ branches/quickbook-dev/boost/geometry/strategies/agnostic/simplify_douglas_peucker.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 1995, 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 1995, 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 // Copyright (c) 1995 Maarten Hilferink, Amsterdam, the Netherlands
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
@@ -60,8 +60,7 @@
         {}
 
         // Necessary for proper compilation
- inline douglas_peucker_point<Point> operator=(
- douglas_peucker_point<Point> const& other)
+ inline douglas_peucker_point<Point> operator=(douglas_peucker_point<Point> const& )
         {
             return douglas_peucker_point<Point>(*this);
         }

Modified: branches/quickbook-dev/boost/geometry/strategies/area.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/strategies/area.hpp (original)
+++ branches/quickbook-dev/boost/geometry/strategies/area.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/strategies/cartesian/area_surveyor.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/strategies/cartesian/area_surveyor.hpp (original)
+++ branches/quickbook-dev/boost/geometry/strategies/cartesian/area_surveyor.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/strategies/cartesian/box_in_box.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/strategies/cartesian/box_in_box.hpp (original)
+++ branches/quickbook-dev/boost/geometry/strategies/cartesian/box_in_box.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/strategies/cartesian/cart_intersect.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/strategies/cartesian/cart_intersect.hpp (original)
+++ branches/quickbook-dev/boost/geometry/strategies/cartesian/cart_intersect.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/strategies/cartesian/centroid_bashein_detmer.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/strategies/cartesian/centroid_bashein_detmer.hpp (original)
+++ branches/quickbook-dev/boost/geometry/strategies/cartesian/centroid_bashein_detmer.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/strategies/cartesian/centroid_weighted_length.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/strategies/cartesian/centroid_weighted_length.hpp (original)
+++ branches/quickbook-dev/boost/geometry/strategies/cartesian/centroid_weighted_length.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
-// Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
+// Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/strategies/cartesian/distance_projected_point.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/strategies/cartesian/distance_projected_point.hpp (original)
+++ branches/quickbook-dev/boost/geometry/strategies/cartesian/distance_projected_point.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2008-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2008-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/strategies/cartesian/distance_pythagoras.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/strategies/cartesian/distance_pythagoras.hpp (original)
+++ branches/quickbook-dev/boost/geometry/strategies/cartesian/distance_pythagoras.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2008-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2008-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
@@ -219,7 +219,7 @@
 {
     typedef comparable::pythagoras<Point1, Point2, CalculationType> comparable_type;
 public :
- static inline comparable_type apply(pythagoras<Point1, Point2, CalculationType> const& input)
+ static inline comparable_type apply(pythagoras<Point1, Point2, CalculationType> const& )
     {
         return comparable_type();
     }
@@ -303,7 +303,7 @@
 {
     typedef comparable::pythagoras<Point1, Point2, CalculationType> comparable_type;
 public :
- static inline comparable_type apply(comparable::pythagoras<Point1, Point2, CalculationType> const& input)
+ static inline comparable_type apply(comparable::pythagoras<Point1, Point2, CalculationType> const& )
     {
         return comparable_type();
     }

Modified: branches/quickbook-dev/boost/geometry/strategies/cartesian/point_in_box.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/strategies/cartesian/point_in_box.hpp (original)
+++ branches/quickbook-dev/boost/geometry/strategies/cartesian/point_in_box.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/strategies/cartesian/point_in_poly_crossings_multiply.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/strategies/cartesian/point_in_poly_crossings_multiply.hpp (original)
+++ branches/quickbook-dev/boost/geometry/strategies/cartesian/point_in_poly_crossings_multiply.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/strategies/cartesian/point_in_poly_franklin.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/strategies/cartesian/point_in_poly_franklin.hpp (original)
+++ branches/quickbook-dev/boost/geometry/strategies/cartesian/point_in_poly_franklin.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/strategies/cartesian/side_by_triangle.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/strategies/cartesian/side_by_triangle.hpp (original)
+++ branches/quickbook-dev/boost/geometry/strategies/cartesian/side_by_triangle.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/strategies/centroid.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/strategies/centroid.hpp (original)
+++ branches/quickbook-dev/boost/geometry/strategies/centroid.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/strategies/compare.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/strategies/compare.hpp (original)
+++ branches/quickbook-dev/boost/geometry/strategies/compare.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/strategies/concepts/area_concept.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/strategies/concepts/area_concept.hpp (original)
+++ branches/quickbook-dev/boost/geometry/strategies/concepts/area_concept.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
@@ -44,11 +44,11 @@
     {
         static void apply()
         {
- Strategy const* str;
- state_type *st;
+ Strategy const* str = 0;
+ state_type *st = 0;
 
             // 4) must implement a method apply with the following signature
- spoint_type const* sp;
+ spoint_type const* sp = 0;
             str->apply(*sp, *sp, *st);
 
             // 5) must implement a static method result with the following signature

Modified: branches/quickbook-dev/boost/geometry/strategies/concepts/centroid_concept.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/strategies/concepts/centroid_concept.hpp (original)
+++ branches/quickbook-dev/boost/geometry/strategies/concepts/centroid_concept.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
@@ -45,17 +45,17 @@
     {
         static void apply()
         {
- Strategy *str;
- state_type *st;
+ Strategy *str = 0;
+ state_type *st = 0;
 
             // 4) must implement a static method apply,
             // getting two segment-points
- spoint_type const* sp;
+ spoint_type const* sp = 0;
             str->apply(*sp, *sp, *st);
 
             // 5) must implement a static method result
             // getting the centroid
- point_type *c;
+ point_type *c = 0;
             bool r = str->result(*st, *c);
 
             boost::ignore_unused_variable_warning(str);

Modified: branches/quickbook-dev/boost/geometry/strategies/concepts/convex_hull_concept.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/strategies/concepts/convex_hull_concept.hpp (original)
+++ branches/quickbook-dev/boost/geometry/strategies/concepts/convex_hull_concept.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/strategies/concepts/distance_concept.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/strategies/concepts/distance_concept.hpp (original)
+++ branches/quickbook-dev/boost/geometry/strategies/concepts/distance_concept.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
@@ -89,9 +89,9 @@
>::type tag;
 
             // 7) must implement apply with arguments
- Strategy* str;
- ptype1 *p1;
- ptype2 *p2;
+ Strategy* str = 0;
+ ptype1 *p1 = 0;
+ ptype2 *p2 = 0;
             rtype r = str->apply(*p1, *p2);
 
             // 8) must define (meta)struct "get_similar" with apply
@@ -179,10 +179,10 @@
                 );
 
 
- Strategy *str;
- ptype *p;
- sptype *sp1;
- sptype *sp2;
+ Strategy *str = 0;
+ ptype *p = 0;
+ sptype *sp1 = 0;
+ sptype *sp2 = 0;
 
             rtype r = str->apply(*p, *sp1, *sp2);
 

Modified: branches/quickbook-dev/boost/geometry/strategies/concepts/segment_intersect_concept.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/strategies/concepts/segment_intersect_concept.hpp (original)
+++ branches/quickbook-dev/boost/geometry/strategies/concepts/segment_intersect_concept.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/strategies/concepts/simplify_concept.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/strategies/concepts/simplify_concept.hpp (original)
+++ branches/quickbook-dev/boost/geometry/strategies/concepts/simplify_concept.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
@@ -79,9 +79,9 @@
                     (concept::PointSegmentDistanceStrategy<ds_type>)
                 );
 
- Strategy *str;
- std::vector<point_type> const* v1;
- std::vector<point_type> * v2;
+ Strategy *str = 0;
+ std::vector<point_type> const* v1 = 0;
+ std::vector<point_type> * v2 = 0;
 
             // 2) must implement method apply with arguments
             // - Range

Modified: branches/quickbook-dev/boost/geometry/strategies/concepts/within_concept.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/strategies/concepts/within_concept.hpp (original)
+++ branches/quickbook-dev/boost/geometry/strategies/concepts/within_concept.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
@@ -85,10 +85,10 @@
 
 
             // CHECK: calling method apply and result
- Strategy const* str;
- state_type* st;
- point_type const* p;
- segment_point_type const* sp;
+ Strategy const* str = 0;
+ state_type* st = 0;
+ point_type const* p = 0;
+ segment_point_type const* sp = 0;
 
             bool b = str->apply(*p, *sp, *sp, *st);
             int r = str->result(*st);
@@ -152,9 +152,9 @@
 
 
             // CHECK: calling method apply
- Strategy const* str;
- point_type const* p;
- box_type const* bx;
+ Strategy const* str = 0;
+ point_type const* p = 0;
+ box_type const* bx = 0;
 
             bool b = str->apply(*p, *bx);
 
@@ -216,9 +216,9 @@
 
 
             // CHECK: calling method apply
- Strategy const* str;
- box_type1 const* b1;
- box_type2 const* b2;
+ Strategy const* str = 0;
+ box_type1 const* b1 = 0;
+ box_type2 const* b2 = 0;
 
             bool b = str->apply(*b1, *b2);
 

Modified: branches/quickbook-dev/boost/geometry/strategies/convex_hull.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/strategies/convex_hull.hpp (original)
+++ branches/quickbook-dev/boost/geometry/strategies/convex_hull.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
@@ -30,7 +30,12 @@
     \tparam Geometry the geometry type (hull operates internally per hull over geometry)
     \tparam Point point-type of output points
 */
-template <typename Tag, typename Geometry, typename Point>
+template
+<
+ typename Geometry1,
+ typename Point,
+ typename CsTag = typename cs_tag<Point>::type
+>
 struct strategy_convex_hull
 {
     typedef strategy::not_implemented type;

Modified: branches/quickbook-dev/boost/geometry/strategies/covered_by.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/strategies/covered_by.hpp (original)
+++ branches/quickbook-dev/boost/geometry/strategies/covered_by.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/strategies/default_area_result.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/strategies/default_area_result.hpp (original)
+++ branches/quickbook-dev/boost/geometry/strategies/default_area_result.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/strategies/default_distance_result.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/strategies/default_distance_result.hpp (original)
+++ branches/quickbook-dev/boost/geometry/strategies/default_distance_result.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/strategies/default_length_result.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/strategies/default_length_result.hpp (original)
+++ branches/quickbook-dev/boost/geometry/strategies/default_length_result.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/strategies/distance.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/strategies/distance.hpp (original)
+++ branches/quickbook-dev/boost/geometry/strategies/distance.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/strategies/intersection.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/strategies/intersection.hpp (original)
+++ branches/quickbook-dev/boost/geometry/strategies/intersection.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/strategies/intersection_result.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/strategies/intersection_result.hpp (original)
+++ branches/quickbook-dev/boost/geometry/strategies/intersection_result.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/strategies/side.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/strategies/side.hpp (original)
+++ branches/quickbook-dev/boost/geometry/strategies/side.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/strategies/side_info.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/strategies/side_info.hpp (original)
+++ branches/quickbook-dev/boost/geometry/strategies/side_info.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/strategies/spherical/area_huiller.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/strategies/spherical/area_huiller.hpp (original)
+++ branches/quickbook-dev/boost/geometry/strategies/spherical/area_huiller.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/strategies/spherical/compare_circular.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/strategies/spherical/compare_circular.hpp (original)
+++ branches/quickbook-dev/boost/geometry/strategies/spherical/compare_circular.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/strategies/spherical/distance_cross_track.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/strategies/spherical/distance_cross_track.hpp (original)
+++ branches/quickbook-dev/boost/geometry/strategies/spherical/distance_cross_track.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/strategies/spherical/distance_haversine.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/strategies/spherical/distance_haversine.hpp (original)
+++ branches/quickbook-dev/boost/geometry/strategies/spherical/distance_haversine.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/strategies/spherical/side_by_cross_track.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/strategies/spherical/side_by_cross_track.hpp (original)
+++ branches/quickbook-dev/boost/geometry/strategies/spherical/side_by_cross_track.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/strategies/spherical/ssf.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/strategies/spherical/ssf.hpp (original)
+++ branches/quickbook-dev/boost/geometry/strategies/spherical/ssf.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/geometry/strategies/strategies.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/strategies/strategies.hpp (original)
+++ branches/quickbook-dev/boost/geometry/strategies/strategies.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/strategies/strategy_transform.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/strategies/strategy_transform.hpp (original)
+++ branches/quickbook-dev/boost/geometry/strategies/strategy_transform.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
@@ -66,7 +66,7 @@
 struct transform_coordinates<Src, Dst, N, N, F>
 {
     template <typename T>
- static inline void transform(Src const& source, Dst& dest, T value)
+ static inline void transform(Src const& , Dst& , T )
     {
     }
 };

Modified: branches/quickbook-dev/boost/geometry/strategies/tags.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/strategies/tags.hpp (original)
+++ branches/quickbook-dev/boost/geometry/strategies/tags.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/strategies/transform.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/strategies/transform.hpp (original)
+++ branches/quickbook-dev/boost/geometry/strategies/transform.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/strategies/transform/inverse_transformer.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/strategies/transform/inverse_transformer.hpp (original)
+++ branches/quickbook-dev/boost/geometry/strategies/transform/inverse_transformer.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/strategies/transform/map_transformer.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/strategies/transform/map_transformer.hpp (original)
+++ branches/quickbook-dev/boost/geometry/strategies/transform/map_transformer.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/strategies/transform/matrix_transformers.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/strategies/transform/matrix_transformers.hpp (original)
+++ branches/quickbook-dev/boost/geometry/strategies/transform/matrix_transformers.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
@@ -218,7 +218,7 @@
     // constructor takes an optional third argument doing nothing.
     inline translate_transformer(coordinate_type const& translate_x,
                 coordinate_type const& translate_y,
- coordinate_type const& dummy = 0)
+ coordinate_type const& = 0)
         : ublas_transformer<P1, P2, 2, 2>(
                 1, 0, translate_x,
                 0, 1, translate_y,
@@ -275,7 +275,7 @@
 public :
     inline scale_transformer(coordinate_type const& scale_x,
                 coordinate_type const& scale_y,
- coordinate_type const& dummy = 0)
+ coordinate_type const& = 0)
         : ublas_transformer<P1, P2, 2, 2>(
                 scale_x, 0, 0,
                 0, scale_y, 0,

Modified: branches/quickbook-dev/boost/geometry/strategies/within.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/strategies/within.hpp (original)
+++ branches/quickbook-dev/boost/geometry/strategies/within.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/util/add_const_if_c.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/util/add_const_if_c.hpp (original)
+++ branches/quickbook-dev/boost/geometry/util/add_const_if_c.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/util/closure_as_bool.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/util/closure_as_bool.hpp (original)
+++ branches/quickbook-dev/boost/geometry/util/closure_as_bool.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/util/coordinate_cast.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/util/coordinate_cast.hpp (original)
+++ branches/quickbook-dev/boost/geometry/util/coordinate_cast.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/util/for_each_coordinate.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/util/for_each_coordinate.hpp (original)
+++ branches/quickbook-dev/boost/geometry/util/for_each_coordinate.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
@@ -54,7 +54,7 @@
         <
             IsConst,
             Point
- >::type& point, Op operation)
+ >::type& , Op operation)
     {
         return operation;
     }

Modified: branches/quickbook-dev/boost/geometry/util/math.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/util/math.hpp (original)
+++ branches/quickbook-dev/boost/geometry/util/math.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/util/order_as_direction.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/util/order_as_direction.hpp (original)
+++ branches/quickbook-dev/boost/geometry/util/order_as_direction.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/util/parameter_type_of.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/util/parameter_type_of.hpp (original)
+++ branches/quickbook-dev/boost/geometry/util/parameter_type_of.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/util/promote_floating_point.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/util/promote_floating_point.hpp (original)
+++ branches/quickbook-dev/boost/geometry/util/promote_floating_point.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/util/rational.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/util/rational.hpp (original)
+++ branches/quickbook-dev/boost/geometry/util/rational.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2011-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2011-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2011-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2011-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/util/select_calculation_type.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/util/select_calculation_type.hpp (original)
+++ branches/quickbook-dev/boost/geometry/util/select_calculation_type.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/util/select_coordinate_type.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/util/select_coordinate_type.hpp (original)
+++ branches/quickbook-dev/boost/geometry/util/select_coordinate_type.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/util/select_most_precise.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/util/select_most_precise.hpp (original)
+++ branches/quickbook-dev/boost/geometry/util/select_most_precise.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/views/box_view.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/views/box_view.hpp (original)
+++ branches/quickbook-dev/boost/geometry/views/box_view.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/views/closeable_view.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/views/closeable_view.hpp (original)
+++ branches/quickbook-dev/boost/geometry/views/closeable_view.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/views/detail/points_view.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/views/detail/points_view.hpp (original)
+++ branches/quickbook-dev/boost/geometry/views/detail/points_view.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/views/detail/range_type.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/views/detail/range_type.hpp (original)
+++ branches/quickbook-dev/boost/geometry/views/detail/range_type.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
@@ -15,12 +15,14 @@
 #define BOOST_GEOMETRY_VIEWS_DETAIL_RANGE_TYPE_HPP
 
 
+#include <boost/mpl/assert.hpp>
 #include <boost/type_traits.hpp>
 
 #include <boost/geometry/core/ring_type.hpp>
 #include <boost/geometry/core/tag.hpp>
 #include <boost/geometry/core/tags.hpp>
 
+#include <boost/geometry/views/box_view.hpp>
 
 namespace boost { namespace geometry
 {
@@ -34,19 +36,24 @@
 template <typename GeometryTag, typename Geometry>
 struct range_type
 {
- // Even if it is not recognized, define itself as a type.
- // This enables calling range_type over any range
- // (not necessarily a geometry)
+ BOOST_MPL_ASSERT_MSG
+ (
+ false, NOT_OR_NOT_YET_IMPLEMENTED_FOR_THIS_GEOMETRY_TYPE
+ , (types<Geometry>)
+ );
+};
+
 
- // Furthermore, applicable for ring/linestring
+template <typename Geometry>
+struct range_type<ring_tag, Geometry>
+{
     typedef Geometry type;
 };
 
-
 template <typename Geometry>
-struct range_type<point_tag, Geometry>
+struct range_type<linestring_tag, Geometry>
 {
- typedef void type;
+ typedef Geometry type;
 };
 
 
@@ -56,6 +63,12 @@
     typedef typename ring_type<Geometry>::type type;
 };
 
+template <typename Geometry>
+struct range_type<box_tag, Geometry>
+{
+ typedef box_view<Geometry> type;
+};
+
 
 } // namespace dispatch
 #endif // DOXYGEN_NO_DISPATCH

Modified: branches/quickbook-dev/boost/geometry/views/identity_view.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/views/identity_view.hpp (original)
+++ branches/quickbook-dev/boost/geometry/views/identity_view.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/views/reversible_view.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/views/reversible_view.hpp (original)
+++ branches/quickbook-dev/boost/geometry/views/reversible_view.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/geometry/views/segment_view.hpp
==============================================================================
--- branches/quickbook-dev/boost/geometry/views/segment_view.hpp (original)
+++ branches/quickbook-dev/boost/geometry/views/segment_view.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/boost/graph/adjacency_list_io.hpp
==============================================================================
--- branches/quickbook-dev/boost/graph/adjacency_list_io.hpp (original)
+++ branches/quickbook-dev/boost/graph/adjacency_list_io.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -248,7 +248,7 @@
         template<class Val>
         PropertyPrinter& operator () ( std::ostream& out, const Val& v )
         {
- typename property_map<Graph,Tag>::type ps = get(Tag(), *graph);
+ typename property_map<Graph,Tag>::const_type ps = get(Tag(), *graph);
                 out << ps[ v ] <<" ";
                 PropertyPrinter<Graph,Next> print(*graph);
                 print(out, v);

Modified: branches/quickbook-dev/boost/graph/directed_graph.hpp
==============================================================================
--- branches/quickbook-dev/boost/graph/directed_graph.hpp (original)
+++ branches/quickbook-dev/boost/graph/directed_graph.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -410,7 +410,7 @@
 typename DIRECTED_GRAPH::vertex_descriptor
 vertex(typename DIRECTED_GRAPH::vertices_size_type n,
        DIRECTED_GRAPH const& g)
-{ return vertex(g.impl()); }
+{ return vertex(n, g.impl()); }
 
 template <DIRECTED_GRAPH_PARAMS>
 std::pair<typename DIRECTED_GRAPH::edge_descriptor, bool>

Modified: branches/quickbook-dev/boost/graph/reverse_graph.hpp
==============================================================================
--- branches/quickbook-dev/boost/graph/reverse_graph.hpp (original)
+++ branches/quickbook-dev/boost/graph/reverse_graph.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -124,8 +124,7 @@
     typedef transform_iterator<detail::reverse_graph_edge_descriptor_maker<typename Traits::edge_descriptor>, typename Traits::out_edge_iterator> in_edge_iterator;
 
     // AdjacencyGraph requirements
- typedef typename adjacency_iterator_generator<Self,
- vertex_descriptor, out_edge_iterator>::type adjacency_iterator;
+ typedef typename adjacency_iterator_generator<Self, vertex_descriptor, out_edge_iterator>::type adjacency_iterator;
 
     // VertexListGraph requirements
     typedef typename Traits::vertex_iterator vertex_iterator;
@@ -149,7 +148,7 @@
                typename detail::get_underlying_descriptor_from_reverse_descriptor<Descriptor>::type
>::type&
     operator[](Descriptor x)
- { return detail::get_underlying_descriptor_from_reverse_descriptor<Descriptor>::convert(m_g[x]); }
+ { return m_g[detail::get_underlying_descriptor_from_reverse_descriptor<Descriptor>::convert(x)]; }
 
     template<typename Descriptor>
     typename graph::detail::bundled_result<
@@ -157,7 +156,7 @@
                typename detail::get_underlying_descriptor_from_reverse_descriptor<Descriptor>::type
>::type const&
     operator[](Descriptor x) const
- { return detail::get_underlying_descriptor_from_reverse_descriptor<Descriptor>::convert(m_g[x]); }
+ { return m_g[detail::get_underlying_descriptor_from_reverse_descriptor<Descriptor>::convert(x)]; }
 #endif // BOOST_GRAPH_NO_BUNDLED_PROPERTIES
 
     static vertex_descriptor null_vertex()
@@ -354,7 +353,7 @@
       put(m.underlying_pm, e.underlying_descx, v);
     }
 
- reference operator[](const key_type& k) {
+ reference operator[](const key_type& k) const {
       return (this->underlying_pm)[k.underlying_descx];
     }
   };

Modified: branches/quickbook-dev/boost/graph/undirected_graph.hpp
==============================================================================
--- branches/quickbook-dev/boost/graph/undirected_graph.hpp (original)
+++ branches/quickbook-dev/boost/graph/undirected_graph.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -413,7 +413,7 @@
 typename UNDIRECTED_GRAPH::vertex_descriptor
 vertex(typename UNDIRECTED_GRAPH::vertices_size_type n,
        UNDIRECTED_GRAPH const& g)
-{ return vertex(g.impl()); }
+{ return vertex(n, g.impl()); }
 
 template <UNDIRECTED_GRAPH_PARAMS>
 std::pair<typename UNDIRECTED_GRAPH::edge_descriptor, bool>

Modified: branches/quickbook-dev/boost/interprocess/detail/intermodule_singleton.hpp
==============================================================================
--- branches/quickbook-dev/boost/interprocess/detail/intermodule_singleton.hpp (original)
+++ branches/quickbook-dev/boost/interprocess/detail/intermodule_singleton.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -24,6 +24,7 @@
 
 #include <boost/interprocess/shared_memory_object.hpp>
 
+#include <boost/interprocess/offset_ptr.hpp>
 #include <boost/interprocess/sync/spin/mutex.hpp>
 #include <boost/interprocess/sync/spin/recursive_mutex.hpp>
 #include <boost/interprocess/detail/managed_memory_impl.hpp>
@@ -73,7 +74,9 @@
 
 struct intermodule_types
 {
- typedef rbtree_best_fit<intermodule_singleton_mutex_family, void*> mem_algo;
+ //We must use offset_ptr since a loaded DLL can map the singleton holder shared memory
+ //at a different address than other DLLs/main executables
+ typedef rbtree_best_fit<intermodule_singleton_mutex_family, offset_ptr<void> > mem_algo;
    template<class Device, bool FileBased>
    struct open_or_create
    {
@@ -773,8 +776,6 @@
       return *static_cast<ManagedShMem *>(static_cast<void *>(&mem_holder.shm_mem));
    }
 
- static const std::size_t MemSize = ((sizeof(ManagedShMem)-1)/sizeof(::boost::detail::max_align))+1u;
-
    static void initialize_shm();
    static void destroy_shm();
    //Static data, zero-initalized without any dependencies
@@ -784,7 +785,8 @@
    static volatile boost::uint32_t this_module_shm_initialized;
    static struct mem_holder_t
    {
- ::boost::detail::max_align shm_mem[MemSize];
+ ::boost::detail::max_align aligner;
+ char shm_mem [sizeof(ManagedShMem)];
    } mem_holder;
 };
 
@@ -795,9 +797,6 @@
 volatile boost::uint32_t intermodule_singleton_common<ManagedShMem>::this_module_shm_initialized;
 
 template<class ManagedShMem>
-const std::size_t intermodule_singleton_common<ManagedShMem>::MemSize;
-
-template<class ManagedShMem>
 typename intermodule_singleton_common<ManagedShMem>::mem_holder_t
    intermodule_singleton_common<ManagedShMem>::mem_holder;
 
@@ -806,9 +805,6 @@
 {
    //Obtain unique shm name and size
    std::string s;
- intermodule_singleton_helpers::get_shm_name(s);
- const char *ShmName = s.c_str();
- const std::size_t ShmSize = intermodule_singleton_helpers::get_shm_size();;
    while(1){
       //Try to pass shm state to initializing
       ::boost::uint32_t tmp = atomic_cas32(&this_module_shm_initialized, Initializing, Uninitialized);
@@ -824,6 +820,13 @@
          try{
             //Remove old shared memory from the system
             intermodule_singleton_helpers::managed_sh_dependant<ManagedShMem>::remove_old_gmem();
+ //
+ if(s.empty()){
+ intermodule_singleton_helpers::get_shm_name(s);
+ }
+ const char *ShmName = s.c_str();
+ const std::size_t ShmSize = intermodule_singleton_helpers::get_shm_size();;
+
             //in-place construction of the shared memory class
             ::new (&get_shm())ManagedShMem(open_or_create, ShmName, ShmSize);
             //Use shared memory internal lock to initialize the lock file

Modified: branches/quickbook-dev/boost/interprocess/offset_ptr.hpp
==============================================================================
--- branches/quickbook-dev/boost/interprocess/offset_ptr.hpp (original)
+++ branches/quickbook-dev/boost/interprocess/offset_ptr.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -316,7 +316,7 @@
    #if defined(_MSC_VER)
    __declspec(noinline) //this workaround is needed for MSVC compilers
    #elif defined (__GNUC__)//this workaround is needed for GCC
- __attribute__((noinline))
+ __attribute__((__noinline__))
    #endif
    void set_offset(const PointedType *ptr)
    {
@@ -336,7 +336,7 @@
    #if defined(_MSC_VER) && (_MSC_VER >= 1400)
    __declspec(noinline)
    #elif defined (__GNUC__)
- __attribute__((noinline))
+ __attribute__((__noinline__))
    #endif
    PointedType * to_raw_pointer() const
    {

Modified: branches/quickbook-dev/boost/interprocess/segment_manager.hpp
==============================================================================
--- branches/quickbook-dev/boost/interprocess/segment_manager.hpp (original)
+++ branches/quickbook-dev/boost/interprocess/segment_manager.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -971,7 +971,7 @@
       intrusive_value_type *iv = intrusive_value_type::get_intrusive_value_type(ctrl_data);
       void *memory = iv;
       void *values = ctrl_data->value();
- std::size_t num = ctrl_data->m_value_bytes/table.size;
+ std::size_t num = ctrl_data->m_value_bytes/table.size;
       
       //Sanity check
       BOOST_ASSERT((ctrl_data->m_value_bytes % table.size) == 0);

Modified: branches/quickbook-dev/boost/interprocess/smart_ptr/detail/shared_count.hpp
==============================================================================
--- branches/quickbook-dev/boost/interprocess/smart_ptr/detail/shared_count.hpp (original)
+++ branches/quickbook-dev/boost/interprocess/smart_ptr/detail/shared_count.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -28,6 +28,7 @@
 #include <boost/interprocess/smart_ptr/detail/bad_weak_ptr.hpp>
 #include <boost/interprocess/smart_ptr/detail/sp_counted_impl.hpp>
 #include <boost/interprocess/detail/utilities.hpp>
+#include <boost/container/allocator/allocator_traits.hpp>
 #include <boost/detail/no_exceptions_support.hpp>
 #include <functional> // std::less
 
@@ -54,9 +55,12 @@
          rebind_pointer<counted_impl>::type counted_impl_ptr;
    typedef typename boost::intrusive::
       pointer_traits<typename VoidAllocator::pointer>::template
- rebind_pointer<sp_counted_base>::type counted_base_ptr;
- typedef typename VoidAllocator::template rebind
- <counted_impl>::other counted_impl_allocator;
+ rebind_pointer<sp_counted_base>::type counted_base_ptr;
+
+ typedef boost::container::allocator_traits<VoidAllocator> vallocator_traits;
+
+ typedef typename vallocator_traits::template
+ portable_rebind_alloc<counted_impl>::type counted_impl_allocator;
 
    typedef typename boost::intrusive::
       pointer_traits<typename VoidAllocator::pointer>::template

Modified: branches/quickbook-dev/boost/interprocess/smart_ptr/detail/sp_counted_impl.hpp
==============================================================================
--- branches/quickbook-dev/boost/interprocess/smart_ptr/detail/sp_counted_impl.hpp (original)
+++ branches/quickbook-dev/boost/interprocess/smart_ptr/detail/sp_counted_impl.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -26,6 +26,7 @@
 #include <boost/interprocess/smart_ptr/detail/sp_counted_base.hpp>
 #include <boost/interprocess/smart_ptr/scoped_ptr.hpp>
 #include <boost/interprocess/detail/utilities.hpp>
+#include <boost/container/allocator/allocator_traits.hpp>
 #include <boost/intrusive/pointer_traits.hpp>
 
 namespace boost {
@@ -62,18 +63,25 @@
    { if (ptr) priv_deallocate(ptr, alloc_version()); }
 };
 
+
+
 template<class A, class D>
 class sp_counted_impl_pd
    : public sp_counted_base
- , A::template rebind< sp_counted_impl_pd<A, D> >::other
+ , boost::container::allocator_traits<A>::template
+ portable_rebind_alloc< sp_counted_impl_pd<A, D> >::type
    , D // copy constructor must not throw
 {
    private:
    typedef sp_counted_impl_pd<A, D> this_type;
- typedef typename A::template rebind
- <this_type>::other this_allocator;
- typedef typename A::template rebind
- <const this_type>::other const_this_allocator;
+ typedef typename boost::container::
+ allocator_traits<A>::template
+ portable_rebind_alloc
+ < this_type >::type this_allocator;
+ typedef typename boost::container::
+ allocator_traits<A>::template
+ portable_rebind_alloc
+ < const this_type >::type const_this_allocator;
    typedef typename this_allocator::pointer this_pointer;
 
    sp_counted_impl_pd( sp_counted_impl_pd const & );

Modified: branches/quickbook-dev/boost/intrusive/detail/has_member_function_callable_with.hpp
==============================================================================
--- branches/quickbook-dev/boost/intrusive/detail/has_member_function_callable_with.hpp (original)
+++ branches/quickbook-dev/boost/intrusive/detail/has_member_function_callable_with.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -25,6 +25,8 @@
       //wrong SFINAE for GCC 4.2/4.3
       #if defined(__GNUC__) && !defined(__clang__) && ((__GNUC__*100 + __GNUC_MINOR__*10) >= 340) && ((__GNUC__*100 + __GNUC_MINOR__*10) <= 430)
       #define BOOST_INTRUSIVE_DETAIL_HAS_MEMBER_FUNCTION_CALLABLE_WITH_0_ARGS_UNSUPPORTED
+ #elif defined(BOOST_INTEL) && (BOOST_INTEL < 1200 )
+ #define BOOST_INTRUSIVE_DETAIL_HAS_MEMBER_FUNCTION_CALLABLE_WITH_0_ARGS_UNSUPPORTED
       #endif
 
       namespace boost_intrusive_has_member_function_callable_with {
@@ -125,6 +127,7 @@
             };
 
             #else
+
             //Special case for 0 args
             template< class F
                   , std::size_t N =

Modified: branches/quickbook-dev/boost/intrusive/detail/memory_util.hpp
==============================================================================
--- branches/quickbook-dev/boost/intrusive/detail/memory_util.hpp (original)
+++ branches/quickbook-dev/boost/intrusive/detail/memory_util.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -139,8 +139,8 @@
 namespace intrusive {
 namespace detail {
 
-BOOST_INTRUSIVE_INSTANTIATE_DEFAULT_TYPE_TMPLT(element_type);
-BOOST_INTRUSIVE_INSTANTIATE_DEFAULT_TYPE_TMPLT(difference_type);
+BOOST_INTRUSIVE_INSTANTIATE_DEFAULT_TYPE_TMPLT(element_type)
+BOOST_INTRUSIVE_INSTANTIATE_DEFAULT_TYPE_TMPLT(difference_type)
 
 //////////////////////
 //struct first_param

Modified: branches/quickbook-dev/boost/lexical_cast.hpp
==============================================================================
--- branches/quickbook-dev/boost/lexical_cast.hpp (original)
+++ branches/quickbook-dev/boost/lexical_cast.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -18,8 +18,34 @@
 // with additional fixes and suggestions from Gennaro Prota,
 // Beman Dawes, Dave Abrahams, Daryle Walker, Peter Dimov,
 // Alexander Nasonov, Antony Polukhin, Justin Viiret, Michael Hofmann,
-// Cheng Yang, Matthew Bradbury and other Boosters
-// when: November 2000, March 2003, June 2005, June 2006, March 2011
+// Cheng Yang, Matthew Bradbury, David W. Birdsall and other Boosters
+// when: November 2000, March 2003, June 2005, June 2006, March 2011 - 2012
+
+#include <boost/config.hpp>
+#if defined(BOOST_NO_STRINGSTREAM) || defined(BOOST_NO_STD_WSTRING)
+#define BOOST_LCAST_NO_WCHAR_T
+#endif
+
+#if (defined(__MINGW32__) || defined(__MINGW64__)) && (__GNUC__ == 4) \
+ && ((__GNUC_MINOR__ == 4) || (__GNUC_MINOR__ == 5)) && defined(__STRICT_ANSI__) \
+ && !defined(BOOST_LCAST_NO_WCHAR_T)
+
+// workaround for a mingw bug
+// http://sourceforge.net/tracker/index.php?func=detail&aid=2373234&group_id=2435&atid=102435
+#include <_mingw.h>
+#if (__GNUC_MINOR__ == 4)
+extern "C" {
+_CRTIMP int __cdecl swprintf(wchar_t * __restrict__ , const wchar_t * __restrict__ , ...);
+_CRTIMP int __cdecl vswprintf(wchar_t * __restrict__ , const wchar_t * __restrict__ , ...);
+}
+#endif
+#if (__GNUC_MINOR__ == 5)
+extern "C" {
+_CRTIMP int __cdecl swprintf(wchar_t * __restrict__ , const wchar_t * __restrict__ , ...);
+_CRTIMP int __cdecl vswprintf(wchar_t * __restrict__ , const wchar_t * __restrict__ , va_list);
+}
+#endif
+#endif
 
 #include <climits>
 #include <cstddef>
@@ -30,7 +56,6 @@
 #include <typeinfo>
 #include <exception>
 #include <cmath>
-#include <boost/config.hpp>
 #include <boost/limits.hpp>
 #include <boost/mpl/if.hpp>
 #include <boost/throw_exception.hpp>
@@ -67,10 +92,6 @@
 #include <sstream>
 #endif
 
-#if defined(BOOST_NO_STRINGSTREAM) || defined(BOOST_NO_STD_WSTRING)
-#define BOOST_LCAST_NO_WCHAR_T
-#endif
-
 #ifdef BOOST_NO_TYPEID
 #define BOOST_LCAST_THROW_BAD_CAST(S, T) throw_exception(bad_lexical_cast())
 #else
@@ -591,6 +612,7 @@
             value = *end - czero;
             --end;
             T multiplier = 1;
+ bool multiplier_overflowed = false;
 
 #ifndef BOOST_LEXICAL_CAST_ASSUME_C_LOCALE
             std::locale loc;
@@ -613,12 +635,17 @@
                     for(;end>=begin; --end)
                     {
                         if (remained) {
- T const new_sub_value = multiplier * 10 * (*end - czero);
+ T const multiplier_10 = multiplier * 10;
+ if (multiplier_10 / 10 != multiplier) multiplier_overflowed = true;
+
+ T const dig_value = *end - czero;
+ T const new_sub_value = multiplier_10 * dig_value;
 
                             if (*end < czero || *end >= czero + 10
                                     /* detecting overflow */
- || new_sub_value/10 != multiplier * (*end - czero)
+ || (dig_value && new_sub_value / dig_value != multiplier_10)
                                     || static_cast<T>((std::numeric_limits<T>::max)()-new_sub_value) < value
+ || (multiplier_overflowed && dig_value)
                                     )
                                 return false;
 
@@ -656,12 +683,17 @@
             {
                 while ( begin <= end )
                 {
- T const new_sub_value = multiplier * 10 * (*end - czero);
+ T const multiplier_10 = multiplier * 10;
+ if (multiplier_10 / 10 != multiplier) multiplier_overflowed = true;
+
+ T const dig_value = *end - czero;
+ T const new_sub_value = multiplier_10 * dig_value;
 
                     if (*end < czero || *end >= czero + 10
                             /* detecting overflow */
- || new_sub_value/10 != multiplier * (*end - czero)
+ || (dig_value && new_sub_value / dig_value != multiplier_10)
                             || static_cast<T>((std::numeric_limits<T>::max)()-new_sub_value) < value
+ || (multiplier_overflowed && dig_value)
                             )
                         return false;
 
@@ -1822,6 +1854,24 @@
                     deduce_char_traits<char_type,Target,Source>::type traits;
 
                 typedef BOOST_DEDUCED_TYPENAME remove_pointer<src >::type removed_ptr_t;
+
+ // is_char_types_match variable value can be computed via
+ // sizeof(char_type) == sizeof(removed_ptr_t). But when
+ // removed_ptr_t is an incomplete type or void*, compilers
+ // produce warnings or errors.
+ const bool is_char_types_match =
+ (::boost::type_traits::ice_or<
+ ::boost::type_traits::ice_and<
+ ::boost::type_traits::ice_eq<sizeof(char_type), sizeof(char) >::value,
+ ::boost::type_traits::ice_or<
+ ::boost::is_same<char, removed_ptr_t>::value,
+ ::boost::is_same<unsigned char, removed_ptr_t>::value,
+ ::boost::is_same<signed char, removed_ptr_t>::value
+ >::value
+ >::value,
+ is_same<char_type, removed_ptr_t>::value
+ >::value);
+
                 const bool requires_stringbuf =
                         !(
                              ::boost::type_traits::ice_or<
@@ -1830,10 +1880,7 @@
                                  ::boost::type_traits::ice_and<
                                      is_pointer<src >::value,
                                      is_char_or_wchar<removed_ptr_t >::value,
- ::boost::type_traits::ice_eq<
- sizeof(char_type),
- sizeof(removed_ptr_t)
- >::value
+ is_char_types_match
>::value
>::value
                         );
@@ -2111,7 +2158,7 @@
 
 // Copyright Kevlin Henney, 2000-2005.
 // Copyright Alexander Nasonov, 2006-2010.
-// Copyright Antony Polukhin, 2011.
+// Copyright Antony Polukhin, 2011-2012.
 //
 // Distributed under the Boost Software License, Version 1.0. (See
 // accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/boost/locale/boundary/index.hpp
==============================================================================
--- branches/quickbook-dev/boost/locale/boundary/index.hpp (original)
+++ branches/quickbook-dev/boost/locale/boundary/index.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -14,6 +14,7 @@
 #include <boost/locale/boundary/segment.hpp>
 #include <boost/locale/boundary/boundary_point.hpp>
 #include <boost/iterator/iterator_facade.hpp>
+#include <boost/type_traits/is_same.hpp>
 #include <boost/shared_ptr.hpp>
 #include <boost/cstdint.hpp>
 #include <boost/assert.hpp>
@@ -59,38 +60,16 @@
 
                 template<typename CharType,typename SomeIteratorType>
                 struct linear_iterator_traits {
- static const bool is_linear = false;
+ static const bool is_linear =
+ is_same<SomeIteratorType,CharType*>::value
+ || is_same<SomeIteratorType,CharType const*>::value
+ || is_same<SomeIteratorType,typename std::basic_string<CharType>::iterator>::value
+ || is_same<SomeIteratorType,typename std::basic_string<CharType>::const_iterator>::value
+ || is_same<SomeIteratorType,typename std::vector<CharType>::iterator>::value
+ || is_same<SomeIteratorType,typename std::vector<CharType>::const_iterator>::value
+ ;
                 };
 
- template<typename CharType>
- struct linear_iterator_traits<CharType,typename std::basic_string<CharType>::iterator> {
- static const bool is_linear = true;
- };
-
- template<typename CharType>
- struct linear_iterator_traits<CharType,typename std::basic_string<CharType>::const_iterator> {
- static const bool is_linear = true;
- };
-
- template<typename CharType>
- struct linear_iterator_traits<CharType,typename std::vector<CharType>::iterator> {
- static const bool is_linear = true;
- };
-
- template<typename CharType>
- struct linear_iterator_traits<CharType,typename std::vector<CharType>::const_iterator> {
- static const bool is_linear = true;
- };
-
- template<typename CharType>
- struct linear_iterator_traits<CharType,CharType *> {
- static const bool is_linear = true;
- };
-
- template<typename CharType>
- struct linear_iterator_traits<CharType,CharType const *> {
- static const bool is_linear = true;
- };
 
 
                 template<typename IteratorType>

Modified: branches/quickbook-dev/boost/math/special_functions/beta.hpp
==============================================================================
--- branches/quickbook-dev/boost/math/special_functions/beta.hpp (original)
+++ branches/quickbook-dev/boost/math/special_functions/beta.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -29,8 +29,8 @@
 //
 // Implementation of Beta(a,b) using the Lanczos approximation:
 //
-template <class T, class L, class Policy>
-T beta_imp(T a, T b, const L&, const Policy& pol)
+template <class T, class Lanczos, class Policy>
+T beta_imp(T a, T b, const Lanczos&, const Policy& pol)
 {
    BOOST_MATH_STD_USING // for ADL of std names
 
@@ -81,10 +81,10 @@
       std::swap(a, b);
 
    // Lanczos calculation:
- T agh = a + L::g() - T(0.5);
- T bgh = b + L::g() - T(0.5);
- T cgh = c + L::g() - T(0.5);
- result = L::lanczos_sum_expG_scaled(a) * L::lanczos_sum_expG_scaled(b) / L::lanczos_sum_expG_scaled(c);
+ T agh = a + Lanczos::g() - T(0.5);
+ T bgh = b + Lanczos::g() - T(0.5);
+ T cgh = c + Lanczos::g() - T(0.5);
+ result = Lanczos::lanczos_sum_expG_scaled(a) * Lanczos::lanczos_sum_expG_scaled(b) / Lanczos::lanczos_sum_expG_scaled(c);
    T ambh = a - T(0.5) - b;
    if((fabs(b * ambh) < (cgh * 100)) && (a > 100))
    {
@@ -107,7 +107,7 @@
    result *= prefix;
 
    return result;
-} // template <class T, class L> beta_imp(T a, T b, const L&)
+} // template <class T, class Lanczos> beta_imp(T a, T b, const Lanczos&)
 
 //
 // Generic implementation of Beta(a,b) without Lanczos approximation support
@@ -191,12 +191,12 @@
 // powers are *hard* though, and using logarithms just leads to
 // horrendous cancellation errors.
 //
-template <class T, class L, class Policy>
+template <class T, class Lanczos, class Policy>
 T ibeta_power_terms(T a,
                         T b,
                         T x,
                         T y,
- const L&,
+ const Lanczos&,
                         bool normalised,
                         const Policy& pol)
 {
@@ -214,10 +214,10 @@
    T c = a + b;
 
    // combine power terms with Lanczos approximation:
- T agh = a + L::g() - T(0.5);
- T bgh = b + L::g() - T(0.5);
- T cgh = c + L::g() - T(0.5);
- result = L::lanczos_sum_expG_scaled(c) / (L::lanczos_sum_expG_scaled(a) * L::lanczos_sum_expG_scaled(b));
+ T agh = a + Lanczos::g() - T(0.5);
+ T bgh = b + Lanczos::g() - T(0.5);
+ T cgh = c + Lanczos::g() - T(0.5);
+ result = Lanczos::lanczos_sum_expG_scaled(c) / (Lanczos::lanczos_sum_expG_scaled(a) * Lanczos::lanczos_sum_expG_scaled(b));
 
    // l1 and l2 are the base of the exponents minus one:
    T l1 = (x * b - y * agh) / agh;
@@ -465,8 +465,8 @@
    int n;
 };
 
-template <class T, class L, class Policy>
-T ibeta_series(T a, T b, T x, T s0, const L&, bool normalised, T* p_derivative, T y, const Policy& pol)
+template <class T, class Lanczos, class Policy>
+T ibeta_series(T a, T b, T x, T s0, const Lanczos&, bool normalised, T* p_derivative, T y, const Policy& pol)
 {
    BOOST_MATH_STD_USING
 
@@ -479,10 +479,10 @@
       T c = a + b;
 
       // incomplete beta power term, combined with the Lanczos approximation:
- T agh = a + L::g() - T(0.5);
- T bgh = b + L::g() - T(0.5);
- T cgh = c + L::g() - T(0.5);
- result = L::lanczos_sum_expG_scaled(c) / (L::lanczos_sum_expG_scaled(a) * L::lanczos_sum_expG_scaled(b));
+ T agh = a + Lanczos::g() - T(0.5);
+ T bgh = b + Lanczos::g() - T(0.5);
+ T cgh = c + Lanczos::g() - T(0.5);
+ result = Lanczos::lanczos_sum_expG_scaled(c) / (Lanczos::lanczos_sum_expG_scaled(a) * Lanczos::lanczos_sum_expG_scaled(b));
       if(a * b < bgh * 10)
          result *= exp((b - 0.5f) * boost::math::log1p(a / bgh, pol));
       else
@@ -836,7 +836,7 @@
       }
    }
    return sum;
-} // template <class T, class L>T beta_small_b_large_a_series(T a, T b, T x, T y, T s0, T mult, const L& l, bool normalised)
+} // template <class T, class Lanczos>T beta_small_b_large_a_series(T a, T b, T x, T y, T s0, T mult, const Lanczos& l, bool normalised)
 
 //
 // For integer arguments we can relate the incomplete beta to the
@@ -1220,7 +1220,7 @@
       }
    }
    return invert ? (normalised ? 1 : boost::math::beta(a, b, pol)) - fract : fract;
-} // template <class T, class L>T ibeta_imp(T a, T b, T x, const L& l, bool inv, bool normalised)
+} // template <class T, class Lanczos>T ibeta_imp(T a, T b, T x, const Lanczos& l, bool inv, bool normalised)
 
 template <class T, class Policy>
 inline T ibeta_imp(T a, T b, T x, const Policy& pol, bool inv, bool normalised)

Modified: branches/quickbook-dev/boost/math/special_functions/detail/bessel_yn.hpp
==============================================================================
--- branches/quickbook-dev/boost/math/special_functions/detail/bessel_yn.hpp (original)
+++ branches/quickbook-dev/boost/math/special_functions/detail/bessel_yn.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -90,7 +90,7 @@
            ++k;
        }
        while(k < n);
- if(tools::max_value<T>() * factor < value)
+ if(fabs(tools::max_value<T>() * factor) < fabs(value))
           return sign(value) * sign(value) * policies::raise_overflow_error<T>(function, 0, pol);
        value /= factor;
     }

Modified: branches/quickbook-dev/boost/math/special_functions/detail/lgamma_small.hpp
==============================================================================
--- branches/quickbook-dev/boost/math/special_functions/detail/lgamma_small.hpp (original)
+++ branches/quickbook-dev/boost/math/special_functions/detail/lgamma_small.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -17,13 +17,13 @@
 //
 // lgamma for small arguments:
 //
-template <class T, class Policy, class L>
-T lgamma_small_imp(T z, T zm1, T zm2, const mpl::int_<64>&, const Policy& /* l */, const L&)
+template <class T, class Policy, class Lanczos>
+T lgamma_small_imp(T z, T zm1, T zm2, const mpl::int_<64>&, const Policy& /* l */, const Lanczos&)
 {
    // This version uses rational approximations for small
    // values of z accurate enough for 64-bit mantissas
    // (80-bit long doubles), works well for 53-bit doubles as well.
- // L is only used to select the Lanczos function.
+ // Lanczos is only used to select the Lanczos function.
 
    BOOST_MATH_STD_USING // for ADL of std names
    T result = 0;
@@ -206,8 +206,8 @@
    }
    return result;
 }
-template <class T, class Policy, class L>
-T lgamma_small_imp(T z, T zm1, T zm2, const mpl::int_<113>&, const Policy& /* l */, const L&)
+template <class T, class Policy, class Lanczos>
+T lgamma_small_imp(T z, T zm1, T zm2, const mpl::int_<113>&, const Policy& /* l */, const Lanczos&)
 {
    //
    // This version uses rational approximations for small
@@ -463,8 +463,8 @@
    BOOST_MATH_INSTRUMENT_CODE(result);
    return result;
 }
-template <class T, class Policy, class L>
-T lgamma_small_imp(T z, T zm1, T zm2, const mpl::int_<0>&, const Policy& pol, const L&)
+template <class T, class Policy, class Lanczos>
+T lgamma_small_imp(T z, T zm1, T zm2, const mpl::int_<0>&, const Policy& pol, const Lanczos&)
 {
    //
    // No rational approximations are available because either
@@ -482,28 +482,28 @@
    else if(z < 0.5)
    {
       // taking the log of tgamma reduces the error, no danger of overflow here:
- result = log(gamma_imp(z, pol, L()));
+ result = log(gamma_imp(z, pol, Lanczos()));
    }
    else if(z >= 3)
    {
       // taking the log of tgamma reduces the error, no danger of overflow here:
- result = log(gamma_imp(z, pol, L()));
+ result = log(gamma_imp(z, pol, Lanczos()));
    }
    else if(z >= 1.5)
    {
       // special case near 2:
       T dz = zm2;
- result = dz * log((z + L::g() - T(0.5)) / boost::math::constants::e<T>());
- result += boost::math::log1p(dz / (L::g() + T(1.5)), pol) * T(1.5);
- result += boost::math::log1p(L::lanczos_sum_near_2(dz), pol);
+ result = dz * log((z + Lanczos::g() - T(0.5)) / boost::math::constants::e<T>());
+ result += boost::math::log1p(dz / (Lanczos::g() + T(1.5)), pol) * T(1.5);
+ result += boost::math::log1p(Lanczos::lanczos_sum_near_2(dz), pol);
    }
    else
    {
       // special case near 1:
       T dz = zm1;
- result = dz * log((z + L::g() - T(0.5)) / boost::math::constants::e<T>());
- result += boost::math::log1p(dz / (L::g() + T(0.5)), pol) / 2;
- result += boost::math::log1p(L::lanczos_sum_near_1(dz), pol);
+ result = dz * log((z + Lanczos::g() - T(0.5)) / boost::math::constants::e<T>());
+ result += boost::math::log1p(dz / (Lanczos::g() + T(0.5)), pol) / 2;
+ result += boost::math::log1p(Lanczos::lanczos_sum_near_1(dz), pol);
    }
    return result;
 }

Modified: branches/quickbook-dev/boost/math/special_functions/erf.hpp
==============================================================================
--- branches/quickbook-dev/boost/math/special_functions/erf.hpp (original)
+++ branches/quickbook-dev/boost/math/special_functions/erf.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -365,7 +365,7 @@
    }
 
    return result;
-} // template <class T, class L>T erf_imp(T z, bool invert, const L& l, const mpl::int_<53>& t)
+} // template <class T, class Lanczos>T erf_imp(T z, bool invert, const Lanczos& l, const mpl::int_<53>& t)
 
 
 template <class T, class Policy>
@@ -571,7 +571,7 @@
    }
 
    return result;
-} // template <class T, class L>T erf_imp(T z, bool invert, const L& l, const mpl::int_<64>& t)
+} // template <class T, class Lanczos>T erf_imp(T z, bool invert, const Lanczos& l, const mpl::int_<64>& t)
 
 
 template <class T, class Policy>
@@ -976,7 +976,7 @@
    }
 
    return result;
-} // template <class T, class L>T erf_imp(T z, bool invert, const L& l, const mpl::int_<113>& t)
+} // template <class T, class Lanczos>T erf_imp(T z, bool invert, const Lanczos& l, const mpl::int_<113>& t)
 
 } // namespace detail
 

Modified: branches/quickbook-dev/boost/math/special_functions/gamma.hpp
==============================================================================
--- branches/quickbook-dev/boost/math/special_functions/gamma.hpp (original)
+++ branches/quickbook-dev/boost/math/special_functions/gamma.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -127,8 +127,8 @@
 //
 // tgamma(z), with Lanczos support:
 //
-template <class T, class Policy, class L>
-T gamma_imp(T z, const Policy& pol, const L& l)
+template <class T, class Policy, class Lanczos>
+T gamma_imp(T z, const Policy& pol, const Lanczos& l)
 {
    BOOST_MATH_STD_USING
 
@@ -178,13 +178,13 @@
    }
    else
    {
- result *= L::lanczos_sum(z);
+ result *= Lanczos::lanczos_sum(z);
       BOOST_MATH_INSTRUMENT_VARIABLE(result);
       BOOST_MATH_INSTRUMENT_VARIABLE(tools::log_max_value<T>());
       if(z * log(z) > tools::log_max_value<T>())
       {
          // we're going to overflow unless this is done with care:
- T zgh = (z + static_cast<T>(L::g()) - boost::math::constants::half<T>());
+ T zgh = (z + static_cast<T>(Lanczos::g()) - boost::math::constants::half<T>());
          BOOST_MATH_INSTRUMENT_VARIABLE(zgh);
          if(log(zgh) * z / 2 > tools::log_max_value<T>())
             return policies::raise_overflow_error<T>(function, "Result of tgamma is too large to represent.", pol);
@@ -199,7 +199,7 @@
       }
       else
       {
- T zgh = (z + static_cast<T>(L::g()) - boost::math::constants::half<T>());
+ T zgh = (z + static_cast<T>(Lanczos::g()) - boost::math::constants::half<T>());
          BOOST_MATH_INSTRUMENT_VARIABLE(zgh);
          BOOST_MATH_INSTRUMENT_VARIABLE(pow(zgh, z - boost::math::constants::half<T>()));
          BOOST_MATH_INSTRUMENT_VARIABLE(exp(zgh));
@@ -212,8 +212,8 @@
 //
 // lgamma(z) with Lanczos support:
 //
-template <class T, class Policy, class L>
-T lgamma_imp(T z, const Policy& pol, const L& l, int* sign = 0)
+template <class T, class Policy, class Lanczos>
+T lgamma_imp(T z, const Policy& pol, const Lanczos& l, int* sign = 0)
 {
 #ifdef BOOST_MATH_INSTRUMENT
    static bool b = false;
@@ -274,10 +274,10 @@
    else
    {
       // regular evaluation:
- T zgh = static_cast<T>(z + L::g() - boost::math::constants::half<T>());
+ T zgh = static_cast<T>(z + Lanczos::g() - boost::math::constants::half<T>());
       result = log(zgh) - 1;
       result *= z - 0.5f;
- result += log(L::lanczos_sum_expG_scaled(z));
+ result += log(Lanczos::lanczos_sum_expG_scaled(z));
    }
 
    if(sign)
@@ -447,8 +447,8 @@
 // This helper calculates tgamma(dz+1)-1 without cancellation errors,
 // used by the upper incomplete gamma with z < 1:
 //
-template <class T, class Policy, class L>
-T tgammap1m1_imp(T dz, Policy const& pol, const L& l)
+template <class T, class Policy, class Lanczos>
+T tgammap1m1_imp(T dz, Policy const& pol, const Lanczos& l)
 {
    BOOST_MATH_STD_USING
 
@@ -460,7 +460,7 @@
          mpl::greater<precision_type, mpl::int_<113> >
>,
       typename mpl::if_<
- is_same<L, lanczos::lanczos24m113>,
+ is_same<Lanczos, lanczos::lanczos24m113>,
          mpl::int_<113>,
          mpl::int_<0>
>::type,
@@ -612,13 +612,13 @@
 // Compute (z^a)(e^-z)/tgamma(a)
 // most if the error occurs in this function:
 //
-template <class T, class Policy, class L>
-T regularised_gamma_prefix(T a, T z, const Policy& pol, const L& l)
+template <class T, class Policy, class Lanczos>
+T regularised_gamma_prefix(T a, T z, const Policy& pol, const Lanczos& l)
 {
    BOOST_MATH_STD_USING
- T agh = a + static_cast<T>(L::g()) - T(0.5);
+ T agh = a + static_cast<T>(Lanczos::g()) - T(0.5);
    T prefix;
- T d = ((z - a) - static_cast<T>(L::g()) + T(0.5)) / agh;
+ T d = ((z - a) - static_cast<T>(Lanczos::g()) + T(0.5)) / agh;
 
    if(a < 1)
    {
@@ -646,7 +646,7 @@
    else if((fabs(d*d*a) <= 100) && (a > 150))
    {
       // special case for large a and a ~ z.
- prefix = a * boost::math::log1pmx(d, pol) + z * static_cast<T>(0.5 - L::g()) / agh;
+ prefix = a * boost::math::log1pmx(d, pol) + z * static_cast<T>(0.5 - Lanczos::g()) / agh;
       prefix = exp(prefix);
    }
    else
@@ -688,7 +688,7 @@
          prefix = pow(z / agh, a) * exp(amz);
       }
    }
- prefix *= sqrt(agh / boost::math::constants::e<T>()) / L::lanczos_sum_expG_scaled(a);
+ prefix *= sqrt(agh / boost::math::constants::e<T>()) / Lanczos::lanczos_sum_expG_scaled(a);
    return prefix;
 }
 //
@@ -1092,11 +1092,11 @@
 //
 // Ratios of two gamma functions:
 //
-template <class T, class Policy, class L>
-T tgamma_delta_ratio_imp_lanczos(T z, T delta, const Policy& pol, const L&)
+template <class T, class Policy, class Lanczos>
+T tgamma_delta_ratio_imp_lanczos(T z, T delta, const Policy& pol, const Lanczos&)
 {
    BOOST_MATH_STD_USING
- T zgh = z + L::g() - constants::half<T>();
+ T zgh = z + Lanczos::g() - constants::half<T>();
    T result;
    if(fabs(delta) < 10)
    {
@@ -1107,7 +1107,7 @@
       result = pow(zgh / (zgh + delta), z - constants::half<T>());
    }
    result *= pow(constants::e<T>() / (zgh + delta), delta);
- result *= L::lanczos_sum(z) / L::lanczos_sum(T(z + delta));
+ result *= Lanczos::lanczos_sum(z) / Lanczos::lanczos_sum(T(z + delta));
    return result;
 }
 //

Modified: branches/quickbook-dev/boost/math/special_functions/zeta.hpp
==============================================================================
--- branches/quickbook-dev/boost/math/special_functions/zeta.hpp (original)
+++ branches/quickbook-dev/boost/math/special_functions/zeta.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -19,6 +19,12 @@
 
 namespace boost{ namespace math{ namespace detail{
 
+#if 0
+//
+// This code is commented out because we have a better more rapidly converging series
+// now. Retained for future reference and in case the new code causes any issues down the line....
+//
+
 template <class T, class Policy>
 struct zeta_series_cache_size
 {
@@ -90,12 +96,6 @@
    return sum * 1 / -boost::math::powm1(T(2), sc);
 }
 
-#if 0
-//
-// This code is commented out because we have a better more rapidly converging series
-// now. Retained for future reference and in case the new code causes any issues down the line....
-//
-
 //
 // Classical p-series:
 //
@@ -158,7 +158,7 @@
       ej_term /= j - n + 1;
       ej_sum += ej_term;
    }
- return -sum / (two_n * (1 - pow(T(2), sc)));
+ return -sum / (two_n * (-powm1(T(2), sc)));
 }
 
 template <class T, class Policy>
@@ -166,10 +166,7 @@
 {
    BOOST_MATH_STD_USING
    T result;
- if(fabs(sc) > 0.01f)
- result = zeta_polynomial_series(s, sc, pol);
- else
- result = detail::zeta_series_imp(s, sc, pol);
+ result = zeta_polynomial_series(s, sc, pol);
 #if 0
    // Old code archived for future reference:
 

Modified: branches/quickbook-dev/boost/math/tools/test.hpp
==============================================================================
--- branches/quickbook-dev/boost/math/tools/test.hpp (original)
+++ branches/quickbook-dev/boost/math/tools/test.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -255,6 +255,74 @@
    return result;
 }
 
+template <class Real, class A, class F1, class F2>
+test_result<Real> test_hetero(const A& a, F1 test_func, F2 expect_func)
+{
+ typedef typename A::value_type row_type;
+ typedef Real value_type;
+
+ test_result<value_type> result;
+
+ for(unsigned i = 0; i < a.size(); ++i)
+ {
+ const row_type& row = a[i];
+ value_type point;
+ try
+ {
+ point = test_func(row);
+ }
+ catch(const std::underflow_error&)
+ {
+ point = 0;
+ }
+ catch(const std::overflow_error&)
+ {
+ point = std::numeric_limits<value_type>::has_infinity ?
+ std::numeric_limits<value_type>::infinity()
+ : tools::max_value<value_type>();
+ }
+ catch(const std::exception& e)
+ {
+ std::cerr << e.what() << std::endl;
+ print_row(row);
+ BOOST_ERROR("Unexpected exception.");
+ // so we don't get further errors:
+ point = expect_func(row);
+ }
+ value_type expected = expect_func(row);
+ value_type err = relative_error(point, expected);
+#ifdef BOOST_INSTRUMENT
+ if(err != 0)
+ {
+ std::cout << row[0] << " " << err;
+ if(std::numeric_limits<value_type>::is_specialized)
+ {
+ std::cout << " (" << err / std::numeric_limits<value_type>::epsilon() << "eps)";
+ }
+ std::cout << std::endl;
+ }
+#endif
+ if(!(boost::math::isfinite)(point) && (boost::math::isfinite)(expected))
+ {
+ std::cout << "CAUTION: Found non-finite result, when a finite value was expected at entry " << i << "\n";
+ std::cout << "Found: " << point << " Expected " << expected << " Error: " << err << std::endl;
+ print_row(row);
+ BOOST_ERROR("Unexpected non-finite result");
+ }
+ if(err > 0.5)
+ {
+ std::cout << "CAUTION: Gross error found at entry " << i << ".\n";
+ std::cout << "Found: " << point << " Expected " << expected << " Error: " << err << std::endl;
+ print_row(row);
+ BOOST_ERROR("Gross error");
+ }
+ result.add(err);
+ if((result.max)() == err)
+ result.set_worst(i);
+ }
+ return result;
+}
+
 } // namespace tools
 } // namespace math
 } // namespace boost

Modified: branches/quickbook-dev/boost/move/move.hpp
==============================================================================
--- branches/quickbook-dev/boost/move/move.hpp (original)
+++ branches/quickbook-dev/boost/move/move.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -182,7 +182,8 @@
       { return v; }
    };
 
- template<class T> T * addressof( T & v )
+ template<class T>
+ inline T * addressof( T & v )
    {
       return ::boost::move_detail::addressof_impl<T>::f
          ( ::boost::move_detail::addr_impl_ref<T>( v ), 0 );
@@ -224,13 +225,32 @@
 
    namespace boost {
 
+ namespace move_detail {
+ template<class T>
+ struct is_class_or_union
+ {
+ struct twochar { char _[2]; };
+ template <class U>
+ static char is_class_or_union_tester(void(U::*)(void));
+ template <class U>
+ static twochar is_class_or_union_tester(...);
+ static const bool value = sizeof(is_class_or_union_tester<T>(0)) == sizeof(char);
+ };
+ struct empty{};
+ }
+
    //////////////////////////////////////////////////////////////////////////////
    //
    // struct rv
    //
    //////////////////////////////////////////////////////////////////////////////
    template <class T>
- class rv : public T
+ class rv
+ : public BOOST_MOVE_MPL_NS::if_c
+ < ::boost::move_detail::is_class_or_union<T>::value
+ , T
+ , ::boost::move_detail::empty
+ >::type
    {
       rv();
       ~rv();
@@ -238,6 +258,8 @@
       void operator=(rv const&);
    } BOOST_MOVE_ATTRIBUTE_MAY_ALIAS;
 
+
+
    //////////////////////////////////////////////////////////////////////////////
    //
    // move_detail::is_rv
@@ -283,6 +305,10 @@
       : BOOST_MOVE_BOOST_NS::integral_constant<bool, false>
    {};
 
+ template <class T>
+ struct has_move_emulation_enabled_aux
+ : has_move_emulation_enabled<T> {};
+
    template <class T>
    struct has_nothrow_move
       : public BOOST_MOVE_BOOST_NS::integral_constant<bool, false>
@@ -293,20 +319,21 @@
    // move()
    //
    //////////////////////////////////////////////////////////////////////////////
+
    template <class T>
- typename BOOST_MOVE_BOOST_NS::disable_if<has_move_emulation_enabled<T>, T&>::type move(T& x)
+ inline typename BOOST_MOVE_BOOST_NS::disable_if<has_move_emulation_enabled_aux<T>, T&>::type move(T& x)
    {
       return x;
    }
 
    template <class T>
- typename BOOST_MOVE_BOOST_NS::enable_if<has_move_emulation_enabled<T>, rv<T>&>::type move(T& x)
+ inline typename BOOST_MOVE_BOOST_NS::enable_if<has_move_emulation_enabled<T>, rv<T>&>::type move(T& x)
    {
       return *static_cast<rv<T>* >(BOOST_MOVE_BOOST_NS::addressof(x));
    }
 
    template <class T>
- typename BOOST_MOVE_BOOST_NS::enable_if<has_move_emulation_enabled<T>, rv<T>&>::type move(rv<T>& x)
+ inline typename BOOST_MOVE_BOOST_NS::enable_if<has_move_emulation_enabled<T>, rv<T>&>::type move(rv<T>& x)
    {
       return x;
    }
@@ -351,14 +378,14 @@
    //////////////////////////////////////////////////////////////////////////////
 
    template <class T>
- typename BOOST_MOVE_BOOST_NS::enable_if< ::boost::move_detail::is_rv<T>, T &>::type
+ inline typename BOOST_MOVE_BOOST_NS::enable_if< ::boost::move_detail::is_rv<T>, T &>::type
       forward(const typename BOOST_MOVE_MPL_NS::identity<T>::type &x)
    {
       return const_cast<T&>(x);
    }
 
    template <class T>
- typename BOOST_MOVE_BOOST_NS::disable_if< ::boost::move_detail::is_rv<T>, const T &>::type
+ inline typename BOOST_MOVE_BOOST_NS::disable_if< ::boost::move_detail::is_rv<T>, const T &>::type
       forward(const typename BOOST_MOVE_MPL_NS::identity<T>::type &x)
    {
       return x;
@@ -450,20 +477,20 @@
          //! This function provides a way to convert a reference into a rvalue reference
          //! in compilers with rvalue references. For other compilers converts T & into
          //! <i>::boost::rv<T> &</i> so that move emulation is activated.
- template <class T> inline
+ template <class T>
          rvalue_reference move (input_reference);
 
       #elif defined(BOOST_MOVE_OLD_RVALUE_REF_BINDING_RULES)
 
          //Old move approach, lvalues could bind to rvalue references
- template <class T> inline
- typename remove_reference<T>::type && move(T&& t)
+ template <class T>
+ inline typename remove_reference<T>::type && move(T&& t)
          { return t; }
 
       #else //Old move
 
- template <class T> inline
- typename remove_reference<T>::type && move(T&& t)
+ template <class T>
+ inline typename remove_reference<T>::type && move(T&& t)
          { return static_cast<typename remove_reference<T>::type &&>(t); }
 
       #endif //Old move
@@ -487,13 +514,13 @@
          //! ::boost::rev<T> &
          //!
          //! * Else, input_reference is equal to output_reference is equal to input_reference.
- template <class T> inline output_reference forward(input_reference);
+ template <class T> output_reference forward(input_reference);
       #elif defined(BOOST_MOVE_OLD_RVALUE_REF_BINDING_RULES)
 
          //Old move approach, lvalues could bind to rvalue references
 
- template <class T> inline
- T&& forward (typename BOOST_MOVE_MPL_NS::identity<T>::type&& t)
+ template <class T>
+ inline T&& forward (typename BOOST_MOVE_MPL_NS::identity<T>::type&& t)
          { return t; }
 
       #else //Old move
@@ -730,7 +757,7 @@
 //!
 //! <b>Returns</b>: move_iterator<It>(i).
 template<class It>
-move_iterator<It> make_move_iterator(const It &it)
+inline move_iterator<It> make_move_iterator(const It &it)
 { return move_iterator<It>(it); }
 
 //////////////////////////////////////////////////////////////////////////////
@@ -954,7 +981,7 @@
 template
 <typename I, // I models InputIterator
 typename F> // F models ForwardIterator
-F uninitialized_move_move_iterator(I f, I l, F r
+inline F uninitialized_move_move_iterator(I f, I l, F r
 // ,typename BOOST_MOVE_BOOST_NS::enable_if< has_move_emulation_enabled<typename I::value_type> >::type* = 0
 )
 {
@@ -975,7 +1002,7 @@
 template
 <typename I, // I models InputIterator
 typename F> // F models ForwardIterator
-F uninitialized_copy_or_move(I f, I l, F r,
+inline F uninitialized_copy_or_move(I f, I l, F r,
                              typename BOOST_MOVE_BOOST_NS::enable_if< move_detail::is_move_iterator<I> >::type* = 0)
 {
    return ::boost::move_detail::uninitialized_move_move_iterator(f, l, r);
@@ -992,7 +1019,7 @@
 template
 <typename I, // I models InputIterator
 typename F> // F models ForwardIterator
-F move_move_iterator(I f, I l, F r
+inline F move_move_iterator(I f, I l, F r
 // ,typename BOOST_MOVE_BOOST_NS::enable_if< has_move_emulation_enabled<typename I::value_type> >::type* = 0
 )
 {
@@ -1014,7 +1041,7 @@
 template
 <typename I, // I models InputIterator
 typename F> // F models ForwardIterator
-F copy_or_move(I f, I l, F r,
+inline F copy_or_move(I f, I l, F r,
                              typename BOOST_MOVE_BOOST_NS::enable_if< move_detail::is_move_iterator<I> >::type* = 0)
 {
    return ::boost::move_detail::move_move_iterator(f, l, r);
@@ -1037,7 +1064,7 @@
 template
 <typename I, // I models InputIterator
 typename F> // F models ForwardIterator
-F uninitialized_copy_or_move(I f, I l, F r
+inline F uninitialized_copy_or_move(I f, I l, F r
    /// @cond
    ,typename BOOST_MOVE_BOOST_NS::disable_if< move_detail::is_move_iterator<I> >::type* = 0
    /// @endcond
@@ -1060,7 +1087,7 @@
 template
 <typename I, // I models InputIterator
 typename F> // F models ForwardIterator
-F copy_or_move(I f, I l, F r
+inline F copy_or_move(I f, I l, F r
    /// @cond
    ,typename BOOST_MOVE_BOOST_NS::disable_if< move_detail::is_move_iterator<I> >::type* = 0
    /// @endcond

Modified: branches/quickbook-dev/boost/multi_array/base.hpp
==============================================================================
--- branches/quickbook-dev/boost/multi_array/base.hpp (original)
+++ branches/quickbook-dev/boost/multi_array/base.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -81,7 +81,8 @@
 template <typename T, std::size_t NumDims, typename TPtr = const T*>
 class const_sub_array;
 
-template <typename T, typename TPtr, typename NumDims, typename Reference>
+ template <typename T, typename TPtr, typename NumDims, typename Reference,
+ typename IteratorCategory>
 class array_iterator;
 
 template <typename T, std::size_t NumDims, typename TPtr = const T*>
@@ -252,6 +253,14 @@
 /////////////////////////////////////////////////////////////////////////
 
 
+struct mutable_iterator_tag
+ : boost::random_access_traversal_tag, std::input_iterator_tag
+{
+ operator std::output_iterator_tag() const {
+ return std::output_iterator_tag();
+ }
+};
+
 
 ////////////////////////////////////////////////////////////////////////
 // multi_array_base
@@ -301,8 +310,10 @@
   //
   // iterator support
   //
- typedef array_iterator<T,T*,mpl::size_t<NumDims>,reference> iterator;
- typedef array_iterator<T,T const*,mpl::size_t<NumDims>,const_reference> const_iterator;
+ typedef array_iterator<T,T*,mpl::size_t<NumDims>,reference,
+ mutable_iterator_tag> iterator;
+ typedef array_iterator<T,T const*,mpl::size_t<NumDims>,const_reference,
+ boost::random_access_traversal_tag> const_iterator;
 
   typedef ::boost::reverse_iterator<iterator> reverse_iterator;
   typedef ::boost::reverse_iterator<const_iterator> const_reverse_iterator;
@@ -321,7 +332,8 @@
                            const size_type* extents,
                            const index* strides,
                            const index* index_bases) const {
-
+ boost::function_requires<
+ CollectionConcept<IndexList> >();
     ignore_unused_variable_warning(index_bases);
     ignore_unused_variable_warning(extents);
 #if !defined(NDEBUG) && !defined(BOOST_DISABLE_ASSERTS)
@@ -332,9 +344,15 @@
 #endif
 
     index offset = 0;
- for (size_type n = 0; n != NumDims; ++n)
- offset += indices[n] * strides[n];
-
+ {
+ typename IndexList::const_iterator i = indices.begin();
+ size_type n = 0;
+ while (n != NumDims) {
+ offset += (*i) * strides[n];
+ ++n;
+ ++i;
+ }
+ }
     return base[offset];
   }
 

Modified: branches/quickbook-dev/boost/multi_array/concept_checks.hpp
==============================================================================
--- branches/quickbook-dev/boost/multi_array/concept_checks.hpp (original)
+++ branches/quickbook-dev/boost/multi_array/concept_checks.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -131,6 +131,7 @@
       function_requires< boost_concepts::WritableIteratorConcept<iterator> >();
       function_requires< boost_concepts::ForwardTraversalConcept<const_iterator> >();
       function_requires< boost_concepts::ReadableIteratorConcept<const_iterator> >();
+ function_requires< boost::OutputIterator<iterator,value_type> >();
       
       // RG - a( CollectionArchetype) when available...
       value_type vt = a[ id ];

Modified: branches/quickbook-dev/boost/multi_array/iterator.hpp
==============================================================================
--- branches/quickbook-dev/boost/multi_array/iterator.hpp (original)
+++ branches/quickbook-dev/boost/multi_array/iterator.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -44,16 +44,18 @@
   mutable T value_;
 };
 
-template <typename T, typename TPtr, typename NumDims, typename Reference>
+template <typename T, typename TPtr, typename NumDims, typename Reference,
+ typename IteratorCategory>
 class array_iterator;
 
-template <typename T, typename TPtr, typename NumDims, typename Reference>
+template <typename T, typename TPtr, typename NumDims, typename Reference,
+ typename IteratorCategory>
 class array_iterator
   : public
     iterator_facade<
- array_iterator<T,TPtr,NumDims,Reference>
+ array_iterator<T,TPtr,NumDims,Reference,IteratorCategory>
       , typename associated_types<T,NumDims>::value_type
- , boost::random_access_traversal_tag
+ , IteratorCategory
       , Reference
>
     , private
@@ -69,7 +71,7 @@
   typedef detail::multi_array::associated_types<T,NumDims> access_t;
 
   typedef iterator_facade<
- array_iterator<T,TPtr,NumDims,Reference>
+ array_iterator<T,TPtr,NumDims,Reference,IteratorCategory>
       , typename detail::multi_array::associated_types<T,NumDims>::value_type
       , boost::random_access_traversal_tag
       , Reference
@@ -79,7 +81,7 @@
   typedef typename access_t::size_type size_type;
 
 #ifndef BOOST_NO_MEMBER_TEMPLATE_FRIENDS
- template <typename, typename, typename, typename>
+ template <typename, typename, typename, typename, typename>
     friend class array_iterator;
 #else
  public:
@@ -105,9 +107,9 @@
     idx_(idx), base_(base), extents_(extents),
     strides_(strides), index_base_(index_base) { }
 
- template <typename OPtr, typename ORef>
+ template <typename OPtr, typename ORef, typename Cat>
   array_iterator(
- const array_iterator<T,OPtr,NumDims,ORef>& rhs
+ const array_iterator<T,OPtr,NumDims,ORef,Cat>& rhs
     , typename boost::enable_if_convertible<OPtr,TPtr>::type* = 0
   )
     : idx_(rhs.idx_), base_(rhs.base_), extents_(rhs.extents_),

Modified: branches/quickbook-dev/boost/numeric/ublas/detail/config.hpp
==============================================================================
--- branches/quickbook-dev/boost/numeric/ublas/detail/config.hpp (original)
+++ branches/quickbook-dev/boost/numeric/ublas/detail/config.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -123,6 +123,10 @@
 
 #endif
 
+// PGI compiler
+#ifdef __PGIC__
+#define BOOST_UBLAS_UNSUPPORTED_COMPILER 0
+#endif
 
 // HP aCC C++ compiler
 #if defined (__HP_aCC) && ! defined (BOOST_STRICT_CONFIG)

Modified: branches/quickbook-dev/boost/phoenix/stl/container/container.hpp
==============================================================================
--- branches/quickbook-dev/boost/phoenix/stl/container/container.hpp (original)
+++ branches/quickbook-dev/boost/phoenix/stl/container/container.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
     Copyright (c) 2004 Angus Leeming
     Copyright (c) 2004 Joel de Guzman
 
- Distributed under the Boost Software License, Version 1.0. (See accompanying
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 ==============================================================================*/
 #ifndef BOOST_PHOENIX_STL_CONTAINER_CONTAINER_HPP
@@ -98,7 +98,7 @@
             {
                 typedef typename add_reference<C>::type type;
             };
-
+
             template <
                 typename This
               , typename C
@@ -109,7 +109,7 @@
             {
                 typedef typename add_reference<C>::type type;
             };
-
+
             template <
                 typename This
               , typename C
@@ -189,7 +189,7 @@
             template <typename This, typename C>
             struct result<This(C&)>
             {
- typedef
+ typedef
                     typename const_qualified_reference_of<C>::type
                 type;
             };
@@ -482,7 +482,7 @@
             struct result<This(C &, Arg1)>
                 : result_of::insert<C, Arg1>
             {};
-
+
             template <
                 typename This
               , typename C
@@ -492,7 +492,7 @@
             struct result<This(C &, Arg1, Arg2)>
                 : result_of::insert<C, Arg1, Arg2>
             {};
-
+
             template <
                 typename This
               , typename C
@@ -786,41 +786,45 @@
     // The lazy functions themselves.
     //
     ///////////////////////////////////////////////////////////////////////////////
- BOOST_PHOENIX_ADAPT_CALLABLE(assign, boost::phoenix::stl::assign, 2)
- BOOST_PHOENIX_ADAPT_CALLABLE(assign, boost::phoenix::stl::assign, 3)
- BOOST_PHOENIX_ADAPT_CALLABLE(assign, boost::phoenix::stl::assign, 4)
- BOOST_PHOENIX_ADAPT_CALLABLE(at, ::boost::phoenix::stl::at_impl, 2)
- BOOST_PHOENIX_ADAPT_CALLABLE(back, stl::back, 1)
- BOOST_PHOENIX_ADAPT_CALLABLE(begin, stl::begin, 1)
- BOOST_PHOENIX_ADAPT_CALLABLE(capacity, stl::capacity, 1)
- BOOST_PHOENIX_ADAPT_CALLABLE(clear, stl::clear, 1)
- BOOST_PHOENIX_ADAPT_CALLABLE(empty, stl::empty, 1)
- BOOST_PHOENIX_ADAPT_CALLABLE(end, stl::end, 1)
- BOOST_PHOENIX_ADAPT_CALLABLE(erase, stl::erase, 2)
- BOOST_PHOENIX_ADAPT_CALLABLE(erase, stl::erase, 3)
- BOOST_PHOENIX_ADAPT_CALLABLE(front, stl::front, 1)
- BOOST_PHOENIX_ADAPT_CALLABLE(get_allocator, stl::get_allocator, 1)
- BOOST_PHOENIX_ADAPT_CALLABLE(insert, stl::insert, 2)
- BOOST_PHOENIX_ADAPT_CALLABLE(insert, stl::insert, 3)
- BOOST_PHOENIX_ADAPT_CALLABLE(insert, stl::insert, 4)
- BOOST_PHOENIX_ADAPT_CALLABLE(key_comp, stl::key_comp, 1)
- BOOST_PHOENIX_ADAPT_CALLABLE(max_size, stl::max_size, 1)
- BOOST_PHOENIX_ADAPT_CALLABLE(pop_back, stl::pop_back, 1)
- BOOST_PHOENIX_ADAPT_CALLABLE(pop_front, stl::pop_front, 1)
- BOOST_PHOENIX_ADAPT_CALLABLE(push_back, stl::push_back, 2)
- BOOST_PHOENIX_ADAPT_CALLABLE(push_front, stl::push_front, 2)
- BOOST_PHOENIX_ADAPT_CALLABLE(rbegin, stl::rbegin, 1)
- BOOST_PHOENIX_ADAPT_CALLABLE(rend, stl::rend, 1)
- BOOST_PHOENIX_ADAPT_CALLABLE(reserve, stl::reserve, 2)
- BOOST_PHOENIX_ADAPT_CALLABLE(resize, stl::resize, 2)
- BOOST_PHOENIX_ADAPT_CALLABLE(resize, stl::resize, 3)
- BOOST_PHOENIX_ADAPT_CALLABLE(size, stl::size, 1)
- BOOST_PHOENIX_ADAPT_CALLABLE(splice, stl::splice, 2)
- BOOST_PHOENIX_ADAPT_CALLABLE(splice, stl::splice, 3)
- BOOST_PHOENIX_ADAPT_CALLABLE(splice, stl::splice, 4)
- BOOST_PHOENIX_ADAPT_CALLABLE(splice, stl::splice, 5)
- BOOST_PHOENIX_ADAPT_CALLABLE(value_comp, stl::value_comp, 1)
+ namespace adl_barrier
+ {
+ BOOST_PHOENIX_ADAPT_CALLABLE(assign, boost::phoenix::stl::assign, 2)
+ BOOST_PHOENIX_ADAPT_CALLABLE(assign, boost::phoenix::stl::assign, 3)
+ BOOST_PHOENIX_ADAPT_CALLABLE(assign, boost::phoenix::stl::assign, 4)
+ BOOST_PHOENIX_ADAPT_CALLABLE(at, ::boost::phoenix::stl::at_impl, 2)
+ BOOST_PHOENIX_ADAPT_CALLABLE(back, stl::back, 1)
+ BOOST_PHOENIX_ADAPT_CALLABLE(begin, stl::begin, 1)
+ BOOST_PHOENIX_ADAPT_CALLABLE(capacity, stl::capacity, 1)
+ BOOST_PHOENIX_ADAPT_CALLABLE(clear, stl::clear, 1)
+ BOOST_PHOENIX_ADAPT_CALLABLE(empty, stl::empty, 1)
+ BOOST_PHOENIX_ADAPT_CALLABLE(end, stl::end, 1)
+ BOOST_PHOENIX_ADAPT_CALLABLE(erase, stl::erase, 2)
+ BOOST_PHOENIX_ADAPT_CALLABLE(erase, stl::erase, 3)
+ BOOST_PHOENIX_ADAPT_CALLABLE(front, stl::front, 1)
+ BOOST_PHOENIX_ADAPT_CALLABLE(get_allocator, stl::get_allocator, 1)
+ BOOST_PHOENIX_ADAPT_CALLABLE(insert, stl::insert, 2)
+ BOOST_PHOENIX_ADAPT_CALLABLE(insert, stl::insert, 3)
+ BOOST_PHOENIX_ADAPT_CALLABLE(insert, stl::insert, 4)
+ BOOST_PHOENIX_ADAPT_CALLABLE(key_comp, stl::key_comp, 1)
+ BOOST_PHOENIX_ADAPT_CALLABLE(max_size, stl::max_size, 1)
+ BOOST_PHOENIX_ADAPT_CALLABLE(pop_back, stl::pop_back, 1)
+ BOOST_PHOENIX_ADAPT_CALLABLE(pop_front, stl::pop_front, 1)
+ BOOST_PHOENIX_ADAPT_CALLABLE(push_back, stl::push_back, 2)
+ BOOST_PHOENIX_ADAPT_CALLABLE(push_front, stl::push_front, 2)
+ BOOST_PHOENIX_ADAPT_CALLABLE(rbegin, stl::rbegin, 1)
+ BOOST_PHOENIX_ADAPT_CALLABLE(rend, stl::rend, 1)
+ BOOST_PHOENIX_ADAPT_CALLABLE(reserve, stl::reserve, 2)
+ BOOST_PHOENIX_ADAPT_CALLABLE(resize, stl::resize, 2)
+ BOOST_PHOENIX_ADAPT_CALLABLE(resize, stl::resize, 3)
+ BOOST_PHOENIX_ADAPT_CALLABLE(size, stl::size, 1)
+ BOOST_PHOENIX_ADAPT_CALLABLE(splice, stl::splice, 2)
+ BOOST_PHOENIX_ADAPT_CALLABLE(splice, stl::splice, 3)
+ BOOST_PHOENIX_ADAPT_CALLABLE(splice, stl::splice, 4)
+ BOOST_PHOENIX_ADAPT_CALLABLE(splice, stl::splice, 5)
+ BOOST_PHOENIX_ADAPT_CALLABLE(value_comp, stl::value_comp, 1)
+ }
 
+ using namespace phoenix::adl_barrier;
 }} // namespace boost::phoenix
 
 #endif // BOOST_PHOENIX_STL_CONTAINERS_HPP

Modified: branches/quickbook-dev/boost/python/detail/config.hpp
==============================================================================
--- branches/quickbook-dev/boost/python/detail/config.hpp (original)
+++ branches/quickbook-dev/boost/python/detail/config.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -76,13 +76,13 @@
 
 # if BOOST_PYTHON_USE_GCC_SYMBOL_VISIBILITY
 # if defined(BOOST_PYTHON_SOURCE)
-# define BOOST_PYTHON_DECL __attribute__ ((visibility("default")))
+# define BOOST_PYTHON_DECL __attribute__ ((__visibility__("default")))
 # define BOOST_PYTHON_BUILD_DLL
 # else
 # define BOOST_PYTHON_DECL
 # endif
 # define BOOST_PYTHON_DECL_FORWARD
-# define BOOST_PYTHON_DECL_EXCEPTION __attribute__ ((visibility("default")))
+# define BOOST_PYTHON_DECL_EXCEPTION __attribute__ ((__visibility__("default")))
 # elif (defined(_WIN32) || defined(__CYGWIN__))
 # if defined(BOOST_PYTHON_SOURCE)
 # define BOOST_PYTHON_DECL __declspec(dllexport)

Modified: branches/quickbook-dev/boost/python/module_init.hpp
==============================================================================
--- branches/quickbook-dev/boost/python/module_init.hpp (original)
+++ branches/quickbook-dev/boost/python/module_init.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -76,7 +76,7 @@
 
 # define BOOST_PYTHON_MODULE_INIT(name) \
   void BOOST_PP_CAT(init_module_,name)(); \
-extern "C" __attribute__ ((visibility("default"))) _BOOST_PYTHON_MODULE_INIT(name)
+extern "C" __attribute__ ((__visibility__("default"))) _BOOST_PYTHON_MODULE_INIT(name)
 
 # else
 

Modified: branches/quickbook-dev/boost/regex/v4/regex_format.hpp
==============================================================================
--- branches/quickbook-dev/boost/regex/v4/regex_format.hpp (original)
+++ branches/quickbook-dev/boost/regex/v4/regex_format.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -180,8 +180,14 @@
    }
    inline int toi(ForwardIter& i, ForwardIter j, int base)
    {
+#if defined(_MSC_VER) && defined(__INTEL_COMPILER) && ((__INTEL_COMPILER == 9999) || (__INTEL_COMPILER == 1210))
+ // Workaround for Intel support issue #656654.
+ // See also https://svn.boost.org/trac/boost/ticket/6359
+ return toi(i, j, base, mpl::false_());
+#else
       typedef typename boost::is_convertible<ForwardIter, const char_type*&>::type tag_type;
       return toi(i, j, base, tag_type());
+#endif
    }
 
    const traits& m_traits; // the traits class for localised formatting operations

Modified: branches/quickbook-dev/boost/serialization/vector.hpp
==============================================================================
--- branches/quickbook-dev/boost/serialization/vector.hpp (original)
+++ branches/quickbook-dev/boost/serialization/vector.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -32,7 +32,7 @@
 
 // default is being compatible with version 1.34.1 files, not 1.35 files
 #ifndef BOOST_SERIALIZATION_VECTOR_VERSIONED
-#define BOOST_SERIALIZATION_VECTOR_VERSIONED(V) (V==4 || V==5)
+#define BOOST_SERIALIZATION_VECTOR_VERSIONED(V) (V>4)
 #endif
 
 namespace boost {

Modified: branches/quickbook-dev/boost/serialization/vector_135.hpp
==============================================================================
--- branches/quickbook-dev/boost/serialization/vector_135.hpp (original)
+++ branches/quickbook-dev/boost/serialization/vector_135.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -18,7 +18,7 @@
 #error Boost.Serialization cannot be compatible with both 1.35 and 1.36-1.40 files
 #endif
 #else
-#define BOOST_SERIALIZATION_VECTOR_VERSIONED(V) (V==4)
+#define BOOST_SERIALIZATION_VECTOR_VERSIONED(V) (V>4)
 #endif
 
 #include <boost/serialization/vector.hpp>

Modified: branches/quickbook-dev/boost/spirit/home/karma/directive/center_alignment.hpp
==============================================================================
--- branches/quickbook-dev/boost/spirit/home/karma/directive/center_alignment.hpp (original)
+++ branches/quickbook-dev/boost/spirit/home/karma/directive/center_alignment.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -53,20 +53,20 @@
 
     // enables *lazy* center(d)[g], where d provides a generator
     template <>
- struct use_lazy_directive<karma::domain, tag::center, 1>
+ struct use_lazy_directive<karma::domain, tag::center, 1>
       : mpl::true_ {};
 
- // enables center(w, d)[g], where d is a generator and w is a maximum
+ // enables center(w, d)[g], where d is a generator and w is a maximum
     // width
     template <typename Width, typename Padding>
     struct use_directive<karma::domain
           , terminal_ex<tag::center, fusion::vector2<Width, Padding> > >
       : spirit::traits::matches<karma::domain, Padding> {};
 
- // enables *lazy* center(w, d)[g], where d provides a generator and w is
+ // enables *lazy* center(w, d)[g], where d provides a generator and w is
     // a maximum width
     template <>
- struct use_lazy_directive<karma::domain, tag::center, 2>
+ struct use_lazy_directive<karma::domain, tag::center, 2>
       : mpl::true_ {};
 
 }}
@@ -82,15 +82,15 @@
     namespace detail
     {
         ///////////////////////////////////////////////////////////////////////
- // The center_generate template function is used for all the
- // different flavors of the center[] directive.
+ // The center_generate template function is used for all the
+ // different flavors of the center[] directive.
         ///////////////////////////////////////////////////////////////////////
- template <typename OutputIterator, typename Context, typename Delimiter,
+ template <typename OutputIterator, typename Context, typename Delimiter,
             typename Attribute, typename Embedded, typename Padding>
- inline static bool
- center_generate(OutputIterator& sink, Context& ctx,
- Delimiter const& d, Attribute const& attr, Embedded const& e,
- unsigned int const width, Padding const& p)
+ inline static bool
+ center_generate(OutputIterator& sink, Context& ctx,
+ Delimiter const& d, Attribute const& attr, Embedded const& e,
+ unsigned int const width, Padding const& p)
         {
 #if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1600))
             e; // suppresses warning: C4100: 'e' : unreferenced formal parameter
@@ -99,7 +99,7 @@
             detail::enable_buffering<OutputIterator> buffering(sink, width);
             bool r = false;
 
- // first generate the embedded output
+ // first generate the embedded output
             {
                 detail::disable_counting<OutputIterator> nocounting(sink);
                 r = e.generate(sink, ctx, d, attr);
@@ -111,7 +111,7 @@
             detail::enable_counting<OutputIterator> counting(sink);
 
             std::size_t const pre = width - (buffering.buffer_size() + width)/2;
- while (r && counting.count() < pre)
+ while (r && counting.count() < pre)
                 r = p.generate(sink, ctx, unused, unused);
 
             if (r) {
@@ -119,7 +119,7 @@
                 buffering.buffer_copy();
 
                 // generate the right padding
- while (r && counting.count() < width)
+ while (r && counting.count() < width)
                     r = p.generate(sink, ctx, unused, unused);
             }
             return r;
@@ -185,12 +185,12 @@
 
         typedef mpl::int_<
             generator_properties::countingbuffer |
- subject_type::properties::value | padding_type::properties::value
+ subject_type::properties::value | padding_type::properties::value
> properties;
 
         template <typename Context, typename Iterator>
         struct attribute
- : traits::attribute_of<Subject, Context, Iterator>::type
+ : traits::attribute_of<Subject, Context, Iterator>
         {};
 
         padding_center_alignment(Subject const& subject, Padding const& padding

Modified: branches/quickbook-dev/boost/spirit/home/lex/qi/plain_raw_token.hpp
==============================================================================
--- branches/quickbook-dev/boost/spirit/home/lex/qi/plain_raw_token.hpp (original)
+++ branches/quickbook-dev/boost/spirit/home/lex/qi/plain_raw_token.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -90,7 +90,7 @@
                 typedef typename token_type::id_type id_type;
 
                 token_type const& t = *first;
- if (std::size_t(~0) == id || id_type(id) == t.id()) {
+ if (id_type(~0) == id_type(id) || id_type(id) == t.id()) {
                     spirit::traits::assign_to(t, attr);
                     ++first;
                     return true;

Modified: branches/quickbook-dev/boost/spirit/home/lex/qi/plain_token.hpp
==============================================================================
--- branches/quickbook-dev/boost/spirit/home/lex/qi/plain_token.hpp (original)
+++ branches/quickbook-dev/boost/spirit/home/lex/qi/plain_token.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -107,7 +107,7 @@
                 typedef typename token_type::id_type id_type;
 
                 token_type const& t = *first;
- if (std::size_t(~0) == id || id_type(id) == t.id()) {
+ if (id_type(~0) == id_type(id) || id_type(id) == t.id()) {
                     spirit::traits::assign_to(t, attr);
                     ++first;
                     return true;

Modified: branches/quickbook-dev/boost/spirit/home/lex/qi/plain_tokenid.hpp
==============================================================================
--- branches/quickbook-dev/boost/spirit/home/lex/qi/plain_tokenid.hpp (original)
+++ branches/quickbook-dev/boost/spirit/home/lex/qi/plain_tokenid.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -109,7 +109,7 @@
                 typedef typename token_type::id_type id_type;
 
                 token_type const& t = *first;
- if (std::size_t(~0) == id || id_type(id) == t.id()) {
+ if (id_type(~0) == id_type(id) || id_type(id) == t.id()) {
                     spirit::traits::assign_to(id, attr);
                     ++first;
                     return true;
@@ -162,7 +162,7 @@
                 token_type const& t = *first;
                 if (id_type(idmin) >= t.id() && id_type(idmin) <= t.id())
                 {
- spirit::traits::assign_to(id, attr);
+ spirit::traits::assign_to(t.id(), attr);
                     ++first;
                     return true;
                 }

Modified: branches/quickbook-dev/boost/spirit/home/support/attributes.hpp
==============================================================================
--- branches/quickbook-dev/boost/spirit/home/support/attributes.hpp (original)
+++ branches/quickbook-dev/boost/spirit/home/support/attributes.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 /*=============================================================================
     Copyright (c) 2001-2011 Joel de Guzman
- Copyright (c) 2001-2011 Hartmut Kaiser
+ Copyright (c) 2001-2012 Hartmut Kaiser
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -520,6 +520,29 @@
         }
     };
 
+ namespace detail
+ {
+ struct attribute_size_visitor : static_visitor<>
+ {
+ template <typename T>
+ typename attribute_size<T>::type operator()(T const& val) const
+ {
+ return spirit::traits::size(val);
+ }
+ };
+ }
+
+ template <BOOST_VARIANT_ENUM_PARAMS(typename T)>
+ struct attribute_size<variant<BOOST_VARIANT_ENUM_PARAMS(T)> >
+ {
+ typedef std::size_t type;
+
+ static void call(variant<BOOST_VARIANT_ENUM_PARAMS(T)> const& val)
+ {
+ apply_visitor(detail::attribute_size_visitor(), val);
+ }
+ };
+
     template <typename Iterator>
     struct attribute_size<iterator_range<Iterator> >
     {

Modified: branches/quickbook-dev/boost/spirit/home/support/iterators/detail/combine_policies.hpp
==============================================================================
--- branches/quickbook-dev/boost/spirit/home/support/iterators/detail/combine_policies.hpp (original)
+++ branches/quickbook-dev/boost/spirit/home/support/iterators/detail/combine_policies.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
-// Copyright (c) 2001-2011 Hartmut Kaiser
-//
+// Copyright (c) 2001-2012 Hartmut Kaiser
+//
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
@@ -12,21 +12,21 @@
 namespace boost { namespace spirit { namespace iterator_policies
 {
     ///////////////////////////////////////////////////////////////////////////
- // The purpose of the multi_pass_unique template is to eliminate
- // empty policy classes (policies not containing any data items) from the
- // multiple inheritance chain. This is necessary since some compilers
- // fail to apply the empty base optimization if multiple inheritance is
+ // The purpose of the multi_pass_unique template is to eliminate
+ // empty policy classes (policies not containing any data items) from the
+ // multiple inheritance chain. This is necessary since some compilers
+ // fail to apply the empty base optimization if multiple inheritance is
     // involved.
- // Additionally this can be used to combine separate policies into one
+ // Additionally this can be used to combine separate policies into one
     // single multi_pass_policy as required by the multi_pass template
     ///////////////////////////////////////////////////////////////////////////
 
 #if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
- // without partial template specialization there is nothing much to do in
+ // without partial template specialization there is nothing much to do in
     // terms of empty base optimization anyways...
- template <typename T, typename Ownership, typename Checking,
+ template <typename T, typename Ownership, typename Checking,
         typename Input, typename Storage>
- struct multi_pass_unique
+ struct multi_pass_unique
       : Ownership, Checking, Input, Storage
     {
         multi_pass_unique() {}
@@ -41,13 +41,21 @@
             Input::destroy(mp);
             Storage::destroy(mp);
         }
- void swap(multi_pass_unique& x)
+
+ void swap(multi_pass_unique& x)
         {
             this->Ownership::swap(x);
             this->Checking::swap(x);
             this->Input::swap(x);
             this->Storage::swap(x);
         }
+
+ template <typename MultiPass>
+ inline static void clear_queue(MultiPass& mp)
+ {
+ Checking::clear_queue(mp);
+ Storage::clear_queue(mp);
+ }
     };
 #else
     ///////////////////////////////////////////////////////////////////////////
@@ -78,15 +86,23 @@
             Input::destroy(mp);
             Storage::destroy(mp);
         }
- void swap(multi_pass_unique& x)
+
+ void swap(multi_pass_unique& x)
         {
             this->Ownership::swap(x);
             this->Checking::swap(x);
             this->Input::swap(x);
             this->Storage::swap(x);
         }
+
+ template <typename MultiPass>
+ inline static void clear_queue(MultiPass& mp)
+ {
+ Checking::clear_queue(mp);
+ Storage::clear_queue(mp);
+ }
     };
-
+
     ///////////////////////////////////////////////////////////////////////////
     template <typename T, typename Ownership, typename Checking
       , typename Input, typename Storage>
@@ -105,13 +121,21 @@
             Input::destroy(mp);
             Storage::destroy(mp);
         }
- void swap(multi_pass_unique& x)
+
+ void swap(multi_pass_unique& x)
         {
             this->Ownership::swap(x);
             this->Checking::swap(x);
             this->Storage::swap(x);
         }
 
+ template <typename MultiPass>
+ inline static void clear_queue(MultiPass& mp)
+ {
+ Checking::clear_queue(mp);
+ Storage::clear_queue(mp);
+ }
+
         // implement input policy functions by forwarding to the Input type
         template <typename MultiPass>
         inline static void advance_input(MultiPass& mp)
@@ -148,21 +172,25 @@
             Input::destroy(mp);
             Storage::destroy(mp);
         }
- void swap(multi_pass_unique& x)
+
+ void swap(multi_pass_unique& x)
         {
             this->Ownership::swap(x);
             this->Input::swap(x);
             this->Storage::swap(x);
         }
 
- // checking policy functions are forwarded to the Checking type
         template <typename MultiPass>
- inline static void docheck(MultiPass const& mp)
- { Checking::docheck(mp); }
+ inline static void clear_queue(MultiPass& mp)
+ {
+ Checking::clear_queue(mp);
+ Storage::clear_queue(mp);
+ }
 
+ // checking policy functions are forwarded to the Checking type
         template <typename MultiPass>
- inline static void clear_queue(MultiPass& mp)
- { Checking::clear_queue(mp); }
+ inline static void docheck(MultiPass const& mp)
+ { Checking::docheck(mp); }
     };
 
     ///////////////////////////////////////////////////////////////////////////
@@ -182,12 +210,20 @@
             Input::destroy(mp);
             Storage::destroy(mp);
         }
- void swap(multi_pass_unique& x)
+
+ void swap(multi_pass_unique& x)
         {
             this->Ownership::swap(x);
             this->Storage::swap(x);
         }
 
+ template <typename MultiPass>
+ inline static void clear_queue(MultiPass& mp)
+ {
+ Checking::clear_queue(mp);
+ Storage::clear_queue(mp);
+ }
+
         // implement input policy functions by forwarding to the Input type
         template <typename MultiPass>
         inline static void advance_input(MultiPass& mp)
@@ -207,12 +243,8 @@
 
         // checking policy functions are forwarded to the Checking type
         template <typename MultiPass>
- inline static void docheck(MultiPass const& mp)
+ inline static void docheck(MultiPass const& mp)
             { Checking::docheck(mp); }
-
- template <typename MultiPass>
- inline static void clear_queue(MultiPass& mp)
- { Checking::clear_queue(mp); }
     };
 
     ///////////////////////////////////////////////////////////////////////////
@@ -233,16 +265,24 @@
             Input::destroy(mp);
             Storage::destroy(mp);
         }
- void swap(multi_pass_unique& x)
+
+ void swap(multi_pass_unique& x)
         {
             this->Checking::swap(x);
             this->Input::swap(x);
             this->Storage::swap(x);
         }
 
+ template <typename MultiPass>
+ inline static void clear_queue(MultiPass& mp)
+ {
+ Checking::clear_queue(mp);
+ Storage::clear_queue(mp);
+ }
+
         // ownership policy functions are forwarded to the Ownership type
         template <typename MultiPass>
- inline static void clone(MultiPass& mp)
+ inline static void clone(MultiPass& mp)
             { Ownership::clone(mp); }
 
         template <typename MultiPass>
@@ -271,12 +311,20 @@
             Input::destroy(mp);
             Storage::destroy(mp);
         }
- void swap(multi_pass_unique& x)
+
+ void swap(multi_pass_unique& x)
         {
             this->Checking::swap(x);
             this->Storage::swap(x);
         }
 
+ template <typename MultiPass>
+ inline static void clear_queue(MultiPass& mp)
+ {
+ Checking::clear_queue(mp);
+ Storage::clear_queue(mp);
+ }
+
         // implement input policy functions by forwarding to the Input type
         template <typename MultiPass>
         inline static void advance_input(MultiPass& mp)
@@ -296,7 +344,7 @@
 
         // ownership policy functions are forwarded to the Ownership type
         template <typename MultiPass>
- inline static void clone(MultiPass& mp)
+ inline static void clone(MultiPass& mp)
             { Ownership::clone(mp); }
 
         template <typename MultiPass>
@@ -325,24 +373,28 @@
             Input::destroy(mp);
             Storage::destroy(mp);
         }
- void swap(multi_pass_unique& x)
+
+ void swap(multi_pass_unique& x)
         {
             this->Input::swap(x);
             this->Storage::swap(x);
         }
 
- // checking policy functions are forwarded to the Checking type
         template <typename MultiPass>
- inline static void docheck(MultiPass const& mp)
- { Checking::docheck(mp); }
+ inline static void clear_queue(MultiPass& mp)
+ {
+ Checking::clear_queue(mp);
+ Storage::clear_queue(mp);
+ }
 
+ // checking policy functions are forwarded to the Checking type
         template <typename MultiPass>
- inline static void clear_queue(MultiPass& mp)
- { Checking::clear_queue(mp); }
+ inline static void docheck(MultiPass const& mp)
+ { Checking::docheck(mp); }
 
         // ownership policy functions are forwarded to the Ownership type
         template <typename MultiPass>
- inline static void clone(MultiPass& mp)
+ inline static void clone(MultiPass& mp)
             { Ownership::clone(mp); }
 
         template <typename MultiPass>
@@ -370,11 +422,19 @@
             Input::destroy(mp);
             Storage::destroy(mp);
         }
- void swap(multi_pass_unique& x)
+
+ void swap(multi_pass_unique& x)
         {
             this->Storage::swap(x);
         }
 
+ template <typename MultiPass>
+ inline static void clear_queue(MultiPass& mp)
+ {
+ Checking::clear_queue(mp);
+ Storage::clear_queue(mp);
+ }
+
         // implement input policy functions by forwarding to the Input type
         template <typename MultiPass>
         inline static void advance_input(MultiPass& mp)
@@ -394,16 +454,12 @@
 
         // checking policy functions are forwarded to the Checking type
         template <typename MultiPass>
- inline static void docheck(MultiPass const& mp)
+ inline static void docheck(MultiPass const& mp)
             { Checking::docheck(mp); }
 
- template <typename MultiPass>
- inline static void clear_queue(MultiPass& mp)
- { Checking::clear_queue(mp); }
-
         // ownership policy functions are forwarded to the Ownership type
         template <typename MultiPass>
- inline static void clone(MultiPass& mp)
+ inline static void clone(MultiPass& mp)
             { Ownership::clone(mp); }
 
         template <typename MultiPass>
@@ -417,7 +473,7 @@
 #endif
 
     ///////////////////////////////////////////////////////////////////////////
- // the multi_pass_shared structure is used to combine the shared data items
+ // the multi_pass_shared structure is used to combine the shared data items
     // of all policies into one single structure
     ///////////////////////////////////////////////////////////////////////////
     template<typename T, typename Ownership, typename Checking, typename Input
@@ -451,7 +507,7 @@
         {
             typedef typename Ownership::unique ownership_policy;
             typedef typename Checking::unique checking_policy;
- typedef typename Input::BOOST_NESTED_TEMPLATE unique<T>
+ typedef typename Input::BOOST_NESTED_TEMPLATE unique<T>
                 input_policy;
             typedef typename Storage::BOOST_NESTED_TEMPLATE unique<
                 typename input_policy::value_type> storage_policy;
@@ -470,26 +526,26 @@
           , typename Ownership::shared, typename Checking::shared
           , typename Input::BOOST_NESTED_TEMPLATE shared<T>
           , typename Storage::BOOST_NESTED_TEMPLATE shared<
- typename Input::BOOST_NESTED_TEMPLATE unique<T>::value_type> >
+ typename Input::BOOST_NESTED_TEMPLATE unique<T>::value_type> >
         {
             typedef typename Ownership::shared ownership_policy;
             typedef typename Checking::shared checking_policy;
- typedef typename Input::BOOST_NESTED_TEMPLATE shared<T>
+ typedef typename Input::BOOST_NESTED_TEMPLATE shared<T>
                 input_policy;
             typedef typename Storage::BOOST_NESTED_TEMPLATE shared<
- typename Input::BOOST_NESTED_TEMPLATE unique<T>::value_type>
+ typename Input::BOOST_NESTED_TEMPLATE unique<T>::value_type>
             storage_policy;
 
             typedef multi_pass_shared<T, ownership_policy, checking_policy
               , input_policy, storage_policy> shared_base_type;
 
- explicit shared(T& input)
+ explicit shared(T& input)
               : shared_base_type(input), inhibit_clear_queue_(false) {}
- explicit shared(T const& input)
+ explicit shared(T const& input)
               : shared_base_type(input), inhibit_clear_queue_(false) {}
 
- // This is needed for the correct implementation of expectation
- // points. Normally expectation points flush any multi_pass
+ // This is needed for the correct implementation of expectation
+ // points. Normally expectation points flush any multi_pass
             // iterator they may act on, but if the corresponding error handler
             // is of type 'retry' no flushing of the internal buffers should be
             // executed (even if explicitly requested).

Modified: branches/quickbook-dev/boost/spirit/home/support/iterators/multi_pass.hpp
==============================================================================
--- branches/quickbook-dev/boost/spirit/home/support/iterators/multi_pass.hpp (original)
+++ branches/quickbook-dev/boost/spirit/home/support/iterators/multi_pass.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Copyright (c) 2001, Daniel C. Nuffer
 // Copyright (c) 2001-2011 Hartmut Kaiser
 // http://spirit.sourceforge.net/
-//
+//
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
@@ -16,13 +16,13 @@
 #include <boost/detail/workaround.hpp>
 #include <boost/utility/base_from_member.hpp>
 
-namespace boost { namespace spirit
+namespace boost { namespace spirit
 {
     ///////////////////////////////////////////////////////////////////////////
     // The default multi_pass instantiation uses a ref-counted std_deque scheme.
     ///////////////////////////////////////////////////////////////////////////
     template<typename T, typename Policies>
- class multi_pass
+ class multi_pass
       : private boost::base_from_member<
             typename Policies::BOOST_NESTED_TEMPLATE shared<T>*>
       , public Policies::BOOST_NESTED_TEMPLATE unique<T>
@@ -32,14 +32,14 @@
     {
     private:
         // unique and shared data types
- typedef typename Policies::BOOST_NESTED_TEMPLATE unique<T>
+ typedef typename Policies::BOOST_NESTED_TEMPLATE unique<T>
             policies_base_type;
- typedef typename Policies::BOOST_NESTED_TEMPLATE shared<T>
+ typedef typename Policies::BOOST_NESTED_TEMPLATE shared<T>
             shared_data_type;
 
         typedef boost::base_from_member<shared_data_type*> member_base;
 
- // define the types the standard embedded iterator typedefs are taken
+ // define the types the standard embedded iterator typedefs are taken
         // from
 #if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
         typedef typename iterator_base_creator<Input, T>::type iterator_type;
@@ -56,7 +56,7 @@
         typedef typename iterator_type::reference reference;
         typedef typename iterator_type::pointer pointer;
 
- multi_pass() : member_base((shared_data_type*)0) {}
+ multi_pass() : member_base(static_cast<shared_data_type*>(0)) {}
 
         explicit multi_pass(T& input)
           : member_base(new shared_data_type(input)), policies_base_type(input) {}
@@ -77,7 +77,7 @@
         // checking code that isn't required by the standard.
         // The workaround is to provide an additional constructor that
         // ignores its int argument and behaves like the default constructor.
- multi_pass(int) : member_base((shared_data_type*)0) {}
+ multi_pass(int) : member_base(static_cast<shared_data_type*>(0)) {}
 #endif // BOOST_WORKAROUND(__GLIBCPP__, == 20020514)
 
         ~multi_pass()
@@ -126,7 +126,7 @@
             return tmp;
         }
 
- void clear_queue(BOOST_SCOPED_ENUM(traits::clear_mode) mode =
+ void clear_queue(BOOST_SCOPED_ENUM(traits::clear_mode) mode =
             traits::clear_mode::clear_if_enabled)
         {
             if (mode == traits::clear_mode::clear_always || !inhibit_clear_queue())
@@ -214,7 +214,7 @@
 
     ///////////////////////////////////////////////////////////////////////////
     template <typename T, typename Policies>
- inline void
+ inline void
     swap(multi_pass<T, Policies> &x, multi_pass<T, Policies> &y)
     {
         x.swap(y);
@@ -247,6 +247,6 @@
 
 }} // namespace boost::spirit
 
-#endif
+#endif
 
 

Modified: branches/quickbook-dev/boost/spirit/repository/home/karma/nonterminal/subrule.hpp
==============================================================================
--- branches/quickbook-dev/boost/spirit/repository/home/karma/nonterminal/subrule.hpp (original)
+++ branches/quickbook-dev/boost/spirit/repository/home/karma/nonterminal/subrule.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Copyright (c) 2009 Francois Barel
 // Copyright (c) 2001-2011 Joel de Guzman
-// Copyright (c) 2001-2011 Hartmut Kaiser
+// Copyright (c) 2001-2012 Hartmut Kaiser
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -207,8 +207,8 @@
             // trying to use a subrule which has inherited attributes,
             // without passing values for them.
             context_type context(*this
- , traits::pre_transform<subrule_attr_type>(
- make_attribute::call(attr)));
+ , traits::pre_transform<karma::domain, subrule_attr_type>(
+ make_attribute::call(attr)));
 
             return def.binder(sink, context, delimiter);
         }
@@ -242,8 +242,8 @@
             // trying to use a subrule which has inherited attributes,
             // passing values of incompatible types for them.
             context_type context(*this
- , traits::pre_transform<subrule_attr_type>(
- make_attribute::call(attr)), params, caller_context);
+ , traits::pre_transform<karma::domain, subrule_attr_type>(
+ make_attribute::call(attr)), params, caller_context);
 
             return def.binder(sink, context, delimiter);
         }

Modified: branches/quickbook-dev/boost/test/impl/exception_safety.ipp
==============================================================================
--- branches/quickbook-dev/boost/test/impl/exception_safety.ipp (original)
+++ branches/quickbook-dev/boost/test/impl/exception_safety.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -51,10 +51,10 @@
 
 namespace boost {
 
-using namespace ::boost::unit_test;
-
 namespace itest {
 
+using namespace ::boost::unit_test;
+
 // ************************************************************************** //
 // ************** execution_path_point ************** //
 // ************************************************************************** //

Modified: branches/quickbook-dev/boost/thread/barrier.hpp
==============================================================================
--- branches/quickbook-dev/boost/thread/barrier.hpp (original)
+++ branches/quickbook-dev/boost/thread/barrier.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // David Moore, William E. Kempf
 // Copyright (C) 2007-8 Anthony Williams
 //
-// Distributed under the Boost Software License, Version 1.0. (See accompanying
+// Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
 #ifndef BOOST_BARRIER_JDM030602_HPP
@@ -28,14 +28,14 @@
             : m_threshold(count), m_count(count), m_generation(0)
         {
             if (count == 0)
- boost::throw_exception(std::invalid_argument("count cannot be zero."));
+ boost::throw_exception(thread_exception(system::errc::invalid_argument, "barrier constructor: count cannot be zero."));
         }
-
+
         bool wait()
         {
             boost::mutex::scoped_lock lock(m_mutex);
             unsigned int gen = m_generation;
-
+
             if (--m_count == 0)
             {
                 m_generation++;

Modified: branches/quickbook-dev/boost/thread/detail/config.hpp
==============================================================================
--- branches/quickbook-dev/boost/thread/detail/config.hpp (original)
+++ branches/quickbook-dev/boost/thread/detail/config.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -19,6 +19,35 @@
 #endif
 #endif
 
+#if ! defined BOOST_THREAD_DONT_USE_CHRONO
+#define BOOST_THREAD_USES_CHRONO
+#endif
+
+#define BOOST_THREAD_USES_MOVE
+
+#ifdef BOOST_NO_SCOPED_ENUMS
+#define BOOST_DECLARE_STRONG_ENUM_BEGIN(x) \
+ struct x { \
+ enum enum_type
+
+#define BOOST_DECLARE_STRONG_ENUM_END(x) \
+ enum_type v_; \
+ inline x() {} \
+ inline x(enum_type v) : v_(v) {} \
+ inline operator int() const {return v_;} \
+ friend inline bool operator ==(x lhs, int rhs) {return lhs.v_==rhs;} \
+ friend inline bool operator ==(int lhs, x rhs) {return lhs==rhs.v_;} \
+ friend inline bool operator !=(x lhs, int rhs) {return lhs.v_!=rhs;} \
+ friend inline bool operator !=(int lhs, x rhs) {return lhs!=rhs.v_;} \
+ };
+
+#define BOOST_STRONG_ENUM_NATIVE(x) x::enum_type
+#else // BOOST_NO_SCOPED_ENUMS
+#define BOOST_DECLARE_STRONG_ENUM_BEGIN(x) enum class x
+#define BOOST_DECLARE_STRONG_ENUM_END(x)
+#define BOOST_STRONG_ENUM_NATIVE(x) x
+#endif // BOOST_NO_SCOPED_ENUMS
+
 #if BOOST_WORKAROUND(__BORLANDC__, < 0x600)
 # pragma warn -8008 // Condition always true/false
 # pragma warn -8080 // Identifier declared but never used

Modified: branches/quickbook-dev/boost/thread/detail/move.hpp
==============================================================================
--- branches/quickbook-dev/boost/thread/detail/move.hpp (original)
+++ branches/quickbook-dev/boost/thread/detail/move.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -6,29 +6,20 @@
 #ifndef BOOST_THREAD_MOVE_HPP
 #define BOOST_THREAD_MOVE_HPP
 
+#include <boost/thread/detail/config.hpp>
 #ifndef BOOST_NO_SFINAE
 #include <boost/utility/enable_if.hpp>
 #include <boost/type_traits/is_convertible.hpp>
 #include <boost/type_traits/remove_reference.hpp>
 #endif
 
+#include <boost/move/move.hpp>
+
 #include <boost/config/abi_prefix.hpp>
 
 namespace boost
 {
 
-#ifndef BOOST_NO_RVALUE_REFERENCES
-
- template <class T>
- typename remove_reference<T>::type&&
- move(T&& t)
- {
- typedef typename remove_reference<T>::type Up;
- return static_cast<Up&&>(t);
- }
-
-#endif
-
     namespace detail
     {
         template<typename T>
@@ -55,14 +46,14 @@
 
 #ifndef BOOST_NO_SFINAE
     template<typename T>
- typename enable_if<boost::is_convertible<T&,detail::thread_move_t<T> >, detail::thread_move_t<T> >::type move(T& t)
+ typename enable_if<boost::is_convertible<T&,boost::detail::thread_move_t<T> >, boost::detail::thread_move_t<T> >::type move(T& t)
     {
- return detail::thread_move_t<T>(t);
+ return boost::detail::thread_move_t<T>(t);
     }
 #endif
 
     template<typename T>
- detail::thread_move_t<T> move(detail::thread_move_t<T> t)
+ boost::detail::thread_move_t<T> move(boost::detail::thread_move_t<T> t)
     {
         return t;
     }

Modified: branches/quickbook-dev/boost/thread/detail/thread.hpp
==============================================================================
--- branches/quickbook-dev/boost/thread/detail/thread.hpp (original)
+++ branches/quickbook-dev/boost/thread/detail/thread.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -4,12 +4,18 @@
 // accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)
 // (C) Copyright 2007-10 Anthony Williams
+// (C) Copyright 20011-12 Vicente J. Botet Escriba
 
+#include <boost/thread/detail/config.hpp>
 #include <boost/thread/exceptions.hpp>
 #ifndef BOOST_NO_IOSTREAM
 #include <ostream>
 #endif
+#if defined BOOST_THREAD_USES_MOVE
+#include <boost/move/move.hpp>
+#else
 #include <boost/thread/detail/move.hpp>
+#endif
 #include <boost/thread/mutex.hpp>
 #include <boost/thread/xtime.hpp>
 #include <boost/thread/detail/thread_heap_alloc.hpp>
@@ -25,6 +31,13 @@
 #include <boost/utility/enable_if.hpp>
 #include <boost/type_traits/remove_reference.hpp>
 #include <boost/io/ios_state.hpp>
+#include <boost/type_traits/is_same.hpp>
+#include <boost/type_traits/decay.hpp>
+#include <boost/functional/hash.hpp>
+#ifdef BOOST_THREAD_USES_CHRONO
+#include <boost/chrono/system_clocks.hpp>
+#include <boost/chrono/ceil.hpp>
+#endif
 
 #include <boost/config/abi_prefix.hpp>
 
@@ -35,6 +48,19 @@
 
 namespace boost
 {
+
+#ifndef BOOST_NO_RVALUE_REFERENCES
+ namespace thread_detail
+ {
+ template <class T>
+ typename decay<T>::type
+ decay_copy(T&& t)
+ {
+ return boost::forward<T>(t);
+ }
+ }
+#endif
+
     namespace detail
     {
         template<typename F>
@@ -44,19 +70,26 @@
         public:
 #ifndef BOOST_NO_RVALUE_REFERENCES
             thread_data(F&& f_):
- f(static_cast<F&&>(f_))
- {}
- thread_data(F& f_):
- f(f_)
+ f(boost::forward<F>(f_))
             {}
+// This overloading must be removed if we want the packaged_task's tests to pass.
+// thread_data(F& f_):
+// f(f_)
+// {}
 #else
             thread_data(F f_):
                 f(f_)
             {}
+#if defined BOOST_THREAD_USES_MOVE
+ thread_data(boost::rv<F>& f_):
+ f(boost::move(f_))
+ {}
+#else
             thread_data(detail::thread_move_t<F> f_):
                 f(f_)
             {}
 #endif
+#endif
             void run()
             {
                 f();
@@ -110,15 +143,39 @@
 
     class BOOST_THREAD_DECL thread
     {
+ public:
+ typedef int boost_move_emulation_t;
+ typedef thread_attributes attributes;
+
+#ifndef BOOST_NO_DELETED_FUNCTIONS
+ public:
+ thread(thread const&) = delete;
+ thread& operator=(thread const&) = delete;
+#else // BOOST_NO_DELETED_FUNCTIONS
+ private:
+// BOOST_MOVABLE_BUT_NOT_COPYABLE(thread)
+
+#if defined BOOST_THREAD_USES_MOVE
+ private:
+ //thread(thread const&);
+ thread(thread &);
+ //thread& operator=(thread const&);
+ thread& operator=(thread &);
+#else
+ private:
+ thread(thread&);
+ thread& operator=(thread&);
+#endif
+ public:
+#endif // BOOST_NO_DELETED_FUNCTIONS
     private:
- thread(thread&);
- thread& operator=(thread&);
 
         void release_handle();
 
         detail::thread_data_ptr thread_info;
 
         void start_thread();
+ void start_thread(const attributes& attr);
 
         explicit thread(detail::thread_data_ptr data);
 
@@ -128,11 +185,13 @@
         template<typename F>
         static inline detail::thread_data_ptr make_thread_info(F&& f)
         {
- return detail::thread_data_ptr(detail::heap_new<detail::thread_data<typename boost::remove_reference<F>::type> >(static_cast<F&&>(f)));
+ return detail::thread_data_ptr(detail::heap_new<detail::thread_data<typename boost::remove_reference<F>::type> >(
+ boost::forward<F>(f)));
         }
         static inline detail::thread_data_ptr make_thread_info(void (*f)())
         {
- return detail::thread_data_ptr(detail::heap_new<detail::thread_data<void(*)()> >(static_cast<void(*&&)()>(f)));
+ return detail::thread_data_ptr(detail::heap_new<detail::thread_data<void(*)()> >(
+ boost::forward<void(*)()>(f)));
         }
 #else
         template<typename F>
@@ -140,6 +199,14 @@
         {
             return detail::thread_data_ptr(detail::heap_new<detail::thread_data<F> >(f));
         }
+#if defined BOOST_THREAD_USES_MOVE
+ template<typename F>
+ static inline detail::thread_data_ptr make_thread_info(boost::rv<F>& f)
+ {
+ return detail::thread_data_ptr(detail::heap_new<detail::thread_data<F> >(boost::move(f)));
+ }
+
+#else
         template<typename F>
         static inline detail::thread_data_ptr make_thread_info(boost::detail::thread_move_t<F> f)
         {
@@ -147,16 +214,17 @@
         }
 
 #endif
+#endif
         struct dummy;
     public:
 #if BOOST_WORKAROUND(__SUNPRO_CC, < 0x5100)
         thread(const volatile thread&);
 #endif
- thread();
+ thread() BOOST_NOEXCEPT;
         ~thread();
 
 #ifndef BOOST_NO_RVALUE_REFERENCES
-#ifdef BOOST_MSVC
+#ifdef BOOST_MSVCXX
         template <class F>
         explicit thread(F f,typename disable_if<boost::is_convertible<F&,detail::thread_move_t<F> >, dummy* >::type=0):
             thread_info(make_thread_info(static_cast<F&&>(f)))
@@ -164,30 +232,46 @@
             start_thread();
         }
 #else
- template <class F>
- thread(F&& f):
- thread_info(make_thread_info(static_cast<F&&>(f)))
+ template <
+ class F
+ //, class Dummy = typename disable_if< is_same<typename decay<F>::type, thread> >::type
+ >
+ explicit thread(F&& f
+ , typename disable_if<is_same<typename decay<F>::type, thread>, dummy* >::type=0
+ ):
+ thread_info(make_thread_info(thread_detail::decay_copy(boost::forward<F>(f))))
         {
             start_thread();
         }
+ template <
+ class F
+ //, class Dummy = typename disable_if< is_same<typename decay<F>::type, thread> >::type
+ >
+ thread(attributes& attrs, F&& f
+ , typename disable_if<is_same<typename decay<F>::type, thread>, dummy* >::type=0
+ ):
+ thread_info(make_thread_info(thread_detail::decay_copy(boost::forward<F>(f))))
+ {
+ start_thread(attrs);
+ }
 #endif
 
- thread(thread&& other)
+ thread(thread&& other) BOOST_NOEXCEPT
         {
             thread_info.swap(other.thread_info);
         }
 
- thread& operator=(thread&& other)
+ thread& operator=(thread&& other) BOOST_NOEXCEPT
         {
             thread_info=other.thread_info;
             other.thread_info.reset();
             return *this;
         }
 
- thread&& move()
- {
- return static_cast<thread&&>(*this);
- }
+// thread&& move()
+// {
+// return static_cast<thread&&>(*this);
+// }
 
 #else
 #ifdef BOOST_NO_SFINAE
@@ -197,6 +281,26 @@
         {
             start_thread();
         }
+ template <class F>
+ thread(attributes& attrs, F f):
+ thread_info(make_thread_info(f))
+ {
+ start_thread(attrs);
+ }
+#else
+#if defined BOOST_THREAD_USES_MOVE
+ template <class F>
+ explicit thread(F f,typename disable_if<boost::is_convertible<F&,boost::rv<F>& >, dummy* >::type=0):
+ thread_info(make_thread_info(f))
+ {
+ start_thread();
+ }
+ template <class F>
+ thread(attributes& attrs, F f,typename disable_if<boost::is_convertible<F&,boost::rv<F>& >, dummy* >::type=0):
+ thread_info(make_thread_info(f))
+ {
+ start_thread(attrs);
+ }
 #else
         template <class F>
         explicit thread(F f,typename disable_if<boost::is_convertible<F&,detail::thread_move_t<F> >, dummy* >::type=0):
@@ -204,8 +308,52 @@
         {
             start_thread();
         }
+ template <class F>
+ thread(attributes& attrs, F f,typename disable_if<boost::is_convertible<F&,detail::thread_move_t<F> >, dummy* >::type=0):
+ thread_info(make_thread_info(f))
+ {
+ start_thread(attrs);
+ }
+#endif
 #endif
 
+#if defined BOOST_THREAD_USES_MOVE
+ template <class F>
+ explicit thread(boost::rv<F>& f):
+ thread_info(make_thread_info(boost::move(f)))
+ {
+ start_thread();
+ }
+
+
+// explicit thread(void (*f)()):
+// thread_info(make_thread_info(f))
+// {
+// start_thread();
+// }
+//
+// template <class F>
+// explicit thread(BOOST_FWD_REF(F) f):
+// thread_info(make_thread_info(boost::forward<F>(f)))
+// {
+// start_thread();
+// }
+
+ template <class F>
+ thread(attributes& attrs, boost::rv<F>& f):
+ thread_info(make_thread_info(boost::move(f)))
+ {
+ start_thread(attrs);
+ }
+
+
+ thread(boost::rv<thread>& x)
+ //thread(BOOST_RV_REF(thread) x)
+ {
+ thread_info=x.thread_info;
+ x.thread_info.reset();
+ }
+#else
         template <class F>
         explicit thread(detail::thread_move_t<F> f):
             thread_info(make_thread_info(f))
@@ -213,11 +361,19 @@
             start_thread();
         }
 
+ template <class F>
+ thread(attributes& attrs, detail::thread_move_t<F> f):
+ thread_info(make_thread_info(f))
+ {
+ start_thread(attrs);
+ }
+
         thread(detail::thread_move_t<thread> x)
         {
             thread_info=x->thread_info;
             x->thread_info.reset();
         }
+#endif
 
 #if BOOST_WORKAROUND(__SUNPRO_CC, < 0x5100)
         thread& operator=(thread x)
@@ -226,6 +382,14 @@
             return *this;
         }
 #else
+#if defined BOOST_THREAD_USES_MOVE
+ thread& operator=(boost::rv<thread>& x)
+ {
+ thread new_thread(boost::move(x));
+ swap(new_thread);
+ return *this;
+ }
+#else
         thread& operator=(detail::thread_move_t<thread> x)
         {
             thread new_thread(x);
@@ -233,6 +397,18 @@
             return *this;
         }
 #endif
+#endif
+
+#if defined BOOST_THREAD_USES_MOVE
+ operator ::boost::rv<thread>&()
+ {
+ return *static_cast< ::boost::rv<thread>* >(this);
+ }
+ operator const ::boost::rv<thread>&() const
+ {
+ return *static_cast<const ::boost::rv<thread>* >(this);
+ }
+#else
         operator detail::thread_move_t<thread>()
         {
             return move();
@@ -243,11 +419,12 @@
             detail::thread_move_t<thread> x(*this);
             return x;
         }
+#endif
 
 #endif
 
         template <class F,class A1>
- thread(F f,A1 a1):
+ thread(F f,A1 a1,typename disable_if<boost::is_convertible<F&,thread_attributes >, dummy* >::type=0):
             thread_info(make_thread_info(boost::bind(boost::type<void>(),f,a1)))
         {
             start_thread();
@@ -308,27 +485,92 @@
             start_thread();
         }
 
- void swap(thread& x)
+ void swap(thread& x) BOOST_NOEXCEPT
         {
             thread_info.swap(x.thread_info);
         }
 
         class BOOST_SYMBOL_VISIBLE id;
- id get_id() const;
+ id get_id() const BOOST_NOEXCEPT;
 
 
- bool joinable() const;
+ bool joinable() const BOOST_NOEXCEPT;
         void join();
- bool timed_join(const system_time& wait_until);
+#if defined(BOOST_THREAD_PLATFORM_WIN32)
+ bool timed_join(const system_time& abs_time);
+
+#ifdef BOOST_THREAD_USES_CHRONO
+ template <class Rep, class Period>
+ bool try_join_for(const chrono::duration<Rep, Period>& rel_time)
+ {
+ return try_join_for(chrono::ceil<chrono::milliseconds>(rel_time));
+ }
+ template <class Clock, class Duration>
+ bool try_join_until(const chrono::time_point<Clock, Duration>& t)
+ {
+ using namespace chrono;
+ typename Clock::time_point c_now = Clock::now();
+ return try_join_for(chrono::ceil<chrono::milliseconds>(t - c_now));
+ }
+#endif
+ private:
+#ifdef BOOST_THREAD_USES_CHRONO
+ bool do_try_join_for(chrono::milliseconds const &rel_time_in_milliseconds);
+#endif
+ public:
+
+#else
+ bool timed_join(const system_time& abs_time) {
+ struct timespec const ts=detail::get_timespec(abs_time);
+ return do_try_join_until(ts);
+ }
+#ifdef BOOST_THREAD_USES_CHRONO
+ template <class Rep, class Period>
+ bool try_join_for(const chrono::duration<Rep, Period>& rel_time)
+ {
+ return try_join_until(chrono::steady_clock::now() + rel_time);
+ }
+ template <class Clock, class Duration>
+ bool try_join_until(const chrono::time_point<Clock, Duration>& t)
+ {
+ using namespace chrono;
+ system_clock::time_point s_now = system_clock::now();
+ typename Clock::time_point c_now = Clock::now();
+ return try_join_until(s_now + ceil<nanoseconds>(t - c_now));
+ }
+ template <class Duration>
+ bool try_join_until(const chrono::time_point<chrono::system_clock, Duration>& t)
+ {
+ using namespace chrono;
+ typedef time_point<system_clock, nanoseconds> nano_sys_tmpt;
+ return try_join_until(nano_sys_tmpt(ceil<nanoseconds>(t.time_since_epoch())));
+ }
+ bool try_join_until(const chrono::time_point<chrono::system_clock, chrono::nanoseconds>& tp)
+ {
+ using namespace chrono;
+ nanoseconds d = tp.time_since_epoch();
+ timespec ts;
+ seconds s = duration_cast<seconds>(d);
+ ts.tv_sec = static_cast<long>(s.count());
+ ts.tv_nsec = static_cast<long>((d - s).count());
+ return do_try_join_until(ts);
+ }
+#endif
+ private:
+ bool do_try_join_until(struct timespec const &timeout);
+ public:
+
+#endif
 
         template<typename TimeDuration>
         inline bool timed_join(TimeDuration const& rel_time)
         {
             return timed_join(get_system_time()+rel_time);
         }
+
         void detach();
 
- static unsigned hardware_concurrency();
+ static unsigned hardware_concurrency() BOOST_NOEXCEPT;
 
         typedef detail::thread_data_base::native_handle_type native_handle_type;
         native_handle_type native_handle();
@@ -337,7 +579,7 @@
         bool operator==(const thread& other) const;
         bool operator!=(const thread& other) const;
 
- static inline void yield()
+ static inline void yield() BOOST_NOEXCEPT
         {
             this_thread::yield();
         }
@@ -352,7 +594,7 @@
         bool interruption_requested() const;
     };
 
- inline void swap(thread& lhs,thread& rhs)
+ inline void swap(thread& lhs,thread& rhs) BOOST_NOEXCEPT
     {
         return lhs.swap(rhs);
     }
@@ -367,15 +609,26 @@
         return static_cast<thread&&>(t);
     }
 #else
+#if !defined BOOST_THREAD_USES_MOVE
     inline detail::thread_move_t<thread> move(detail::thread_move_t<thread> t)
     {
         return t;
     }
 #endif
+#endif
+
+#ifdef BOOST_NO_RVALUE_REFERENCES
+#if !defined BOOST_THREAD_USES_MOVE
+ template <>
+ struct has_move_emulation_enabled_aux<thread>
+ : BOOST_MOVE_BOOST_NS::integral_constant<bool, true>
+ {};
+#endif
+#endif
 
     namespace this_thread
     {
- thread::id BOOST_THREAD_DECL get_id();
+ thread::id BOOST_THREAD_DECL get_id() BOOST_NOEXCEPT;
 
         void BOOST_THREAD_DECL interruption_point();
         bool BOOST_THREAD_DECL interruption_enabled();
@@ -390,48 +643,55 @@
     class BOOST_SYMBOL_VISIBLE thread::id
     {
     private:
+ friend inline
+ std::size_t
+ hash_value(const thread::id &v)
+ {
+ return hash_value(v.thread_data.get());
+ }
+
         detail::thread_data_ptr thread_data;
 
         id(detail::thread_data_ptr thread_data_):
             thread_data(thread_data_)
         {}
         friend class thread;
- friend id BOOST_THREAD_DECL this_thread::get_id();
+ friend id BOOST_THREAD_DECL this_thread::get_id() BOOST_NOEXCEPT;
     public:
- id():
+ id() BOOST_NOEXCEPT:
             thread_data()
         {}
 
- id(const id& other):
+ id(const id& other) BOOST_NOEXCEPT :
             thread_data(other.thread_data)
         {}
 
- bool operator==(const id& y) const
+ bool operator==(const id& y) const BOOST_NOEXCEPT
         {
             return thread_data==y.thread_data;
         }
 
- bool operator!=(const id& y) const
+ bool operator!=(const id& y) const BOOST_NOEXCEPT
         {
             return thread_data!=y.thread_data;
         }
 
- bool operator<(const id& y) const
+ bool operator<(const id& y) const BOOST_NOEXCEPT
         {
             return thread_data<y.thread_data;
         }
 
- bool operator>(const id& y) const
+ bool operator>(const id& y) const BOOST_NOEXCEPT
         {
             return y.thread_data<thread_data;
         }
 
- bool operator<=(const id& y) const
+ bool operator<=(const id& y) const BOOST_NOEXCEPT
         {
             return !(y.thread_data<thread_data);
         }
 
- bool operator>=(const id& y) const
+ bool operator>=(const id& y) const BOOST_NOEXCEPT
         {
             return !(thread_data<y.thread_data);
         }
@@ -440,7 +700,7 @@
 #ifndef BOOST_NO_MEMBER_TEMPLATE_FRIENDS
         template<class charT, class traits>
         friend BOOST_SYMBOL_VISIBLE
- std::basic_ostream<charT, traits>&
+ std::basic_ostream<charT, traits>&
         operator<<(std::basic_ostream<charT, traits>& os, const id& x)
         {
             if(x.thread_data)
@@ -456,7 +716,7 @@
 #else
         template<class charT, class traits>
         BOOST_SYMBOL_VISIBLE
- std::basic_ostream<charT, traits>&
+ std::basic_ostream<charT, traits>&
         print(std::basic_ostream<charT, traits>& os) const
         {
             if(thread_data)

Modified: branches/quickbook-dev/boost/thread/exceptions.hpp
==============================================================================
--- branches/quickbook-dev/boost/thread/exceptions.hpp (original)
+++ branches/quickbook-dev/boost/thread/exceptions.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // William E. Kempf
 // Copyright (C) 2007-9 Anthony Williams
 //
-// Distributed under the Boost Software License, Version 1.0. (See accompanying
+// Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
 #ifndef BOOST_THREAD_EXCEPTIONS_PDM070801_H
@@ -18,6 +18,9 @@
 
 #include <string>
 #include <stdexcept>
+#include <boost/system/system_error.hpp>
+#include <boost/system/error_code.hpp>
+
 
 #include <boost/config/abi_prefix.hpp>
 
@@ -28,151 +31,188 @@
     {};
 
     class BOOST_SYMBOL_VISIBLE thread_exception:
- public std::exception
+ public system::system_error
+ //public std::exception
     {
- protected:
- thread_exception():
- m_sys_err(0)
+ typedef system::system_error base_type;
+ public:
+ thread_exception()
+ : base_type(0,system::system_category())
         {}
-
- thread_exception(int sys_err_code):
- m_sys_err(sys_err_code)
+
+ thread_exception(int sys_error_code)
+ : base_type(sys_error_code, system::system_category())
         {}
-
 
- public:
+ thread_exception( int ev, const char * what_arg )
+ : base_type(system::error_code(ev, system::system_category()), what_arg)
+ {
+ }
+ thread_exception( int ev, const std::string & what_arg )
+ : base_type(system::error_code(ev, system::system_category()), what_arg)
+ {
+ }
+
         ~thread_exception() throw()
         {}
-
+
 
         int native_error() const
         {
- return m_sys_err;
+ return code().value();
         }
-
 
- private:
- int m_sys_err;
     };
 
     class BOOST_SYMBOL_VISIBLE condition_error:
- public std::exception
+ public system::system_error
+ //public std::exception
     {
+ typedef system::system_error base_type;
     public:
- const char* what() const throw()
- {
- return "Condition error";
- }
+ condition_error()
+ : base_type(system::error_code(0, system::system_category()), "Condition error")
+ {}
+ condition_error( int ev )
+ : base_type(system::error_code(ev, system::system_category()), "Condition error")
+ {
+ }
+ condition_error( int ev, const char * what_arg )
+ : base_type(system::error_code(ev, system::system_category()), what_arg)
+ {
+ }
+ condition_error( int ev, const std::string & what_arg )
+ : base_type(system::error_code(ev, system::system_category()), what_arg)
+ {
+ }
     };
-
+
 
     class BOOST_SYMBOL_VISIBLE lock_error:
         public thread_exception
     {
+ typedef thread_exception base_type;
     public:
         lock_error()
+ : base_type(0, "boost::lock_error")
         {}
-
- lock_error(int sys_err_code):
- thread_exception(sys_err_code)
- {}
-
- ~lock_error() throw()
- {}
-
 
- virtual const char* what() const throw()
+ lock_error( int ev )
+ : base_type(ev, "boost::lock_error")
+ {
+ }
+ lock_error( int ev, const char * what_arg )
+ : base_type(ev, what_arg)
         {
- return "boost::lock_error";
         }
+ lock_error( int ev, const std::string & what_arg )
+ : base_type(ev, what_arg)
+ {
+ }
+
+ ~lock_error() throw()
+ {}
+
     };
 
     class BOOST_SYMBOL_VISIBLE thread_resource_error:
         public thread_exception
     {
+ typedef thread_exception base_type;
     public:
- thread_resource_error()
- {}
-
- thread_resource_error(int sys_err_code):
- thread_exception(sys_err_code)
- {}
-
+ thread_resource_error()
+ : base_type(system::errc::resource_unavailable_try_again, "boost::thread_resource_error")
+ {}
+
+ thread_resource_error( int ev )
+ : base_type(ev, "boost::thread_resource_error")
+ {
+ }
+ thread_resource_error( int ev, const char * what_arg )
+ : base_type(ev, what_arg)
+ {
+ }
+ thread_resource_error( int ev, const std::string & what_arg )
+ : base_type(ev, what_arg)
+ {
+ }
+
+
         ~thread_resource_error() throw()
         {}
-
 
- virtual const char* what() const throw()
- {
- return "boost::thread_resource_error";
- }
-
     };
 
     class BOOST_SYMBOL_VISIBLE unsupported_thread_option:
         public thread_exception
     {
+ typedef thread_exception base_type;
     public:
- unsupported_thread_option()
- {}
-
- unsupported_thread_option(int sys_err_code):
- thread_exception(sys_err_code)
- {}
-
- ~unsupported_thread_option() throw()
- {}
-
+ unsupported_thread_option()
+ : base_type(system::errc::invalid_argument, "boost::unsupported_thread_option")
+ {}
+
+ unsupported_thread_option( int ev )
+ : base_type(ev, "boost::unsupported_thread_option")
+ {
+ }
+ unsupported_thread_option( int ev, const char * what_arg )
+ : base_type(ev, what_arg)
+ {
+ }
+ unsupported_thread_option( int ev, const std::string & what_arg )
+ : base_type(ev, what_arg)
+ {
+ }
 
- virtual const char* what() const throw()
- {
- return "boost::unsupported_thread_option";
- }
-
     };
 
     class BOOST_SYMBOL_VISIBLE invalid_thread_argument:
         public thread_exception
     {
+ typedef thread_exception base_type;
     public:
         invalid_thread_argument()
+ : base_type(system::errc::invalid_argument, "boost::invalid_thread_argument")
         {}
-
- invalid_thread_argument(int sys_err_code):
- thread_exception(sys_err_code)
- {}
-
- ~invalid_thread_argument() throw()
- {}
-
 
- virtual const char* what() const throw()
+ invalid_thread_argument( int ev )
+ : base_type(ev, "boost::invalid_thread_argument")
+ {
+ }
+ invalid_thread_argument( int ev, const char * what_arg )
+ : base_type(ev, what_arg)
         {
- return "boost::invalid_thread_argument";
         }
-
+ invalid_thread_argument( int ev, const std::string & what_arg )
+ : base_type(ev, what_arg)
+ {
+ }
+
     };
 
     class BOOST_SYMBOL_VISIBLE thread_permission_error:
         public thread_exception
     {
+ typedef thread_exception base_type;
     public:
- thread_permission_error()
- {}
-
- thread_permission_error(int sys_err_code):
- thread_exception(sys_err_code)
- {}
-
- ~thread_permission_error() throw()
- {}
-
+ thread_permission_error()
+ : base_type(system::errc::permission_denied, "boost::thread_permission_error")
+ {}
+
+ thread_permission_error( int ev )
+ : base_type(ev, "boost::thread_permission_error")
+ {
+ }
+ thread_permission_error( int ev, const char * what_arg )
+ : base_type(ev, what_arg)
+ {
+ }
+ thread_permission_error( int ev, const std::string & what_arg )
+ : base_type(ev, what_arg)
+ {
+ }
 
- virtual const char* what() const throw()
- {
- return "boost::thread_permission_error";
- }
-
     };
 
 } // namespace boost

Modified: branches/quickbook-dev/boost/thread/future.hpp
==============================================================================
--- branches/quickbook-dev/boost/thread/future.hpp (original)
+++ branches/quickbook-dev/boost/thread/future.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -6,6 +6,8 @@
 
 #ifndef BOOST_THREAD_FUTURE_HPP
 #define BOOST_THREAD_FUTURE_HPP
+
+#include <boost/thread/detail/config.hpp>
 #include <stdexcept>
 #include <boost/thread/detail/move.hpp>
 #include <boost/thread/thread_time.hpp>
@@ -28,59 +30,157 @@
 #include <list>
 #include <boost/next_prior.hpp>
 #include <vector>
+#include <boost/system/error_code.hpp>
+#ifdef BOOST_THREAD_USES_CHRONO
+#include <boost/chrono/system_clocks.hpp>
+#endif
+
+#if BOOST_THREAD_VERSION==1
+#define BOOST_THREAD_FUTURE unique_future
+#else
+#define BOOST_THREAD_FUTURE future
+#endif
 
 namespace boost
 {
- class future_uninitialized:
- public std::logic_error
+
+ //enum class future_errc
+ BOOST_DECLARE_STRONG_ENUM_BEGIN(future_errc)
+ {
+ broken_promise,
+ future_already_retrieved,
+ promise_already_satisfied,
+ no_state
+ };
+ BOOST_DECLARE_STRONG_ENUM_END(future_errc)
+
+ namespace system
+ {
+ template <>
+ struct BOOST_SYMBOL_VISIBLE is_error_code_enum<future_errc> : public true_type {};
+
+ #ifdef BOOST_NO_SCOPED_ENUMS
+ template <>
+ struct BOOST_SYMBOL_VISIBLE is_error_code_enum<future_errc::enum_type> : public true_type { };
+ #endif
+ }
+
+ //enum class launch
+ BOOST_DECLARE_STRONG_ENUM_BEGIN(launch)
+ {
+ async = 1,
+ deferred = 2,
+ any = async | deferred
+ };
+ BOOST_DECLARE_STRONG_ENUM_END(launch)
+
+ //enum class future_status
+ BOOST_DECLARE_STRONG_ENUM_BEGIN(future_status)
+ {
+ ready,
+ timeout,
+ deferred
+ };
+ BOOST_DECLARE_STRONG_ENUM_END(future_status)
+
+ BOOST_THREAD_DECL
+ const system::error_category& future_category();
+
+ namespace system
+ {
+ inline BOOST_THREAD_DECL
+ error_code
+ make_error_code(future_errc e)
+ {
+ return error_code(static_cast<int>(e), boost::future_category());
+ }
+
+ inline BOOST_THREAD_DECL
+ error_condition
+ make_error_condition(future_errc e)
+ {
+ return error_condition(static_cast<int>(e), future_category());
+ }
+ }
+
+ class BOOST_THREAD_DECL future_error
+ : public std::logic_error
+ {
+ system::error_code ec_;
+ public:
+ future_error(system::error_code ec);
+
+ BOOST_SYMBOL_VISIBLE
+ const system::error_code& code() const BOOST_NOEXCEPT
+ {
+ return ec_;
+ }
+
+ //virtual ~future_error() BOOST_NOEXCEPT;
+ };
+
+ class BOOST_SYMBOL_VISIBLE future_uninitialized:
+ public future_error
     {
     public:
         future_uninitialized():
- std::logic_error("Future Uninitialized")
+ future_error(system::make_error_code(future_errc::no_state))
         {}
     };
- class broken_promise:
- public std::logic_error
+ class BOOST_SYMBOL_VISIBLE broken_promise:
+ public future_error
     {
     public:
         broken_promise():
- std::logic_error("Broken promise")
+ future_error(system::make_error_code(future_errc::broken_promise))
         {}
     };
- class future_already_retrieved:
- public std::logic_error
+ class BOOST_SYMBOL_VISIBLE future_already_retrieved:
+ public future_error
     {
     public:
         future_already_retrieved():
- std::logic_error("Future already retrieved")
+ future_error(system::make_error_code(future_errc::future_already_retrieved))
         {}
     };
- class promise_already_satisfied:
- public std::logic_error
+ class BOOST_SYMBOL_VISIBLE promise_already_satisfied:
+ public future_error
     {
     public:
         promise_already_satisfied():
- std::logic_error("Promise already satisfied")
+ future_error(system::make_error_code(future_errc::promise_already_satisfied))
         {}
     };
 
- class task_already_started:
- public std::logic_error
+ class BOOST_SYMBOL_VISIBLE task_already_started:
+ public future_error
     {
     public:
         task_already_started():
- std::logic_error("Task already started")
+ future_error(system::make_error_code(future_errc::promise_already_satisfied))
+ //std::logic_error("Task already started")
         {}
     };
 
- class task_moved:
- public std::logic_error
- {
- public:
- task_moved():
- std::logic_error("Task moved")
- {}
- };
+ class BOOST_SYMBOL_VISIBLE task_moved:
+ public future_error
+ {
+ public:
+ task_moved():
+ future_error(system::make_error_code(future_errc::no_state))
+ //std::logic_error("Task moved")
+ {}
+ };
+
+ class promise_moved:
+ public future_error
+ {
+ public:
+ promise_moved():
+ future_error(system::make_error_code(future_errc::no_state))
+ //std::logic_error("Promise moved")
+ {}
+ };
 
     namespace future_state
     {
@@ -93,6 +193,7 @@
         {
             boost::exception_ptr exception;
             bool done;
+ bool thread_was_interrupted;
             boost::mutex mutex;
             boost::condition_variable waiters;
             typedef std::list<boost::condition_variable_any*> waiter_list;
@@ -100,7 +201,8 @@
             boost::function<void()> callback;
 
             future_object_base():
- done(false)
+ done(false),
+ thread_was_interrupted(false)
             {}
             virtual ~future_object_base()
             {}
@@ -165,6 +267,10 @@
                 {
                     waiters.wait(lock);
                 }
+ if(rethrow && thread_was_interrupted)
+ {
+ throw boost::thread_interrupted();
+ }
                 if(rethrow && exception)
                 {
                     boost::rethrow_exception(exception);
@@ -186,6 +292,25 @@
                 return true;
             }
 
+#ifdef BOOST_THREAD_USES_CHRONO
+
+ template <class Clock, class Duration>
+ future_status
+ wait_until(const chrono::time_point<Clock, Duration>& abs_time)
+ {
+ boost::unique_lock<boost::mutex> lock(mutex);
+ do_callback(lock);
+ while(!done)
+ {
+ cv_status const st=waiters.wait_until(lock,abs_time);
+ if(st==cv_status::timeout && !done)
+ {
+ return future_status::timeout;
+ }
+ }
+ return future_status::ready;
+ }
+#endif
             void mark_exceptional_finish_internal(boost::exception_ptr const& e)
             {
                 exception=e;
@@ -196,16 +321,21 @@
                 boost::lock_guard<boost::mutex> lock(mutex);
                 mark_exceptional_finish_internal(boost::current_exception());
             }
-
+ void mark_interrupted_finish()
+ {
+ boost::lock_guard<boost::mutex> lock(mutex);
+ thread_was_interrupted=true;
+ mark_finished_internal();
+ }
             bool has_value()
             {
                 boost::lock_guard<boost::mutex> lock(mutex);
- return done && !exception;
+ return done && !(exception || thread_was_interrupted);
             }
             bool has_exception()
             {
                 boost::lock_guard<boost::mutex> lock(mutex);
- return done && exception;
+ return done && (exception || thread_was_interrupted);
             }
 
             template<typename F,typename U>
@@ -229,10 +359,17 @@
             typedef typename boost::mpl::if_<boost::is_fundamental<T>,dummy&,T&&>::type rvalue_source_type;
             typedef typename boost::mpl::if_<boost::is_fundamental<T>,T,T&&>::type move_dest_type;
 #else
+#if defined BOOST_THREAD_USES_MOVE
+ typedef T& source_reference_type;
+ typedef typename boost::mpl::if_<boost::has_move_emulation_enabled<T>,::boost::rv<T>&,T const&>::type rvalue_source_type;
+ typedef typename boost::mpl::if_<boost::has_move_emulation_enabled<T>,::boost::rv<T>&,T>::type move_dest_type;
+#else
             typedef T& source_reference_type;
             typedef typename boost::mpl::if_<boost::is_convertible<T&,boost::detail::thread_move_t<T> >,boost::detail::thread_move_t<T>,T const&>::type rvalue_source_type;
             typedef typename boost::mpl::if_<boost::is_convertible<T&,boost::detail::thread_move_t<T> >,boost::detail::thread_move_t<T>,T>::type move_dest_type;
 #endif
+#endif
+ typedef const T& shared_future_get_result_type;
 
             static void init(storage_type& storage,source_reference_type t)
             {
@@ -241,7 +378,7 @@
 
             static void init(storage_type& storage,rvalue_source_type t)
             {
- storage.reset(new T(static_cast<rvalue_source_type>(t)));
+ storage.reset(new T(static_cast<rvalue_source_type>(t)));
             }
 
             static void cleanup(storage_type& storage)
@@ -258,6 +395,7 @@
             struct rvalue_source_type
             {};
             typedef T& move_dest_type;
+ typedef T& shared_future_get_result_type;
 
             static void init(storage_type& storage,T& t)
             {
@@ -275,6 +413,7 @@
         {
             typedef bool storage_type;
             typedef void move_dest_type;
+ typedef void shared_future_get_result_type;
 
             static void init(storage_type& storage)
             {
@@ -296,6 +435,7 @@
             typedef typename future_traits<T>::source_reference_type source_reference_type;
             typedef typename future_traits<T>::rvalue_source_type rvalue_source_type;
             typedef typename future_traits<T>::move_dest_type move_dest_type;
+ typedef typename future_traits<T>::shared_future_get_result_type shared_future_get_result_type;
 
             storage_type result;
 
@@ -322,14 +462,31 @@
             void mark_finished_with_result(rvalue_source_type result_)
             {
                 boost::lock_guard<boost::mutex> lock(mutex);
+#if defined BOOST_THREAD_USES_MOVEXX
+ mark_finished_with_result_internal(static_cast<rvalue_source_type>(result_));
+#else
                 mark_finished_with_result_internal(result_);
+#endif
             }
 
+#if defined BOOST_THREAD_USES_MOVEXX
+ T& get()
+ {
+ wait();
+ return *result; }
+#else
             move_dest_type get()
             {
                 wait();
                 return static_cast<move_dest_type>(*result);
             }
+#endif
+
+ shared_future_get_result_type get_sh()
+ {
+ wait();
+ return static_cast<shared_future_get_result_type>(*result);
+ }
 
             future_state::state get_state()
             {
@@ -353,7 +510,7 @@
         struct future_object<void>:
             detail::future_object_base
         {
- typedef void move_dest_type;
+ typedef void shared_future_get_result_type;
 
             future_object()
             {}
@@ -373,7 +530,10 @@
             {
                 wait();
             }
-
+ void get_sh()
+ {
+ wait();
+ }
             future_state::state get_state()
             {
                 boost::lock_guard<boost::mutex> guard(mutex);
@@ -399,38 +559,32 @@
 
             struct registered_waiter
             {
- boost::shared_ptr<detail::future_object_base> future;
+ boost::shared_ptr<detail::future_object_base> future_;
                 detail::future_object_base::waiter_list::iterator wait_iterator;
                 count_type index;
 
- registered_waiter(boost::shared_ptr<detail::future_object_base> const& future_,
+ registered_waiter(boost::shared_ptr<detail::future_object_base> const& a_future,
                                   detail::future_object_base::waiter_list::iterator wait_iterator_,
                                   count_type index_):
- future(future_),wait_iterator(wait_iterator_),index(index_)
+ future_(a_future),wait_iterator(wait_iterator_),index(index_)
                 {}
 
             };
 
             struct all_futures_lock
             {
-#ifdef _MANAGED
- typedef std::ptrdiff_t count_type_portable;
-#else
- typedef count_type count_type_portable;
-#endif
- count_type_portable count;
-
+ count_type count;
                 boost::scoped_array<boost::unique_lock<boost::mutex> > locks;
 
                 all_futures_lock(std::vector<registered_waiter>& futures):
                     count(futures.size()),locks(new boost::unique_lock<boost::mutex>[count])
                 {
- for(count_type_portable i=0;i<count;++i)
+ for(count_type i=0;i<count;++i)
                     {
 #if defined __DECCXX || defined __SUNPRO_CC
- locks[i]=boost::unique_lock<boost::mutex>(futures[i].future->mutex).move();
+ locks[i]=boost::unique_lock<boost::mutex>(futures[i].future_->mutex).move();
 #else
- locks[i]=boost::unique_lock<boost::mutex>(futures[i].future->mutex);
+ locks[i]=boost::unique_lock<boost::mutex>(futures[i].future_->mutex);
 #endif
                     }
                 }
@@ -442,7 +596,7 @@
 
                 void unlock()
                 {
- for(count_type_portable i=0;i<count;++i)
+ for(count_type i=0;i<count;++i)
                     {
                         locks[i].unlock();
                     }
@@ -461,9 +615,9 @@
             template<typename F>
             void add(F& f)
             {
- if(f.future)
+ if(f.future_)
                 {
- futures.push_back(registered_waiter(f.future,f.future->register_external_waiter(cv),future_count));
+ futures.push_back(registered_waiter(f.future_,f.future_->register_external_waiter(cv),future_count));
                 }
                 ++future_count;
             }
@@ -475,7 +629,7 @@
                 {
                     for(count_type i=0;i<futures.size();++i)
                     {
- if(futures[i].future->done)
+ if(futures[i].future_->done)
                         {
                             return futures[i].index;
                         }
@@ -488,7 +642,7 @@
             {
                 for(count_type i=0;i<futures.size();++i)
                 {
- futures[i].future->remove_external_waiter(futures[i].wait_iterator);
+ futures[i].future_->remove_external_waiter(futures[i].wait_iterator);
                 }
             }
 
@@ -497,7 +651,7 @@
     }
 
     template <typename R>
- class unique_future;
+ class BOOST_THREAD_FUTURE;
 
     template <typename R>
     class shared_future;
@@ -509,7 +663,7 @@
     };
 
     template<typename T>
- struct is_future_type<unique_future<T> >
+ struct is_future_type<BOOST_THREAD_FUTURE<T> >
     {
         BOOST_STATIC_CONSTANT(bool, value=true);
     };
@@ -626,14 +780,24 @@
     class packaged_task;
 
     template <typename R>
- class unique_future
+ class BOOST_THREAD_FUTURE
     {
- unique_future(unique_future & rhs);// = delete;
- unique_future& operator=(unique_future& rhs);// = delete;
+
+#ifndef BOOST_NO_DELETED_FUNCTIONS
+ public:
+ BOOST_THREAD_FUTURE(BOOST_THREAD_FUTURE & rhs) = delete;
+ BOOST_THREAD_FUTURE& operator=(BOOST_THREAD_FUTURE& rhs) = delete;
+#else // BOOST_NO_DELETED_FUNCTIONS
+ private:
+ BOOST_THREAD_FUTURE(BOOST_THREAD_FUTURE & rhs);// = delete;
+ BOOST_THREAD_FUTURE& operator=(BOOST_THREAD_FUTURE& rhs);// = delete;
+#endif // BOOST_NO_DELETED_FUNCTIONS
+
+ private:
 
         typedef boost::shared_ptr<detail::future_object<R> > future_ptr;
 
- future_ptr future;
+ future_ptr future_;
 
         friend class shared_future<R>;
         friend class promise<R>;
@@ -642,74 +806,97 @@
 
         typedef typename detail::future_traits<R>::move_dest_type move_dest_type;
 
- unique_future(future_ptr future_):
- future(future_)
+ BOOST_THREAD_FUTURE(future_ptr a_future):
+ future_(a_future)
         {}
 
     public:
         typedef future_state::state state;
 
- unique_future()
+ BOOST_THREAD_FUTURE()
         {}
 
- ~unique_future()
+ ~BOOST_THREAD_FUTURE()
         {}
 
 #ifndef BOOST_NO_RVALUE_REFERENCES
- unique_future(unique_future && other)
+ BOOST_THREAD_FUTURE(BOOST_THREAD_FUTURE && other)
+ {
+ future_.swap(other.future_);
+ }
+ BOOST_THREAD_FUTURE& operator=(BOOST_THREAD_FUTURE && other)
+ {
+ future_=other.future_;
+ other.future_.reset();
+ return *this;
+ }
+#else
+#if defined BOOST_THREAD_USES_MOVE
+ BOOST_THREAD_FUTURE(boost::rv<BOOST_THREAD_FUTURE>& other):
+ future_(other.future_)
         {
- future.swap(other.future);
+ other.future_.reset();
         }
- unique_future& operator=(unique_future && other)
+
+ BOOST_THREAD_FUTURE& operator=(boost::rv<BOOST_THREAD_FUTURE>& other)
         {
- future=other.future;
- other.future.reset();
+ future_=other.future_;
+ other.future_.reset();
             return *this;
         }
+ operator ::boost::rv<BOOST_THREAD_FUTURE>&()
+ {
+ return *static_cast< ::boost::rv<BOOST_THREAD_FUTURE>* >(this);
+ }
+ operator const ::boost::rv<BOOST_THREAD_FUTURE>&() const
+ {
+ return *static_cast<const ::boost::rv<BOOST_THREAD_FUTURE>* >(this);
+ }
 #else
- unique_future(boost::detail::thread_move_t<unique_future> other):
- future(other->future)
+ BOOST_THREAD_FUTURE(boost::detail::thread_move_t<BOOST_THREAD_FUTURE> other):
+ future_(other->future_)
         {
- other->future.reset();
+ other->future_.reset();
         }
 
- unique_future& operator=(boost::detail::thread_move_t<unique_future> other)
+ BOOST_THREAD_FUTURE& operator=(boost::detail::thread_move_t<BOOST_THREAD_FUTURE> other)
         {
- future=other->future;
- other->future.reset();
+ future_=other->future_;
+ other->future_.reset();
             return *this;
         }
 
- operator boost::detail::thread_move_t<unique_future>()
+ operator boost::detail::thread_move_t<BOOST_THREAD_FUTURE>()
         {
- return boost::detail::thread_move_t<unique_future>(*this);
+ return boost::detail::thread_move_t<BOOST_THREAD_FUTURE>(*this);
         }
 #endif
+#endif
 
- void swap(unique_future& other)
+ void swap(BOOST_THREAD_FUTURE& other)
         {
- future.swap(other.future);
+ future_.swap(other.future_);
         }
 
         // retrieving the value
         move_dest_type get()
         {
- if(!future)
+ if(!future_)
             {
                 boost::throw_exception(future_uninitialized());
             }
 
- return future->get();
+ return future_->get();
         }
 
         // functions to check state, and wait for ready
         state get_state() const
         {
- if(!future)
+ if(!future_)
             {
                 return future_state::uninitialized;
             }
- return future->get_state();
+ return future_->get_state();
         }
 
 
@@ -720,21 +907,27 @@
 
         bool has_exception() const
         {
- return future && future->has_exception();
+ return future_ && future_->has_exception();
         }
 
         bool has_value() const
         {
- return future && future->has_value();
+ return future_ && future_->has_value();
+ }
+
+ bool valid() const
+ {
+ return future_ != 0;
         }
 
+
         void wait() const
         {
- if(!future)
+ if(!future_)
             {
                 boost::throw_exception(future_uninitialized());
             }
- future->wait(false);
+ future_->wait(false);
         }
 
         template<typename Duration>
@@ -745,36 +938,61 @@
 
         bool timed_wait_until(boost::system_time const& abs_time) const
         {
- if(!future)
+ if(!future_)
             {
                 boost::throw_exception(future_uninitialized());
             }
- return future->timed_wait_until(abs_time);
+ return future_->timed_wait_until(abs_time);
         }
+#ifdef BOOST_THREAD_USES_CHRONO
+ template <class Rep, class Period>
+ future_status
+ wait_for(const chrono::duration<Rep, Period>& rel_time) const
+ {
+ return wait_until(chrono::steady_clock::now() + rel_time);
 
+ }
+ template <class Clock, class Duration>
+ future_status
+ wait_until(const chrono::time_point<Clock, Duration>& abs_time) const
+ {
+ if(!future_)
+ {
+ boost::throw_exception(future_uninitialized());
+ }
+ return future_->wait_until(abs_time);
+ }
+#endif
     };
 
+#ifdef BOOST_NO_RVALUE_REFERENCES
+ template <typename T>
+ struct has_move_emulation_enabled_aux<BOOST_THREAD_FUTURE<T> >
+ : BOOST_MOVE_BOOST_NS::integral_constant<bool, true>
+ {};
+#endif
+
     template <typename R>
     class shared_future
     {
         typedef boost::shared_ptr<detail::future_object<R> > future_ptr;
 
- future_ptr future;
+ future_ptr future_;
 
-// shared_future(const unique_future<R>& other);
-// shared_future& operator=(const unique_future<R>& other);
+// shared_future(const BOOST_THREAD_FUTURE<R>& other);
+// shared_future& operator=(const BOOST_THREAD_FUTURE<R>& other);
 
         friend class detail::future_waiter;
         friend class promise<R>;
         friend class packaged_task<R>;
 
- shared_future(future_ptr future_):
- future(future_)
+ shared_future(future_ptr a_future):
+ future_(a_future)
         {}
 
     public:
         shared_future(shared_future const& other):
- future(other.future)
+ future_(other.future_)
         {}
 
         typedef future_state::state state;
@@ -787,52 +1005,87 @@
 
         shared_future& operator=(shared_future const& other)
         {
- future=other.future;
+ future_=other.future_;
             return *this;
         }
 #ifndef BOOST_NO_RVALUE_REFERENCES
         shared_future(shared_future && other)
         {
- future.swap(other.future);
+ future_.swap(other.future_);
         }
- shared_future(unique_future<R> && other)
+ shared_future(BOOST_THREAD_FUTURE<R> && other)
         {
- future.swap(other.future);
+ future_.swap(other.future_);
         }
         shared_future& operator=(shared_future && other)
         {
- future.swap(other.future);
- other.future.reset();
+ future_.swap(other.future_);
+ other.future_.reset();
             return *this;
         }
- shared_future& operator=(unique_future<R> && other)
+ shared_future& operator=(BOOST_THREAD_FUTURE<R> && other)
         {
- future.swap(other.future);
- other.future.reset();
+ future_.swap(other.future_);
+ other.future_.reset();
             return *this;
         }
 #else
+#if defined BOOST_THREAD_USES_MOVE
+ shared_future(boost::rv<shared_future>& other):
+ future_(other.future_)
+ {
+ other.future_.reset();
+ }
+// shared_future(const BOOST_THREAD_FUTURE<R> &) = delete;
+ shared_future(boost::rv<BOOST_THREAD_FUTURE<R> >& other):
+ future_(other.future_)
+ {
+ other.future_.reset();
+ }
+ shared_future& operator=(boost::rv<shared_future>& other)
+ {
+ future_.swap(other.future_);
+ other.future_.reset();
+ return *this;
+ }
+ shared_future& operator=(boost::rv<BOOST_THREAD_FUTURE<R> >& other)
+ {
+ future_.swap(other.future_);
+ other.future_.reset();
+ return *this;
+ }
+ operator ::boost::rv<shared_future>&()
+ {
+ return *static_cast< ::boost::rv<shared_future>* >(this);
+ }
+ operator const ::boost::rv<shared_future>&() const
+ {
+ return *static_cast<const ::boost::rv<shared_future>* >(this);
+ }
+
+#else
+
         shared_future(boost::detail::thread_move_t<shared_future> other):
- future(other->future)
+ future_(other->future_)
         {
- other->future.reset();
+ other->future_.reset();
         }
-// shared_future(const unique_future<R> &) = delete;
- shared_future(boost::detail::thread_move_t<unique_future<R> > other):
- future(other->future)
+// shared_future(const BOOST_THREAD_FUTURE<R> &) = delete;
+ shared_future(boost::detail::thread_move_t<BOOST_THREAD_FUTURE<R> > other):
+ future_(other->future_)
         {
- other->future.reset();
+ other->future_.reset();
         }
         shared_future& operator=(boost::detail::thread_move_t<shared_future> other)
         {
- future.swap(other->future);
- other->future.reset();
+ future_.swap(other->future_);
+ other->future_.reset();
             return *this;
         }
- shared_future& operator=(boost::detail::thread_move_t<unique_future<R> > other)
+ shared_future& operator=(boost::detail::thread_move_t<BOOST_THREAD_FUTURE<R> > other)
         {
- future.swap(other->future);
- other->future.reset();
+ future_.swap(other->future_);
+ other->future_.reset();
             return *this;
         }
 
@@ -840,34 +1093,33 @@
         {
             return boost::detail::thread_move_t<shared_future>(*this);
         }
-
+#endif
 #endif
 
         void swap(shared_future& other)
         {
- future.swap(other.future);
+ future_.swap(other.future_);
         }
 
         // retrieving the value
- //typename detail::future_object<R>::move_dest_type get()
- R get()
+ typename detail::future_object<R>::shared_future_get_result_type get()
         {
- if(!future)
+ if(!future_)
             {
                 boost::throw_exception(future_uninitialized());
             }
 
- return future->get();
+ return future_->get_sh();
         }
 
         // functions to check state, and wait for ready
         state get_state() const
         {
- if(!future)
+ if(!future_)
             {
                 return future_state::uninitialized;
             }
- return future->get_state();
+ return future_->get_state();
         }
 
 
@@ -878,21 +1130,21 @@
 
         bool has_exception() const
         {
- return future && future->has_exception();
+ return future_ && future_->has_exception();
         }
 
         bool has_value() const
         {
- return future && future->has_value();
+ return future_ && future_->has_value();
         }
 
         void wait() const
         {
- if(!future)
+ if(!future_)
             {
                 boost::throw_exception(future_uninitialized());
             }
- future->wait(false);
+ future_->wait(false);
         }
 
         template<typename Duration>
@@ -903,51 +1155,92 @@
 
         bool timed_wait_until(boost::system_time const& abs_time) const
         {
- if(!future)
+ if(!future_)
             {
                 boost::throw_exception(future_uninitialized());
             }
- return future->timed_wait_until(abs_time);
+ return future_->timed_wait_until(abs_time);
         }
+#ifdef BOOST_THREAD_USES_CHRONO
+
+ template <class Rep, class Period>
+ future_status
+ wait_for(const chrono::duration<Rep, Period>& rel_time) const
+ {
+ return wait_until(chrono::steady_clock::now() + rel_time);
 
+ }
+ template <class Clock, class Duration>
+ future_status
+ wait_until(const chrono::time_point<Clock, Duration>& abs_time) const
+ {
+ if(!future_)
+ {
+ boost::throw_exception(future_uninitialized());
+ }
+ return future_->wait_until(abs_time);
+ }
+#endif
     };
 
+#ifdef BOOST_NO_RVALUE_REFERENCES
+ template <typename T>
+ struct has_move_emulation_enabled_aux<shared_future<T> >
+ : BOOST_MOVE_BOOST_NS::integral_constant<bool, true>
+ {};
+#endif
+
     template <typename R>
     class promise
     {
         typedef boost::shared_ptr<detail::future_object<R> > future_ptr;
 
- future_ptr future;
+ future_ptr future_;
         bool future_obtained;
 
+#ifndef BOOST_NO_DELETED_FUNCTIONS
+ public:
+ promise(promise const& rhs);// = delete;
+ promise & operator=(promise const & rhs);// = delete;
+#else // BOOST_NO_DELETED_FUNCTIONS
+ private:
         promise(promise & rhs);// = delete;
         promise & operator=(promise & rhs);// = delete;
+#endif // BOOST_NO_DELETED_FUNCTIONS
+ private:
 
         void lazy_init()
         {
- if(!atomic_load(&future))
+#if BOOST_THREAD_VERSION==1
+ if(!atomic_load(&future_))
             {
                 future_ptr blank;
- atomic_compare_exchange(&future,&blank,future_ptr(new detail::future_object<R>));
+ atomic_compare_exchange(&future_,&blank,future_ptr(new detail::future_object<R>));
             }
+#endif
         }
 
     public:
 // template <class Allocator> explicit promise(Allocator a);
 
         promise():
- future(),future_obtained(false)
+#if BOOST_THREAD_VERSION==1
+ future_(),
+#else
+ future_(new detail::future_object<R>),
+#endif
+ future_obtained(false)
         {}
 
         ~promise()
         {
- if(future)
+ if(future_)
             {
- boost::lock_guard<boost::mutex> lock(future->mutex);
+ boost::lock_guard<boost::mutex> lock(future_->mutex);
 
- if(!future->done)
+ if(!future_->done)
                 {
- future->mark_exceptional_finish_internal(boost::copy_exception(broken_promise()));
+ future_->mark_exceptional_finish_internal(boost::copy_exception(broken_promise()));
                 }
             }
         }
@@ -955,31 +1248,68 @@
         // Assignment
 #ifndef BOOST_NO_RVALUE_REFERENCES
         promise(promise && rhs):
+#if ! BOOST_THREAD_VERSION==1
+ future_(rhs.future_),
+#endif
             future_obtained(rhs.future_obtained)
         {
- future.swap(rhs.future);
+#if BOOST_THREAD_VERSION==1
+ future_.swap(rhs.future_);
+#else
+ // we need to release the future as shared_ptr doesn't implements move semantics
+ rhs.future_.reset();
+#endif
             rhs.future_obtained=false;
         }
         promise & operator=(promise&& rhs)
         {
- future.swap(rhs.future);
+#if BOOST_THREAD_VERSION==1
+ future_.swap(rhs.future_);
             future_obtained=rhs.future_obtained;
- rhs.future.reset();
+ rhs.future_.reset();
+ rhs.future_obtained=false;
+#else
+ promise(boost::move(rhs)).swap(*this);
+#endif
+
+ return *this;
+ }
+#else
+#if defined BOOST_THREAD_USES_MOVE
+ promise(boost::rv<promise>& rhs):
+ future_(rhs.future_),future_obtained(rhs.future_obtained)
+ {
+ rhs.future_.reset();
+ rhs.future_obtained=false;
+ }
+ promise & operator=(boost::rv<promise>& rhs)
+ {
+ future_=rhs.future_;
+ future_obtained=rhs.future_obtained;
+ rhs.future_.reset();
             rhs.future_obtained=false;
             return *this;
         }
+ operator ::boost::rv<promise>&()
+ {
+ return *static_cast< ::boost::rv<promise>* >(this);
+ }
+ operator const ::boost::rv<promise>&() const
+ {
+ return *static_cast<const ::boost::rv<promise>* >(this);
+ }
 #else
         promise(boost::detail::thread_move_t<promise> rhs):
- future(rhs->future),future_obtained(rhs->future_obtained)
+ future_(rhs->future_),future_obtained(rhs->future_obtained)
         {
- rhs->future.reset();
+ rhs->future_.reset();
             rhs->future_obtained=false;
         }
         promise & operator=(boost::detail::thread_move_t<promise> rhs)
         {
- future=rhs->future;
+ future_=rhs->future_;
             future_obtained=rhs->future_obtained;
- rhs->future.reset();
+ rhs->future_.reset();
             rhs->future_obtained=false;
             return *this;
         }
@@ -989,64 +1319,75 @@
             return boost::detail::thread_move_t<promise>(*this);
         }
 #endif
+#endif
 
         void swap(promise& other)
         {
- future.swap(other.future);
+ future_.swap(other.future_);
             std::swap(future_obtained,other.future_obtained);
         }
 
         // Result retrieval
- unique_future<R> get_future()
+ BOOST_THREAD_FUTURE<R> get_future()
         {
+ std::cout<< __LINE__ << " " << int(future_obtained) << std::endl;
             lazy_init();
- if(future_obtained)
+ std::cout<< __LINE__ << " " << int(future_obtained) << std::endl;
+ if (future_.get()==0)
             {
+ std::cout<< __LINE__ << " " << int(future_obtained) << std::endl;
+ boost::throw_exception(promise_moved());
+ }
+ if (future_obtained)
+ {
+ std::cout<< __LINE__ << " " << int(future_obtained) << std::endl;
                 boost::throw_exception(future_already_retrieved());
             }
+ std::cout<< __LINE__ << " " << int(future_obtained) << std::endl;
             future_obtained=true;
- return unique_future<R>(future);
+ std::cout<< __LINE__ << " " << int(future_obtained) << std::endl;
+ return BOOST_THREAD_FUTURE<R>(future_);
         }
 
         void set_value(typename detail::future_traits<R>::source_reference_type r)
         {
             lazy_init();
- boost::lock_guard<boost::mutex> lock(future->mutex);
- if(future->done)
+ boost::lock_guard<boost::mutex> lock(future_->mutex);
+ if(future_->done)
             {
                 boost::throw_exception(promise_already_satisfied());
             }
- future->mark_finished_with_result_internal(r);
+ future_->mark_finished_with_result_internal(r);
         }
 
 // void set_value(R && r);
         void set_value(typename detail::future_traits<R>::rvalue_source_type r)
         {
             lazy_init();
- boost::lock_guard<boost::mutex> lock(future->mutex);
- if(future->done)
+ boost::lock_guard<boost::mutex> lock(future_->mutex);
+ if(future_->done)
             {
                 boost::throw_exception(promise_already_satisfied());
             }
- future->mark_finished_with_result_internal(static_cast<typename detail::future_traits<R>::rvalue_source_type>(r));
+ future_->mark_finished_with_result_internal(static_cast<typename detail::future_traits<R>::rvalue_source_type>(r));
         }
 
         void set_exception(boost::exception_ptr p)
         {
             lazy_init();
- boost::lock_guard<boost::mutex> lock(future->mutex);
- if(future->done)
+ boost::lock_guard<boost::mutex> lock(future_->mutex);
+ if(future_->done)
             {
                 boost::throw_exception(promise_already_satisfied());
             }
- future->mark_exceptional_finish_internal(p);
+ future_->mark_exceptional_finish_internal(p);
         }
 
         template<typename F>
         void set_wait_callback(F f)
         {
             lazy_init();
- future->set_wait_callback(f,this);
+ future_->set_wait_callback(f,this);
         }
 
     };
@@ -1056,36 +1397,44 @@
     {
         typedef boost::shared_ptr<detail::future_object<void> > future_ptr;
 
- future_ptr future;
+ future_ptr future_;
         bool future_obtained;
 
+#ifndef BOOST_NO_DELETED_FUNCTIONS
+ public:
+ promise(promise const& rhs);// = delete;
+ promise & operator=(promise const & rhs);// = delete;
+#else // BOOST_NO_DELETED_FUNCTIONS
+ private:
         promise(promise & rhs);// = delete;
         promise & operator=(promise & rhs);// = delete;
+#endif // BOOST_NO_DELETED_FUNCTIONS
+ private:
 
         void lazy_init()
         {
- if(!atomic_load(&future))
+ if(!atomic_load(&future_))
             {
                 future_ptr blank;
- atomic_compare_exchange(&future,&blank,future_ptr(new detail::future_object<void>));
+ atomic_compare_exchange(&future_,&blank,future_ptr(new detail::future_object<void>));
             }
         }
     public:
 // template <class Allocator> explicit promise(Allocator a);
 
         promise():
- future(),future_obtained(false)
+ future_(),future_obtained(false)
         {}
 
         ~promise()
         {
- if(future)
+ if(future_)
             {
- boost::lock_guard<boost::mutex> lock(future->mutex);
+ boost::lock_guard<boost::mutex> lock(future_->mutex);
 
- if(!future->done)
+ if(!future_->done)
                 {
- future->mark_exceptional_finish_internal(boost::copy_exception(broken_promise()));
+ future_->mark_exceptional_finish_internal(boost::copy_exception(broken_promise()));
                 }
             }
         }
@@ -1095,29 +1444,53 @@
         promise(promise && rhs):
             future_obtained(rhs.future_obtained)
         {
- future.swap(rhs.future);
+ future_.swap(rhs.future_);
             rhs.future_obtained=false;
         }
         promise & operator=(promise&& rhs)
         {
- future.swap(rhs.future);
+ future_.swap(rhs.future_);
+ future_obtained=rhs.future_obtained;
+ rhs.future_.reset();
+ rhs.future_obtained=false;
+ return *this;
+ }
+#else
+#if defined BOOST_THREAD_USES_MOVE
+ promise(boost::rv<promise>& rhs):
+ future_(rhs.future_),future_obtained(rhs.future_obtained)
+ {
+ rhs.future_.reset();
+ rhs.future_obtained=false;
+ }
+ promise & operator=(boost::rv<promise>& rhs)
+ {
+ future_=rhs.future_;
             future_obtained=rhs.future_obtained;
- rhs.future.reset();
+ rhs.future_.reset();
             rhs.future_obtained=false;
             return *this;
         }
+ operator ::boost::rv<promise>&()
+ {
+ return *static_cast< ::boost::rv<promise>* >(this);
+ }
+ operator const ::boost::rv<promise>&() const
+ {
+ return *static_cast<const ::boost::rv<promise>* >(this);
+ }
 #else
         promise(boost::detail::thread_move_t<promise> rhs):
- future(rhs->future),future_obtained(rhs->future_obtained)
+ future_(rhs->future_),future_obtained(rhs->future_obtained)
         {
- rhs->future.reset();
+ rhs->future_.reset();
             rhs->future_obtained=false;
         }
         promise & operator=(boost::detail::thread_move_t<promise> rhs)
         {
- future=rhs->future;
+ future_=rhs->future_;
             future_obtained=rhs->future_obtained;
- rhs->future.reset();
+ rhs->future_.reset();
             rhs->future_obtained=false;
             return *this;
         }
@@ -1127,15 +1500,16 @@
             return boost::detail::thread_move_t<promise>(*this);
         }
 #endif
+#endif
 
         void swap(promise& other)
         {
- future.swap(other.future);
+ future_.swap(other.future_);
             std::swap(future_obtained,other.future_obtained);
         }
 
         // Result retrieval
- unique_future<void> get_future()
+ BOOST_THREAD_FUTURE<void> get_future()
         {
             lazy_init();
 
@@ -1144,40 +1518,47 @@
                 boost::throw_exception(future_already_retrieved());
             }
             future_obtained=true;
- return unique_future<void>(future);
+ return BOOST_THREAD_FUTURE<void>(future_);
         }
 
         void set_value()
         {
             lazy_init();
- boost::lock_guard<boost::mutex> lock(future->mutex);
- if(future->done)
+ boost::lock_guard<boost::mutex> lock(future_->mutex);
+ if(future_->done)
             {
                 boost::throw_exception(promise_already_satisfied());
             }
- future->mark_finished_with_result_internal();
+ future_->mark_finished_with_result_internal();
         }
 
         void set_exception(boost::exception_ptr p)
         {
             lazy_init();
- boost::lock_guard<boost::mutex> lock(future->mutex);
- if(future->done)
+ boost::lock_guard<boost::mutex> lock(future_->mutex);
+ if(future_->done)
             {
                 boost::throw_exception(promise_already_satisfied());
             }
- future->mark_exceptional_finish_internal(p);
+ future_->mark_exceptional_finish_internal(p);
         }
 
         template<typename F>
         void set_wait_callback(F f)
         {
             lazy_init();
- future->set_wait_callback(f,this);
+ future_->set_wait_callback(f,this);
         }
 
     };
 
+#ifdef BOOST_NO_RVALUE_REFERENCES
+ template <typename T>
+ struct has_move_emulation_enabled_aux<promise<T> >
+ : BOOST_MOVE_BOOST_NS::integral_constant<bool, true>
+ {};
+#endif
+
     namespace detail
     {
         template<typename R>
@@ -1231,10 +1612,16 @@
                 f(f_)
             {}
 #else
+#if defined BOOST_THREAD_USES_MOVE
+ task_object(boost::rv<F>& f_):
+ f(boost::move(f_))
+ {}
+#else
             task_object(boost::detail::thread_move_t<F> f_):
                 f(f_)
             {}
 #endif
+#endif
 
             void do_run()
             {
@@ -1242,6 +1629,10 @@
                 {
                     this->mark_finished_with_result(f());
                 }
+ catch(thread_interrupted& it)
+ {
+ this->mark_interrupted_finish();
+ }
                 catch(...)
                 {
                     this->mark_exceptional_finish();
@@ -1262,10 +1653,16 @@
                 f(f_)
             {}
 #else
+#if defined BOOST_THREAD_USES_MOVE
+ task_object(boost::rv<F>& f_):
+ f(boost::move(f_))
+ {}
+#else
             task_object(boost::detail::thread_move_t<F> f_):
                 f(f_)
             {}
 #endif
+#endif
 
             void do_run()
             {
@@ -1274,6 +1671,10 @@
                     f();
                     this->mark_finished_with_result();
                 }
+ catch(thread_interrupted& it)
+ {
+ this->mark_interrupted_finish();
+ }
                 catch(...)
                 {
                     this->mark_exceptional_finish();
@@ -1290,9 +1691,15 @@
         boost::shared_ptr<detail::task_base<R> > task;
         bool future_obtained;
 
+#ifndef BOOST_NO_DELETED_FUNCTIONS
+ public:
+ packaged_task(packaged_task const&);// = delete;
+ packaged_task& operator=(packaged_task const&);// = delete;
+#else // BOOST_NO_DELETED_FUNCTIONS
+ private:
         packaged_task(packaged_task&);// = delete;
         packaged_task& operator=(packaged_task&);// = delete;
-
+#endif // BOOST_NO_DELETED_FUNCTIONS
     public:
         packaged_task():
             future_obtained(false)
@@ -1313,11 +1720,18 @@
             task(new detail::task_object<R,F>(f)),future_obtained(false)
         {}
 #else
+#if defined BOOST_THREAD_USES_MOVE
+ template <class F>
+ explicit packaged_task(boost::rv<F>& f):
+ task(new detail::task_object<R,F>(boost::move(f))),future_obtained(false)
+ {}
+#else
         template <class F>
         explicit packaged_task(boost::detail::thread_move_t<F> f):
             task(new detail::task_object<R,F>(f)),future_obtained(false)
         {}
 #endif
+#endif
 
 // template <class F, class Allocator>
 // explicit packaged_task(F const& f, Allocator a);
@@ -1348,6 +1762,28 @@
             return *this;
         }
 #else
+#if defined BOOST_THREAD_USES_MOVE
+ packaged_task(boost::rv<packaged_task>& other):
+ future_obtained(other.future_obtained)
+ {
+ task.swap(other.task);
+ other.future_obtained=false;
+ }
+ packaged_task& operator=(boost::rv<packaged_task>& other)
+ {
+ packaged_task temp(other);
+ swap(temp);
+ return *this;
+ }
+ operator ::boost::rv<packaged_task>&()
+ {
+ return *static_cast< ::boost::rv<packaged_task>* >(this);
+ }
+ operator const ::boost::rv<packaged_task>&() const
+ {
+ return *static_cast<const ::boost::rv<packaged_task>* >(this);
+ }
+#else
         packaged_task(boost::detail::thread_move_t<packaged_task> other):
             future_obtained(other->future_obtained)
         {
@@ -1365,15 +1801,16 @@
             return boost::detail::thread_move_t<packaged_task>(*this);
         }
 #endif
+#endif
 
- void swap(packaged_task& other)
+ void swap(packaged_task& other)
         {
             task.swap(other.task);
             std::swap(future_obtained,other.future_obtained);
         }
 
         // result retrieval
- unique_future<R> get_future()
+ BOOST_THREAD_FUTURE<R> get_future()
         {
             if(!task)
             {
@@ -1382,7 +1819,7 @@
             else if(!future_obtained)
             {
                 future_obtained=true;
- return unique_future<R>(task);
+ return BOOST_THREAD_FUTURE<R>(task);
             }
             else
             {
@@ -1409,6 +1846,15 @@
 
     };
 
+#ifdef BOOST_NO_RVALUE_REFERENCES
+#if ! defined BOOST_THREAD_USES_MOVE
+ template <typename T>
+ struct has_move_emulation_enabled_aux<packaged_task<T> >
+ : BOOST_MOVE_BOOST_NS::integral_constant<bool, true>
+ {};
+#endif
+#endif
+
 }
 
 

Modified: branches/quickbook-dev/boost/thread/locks.hpp
==============================================================================
--- branches/quickbook-dev/boost/thread/locks.hpp (original)
+++ branches/quickbook-dev/boost/thread/locks.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -12,6 +12,10 @@
 #include <boost/thread/thread_time.hpp>
 #include <boost/detail/workaround.hpp>
 #include <boost/type_traits/is_class.hpp>
+#ifdef BOOST_THREAD_USES_CHRONO
+#include <boost/chrono/time_point.hpp>
+#include <boost/chrono/duration.hpp>
+#endif
 
 #include <boost/config/abi_prefix.hpp>
 
@@ -248,8 +252,15 @@
     private:
         Mutex& m;
 
- explicit lock_guard(lock_guard&);
- lock_guard& operator=(lock_guard&);
+#ifndef BOOST_NO_DELETED_FUNCTIONS
+ lock_guard(lock_guard const&) = delete;
+ lock_guard& operator=(lock_guard const&) = delete;
+#else // BOOST_NO_DELETED_FUNCTIONS
+ private:
+ lock_guard(lock_guard const&);
+ lock_guard& operator=(lock_guard const&);
+ public:
+#endif // BOOST_NO_DELETED_FUNCTIONS
     public:
         explicit lock_guard(Mutex& m_):
             m(m_)
@@ -272,15 +283,33 @@
     private:
         Mutex* m;
         bool is_locked;
+
+#ifndef BOOST_NO_DELETED_FUNCTIONS
+ unique_lock(unique_lock const&) = delete;
+ unique_lock& operator=(unique_lock const&) = delete;
+#else // BOOST_NO_DELETED_FUNCTIONS
+ private:
+ // Fixme The following doesn't work
+ //test_move_function.cpp:71:12: error: calling a private constructor of class 'boost::unique_lock<boost::mutex>'
+ // return boost::unique_lock<boost::mutex>(m);
+ //unique_lock(unique_lock const&);
         unique_lock(unique_lock&);
+ // Fixme The following doesn't work
+ // ../../../boost/thread/future.hpp:452:33: error: 'operator=' is a private member of 'boost::unique_lock<boost::mutex>'
+ // locks[i]=boost::unique_lock<boost::mutex>(futures[i].future->mutex);
+ //unique_lock& operator=(unique_lock const&);
+ unique_lock& operator=(unique_lock &);
+ public:
+#endif // BOOST_NO_DELETED_FUNCTIONS
+
+ private:
         explicit unique_lock(upgrade_lock<Mutex>&);
- unique_lock& operator=(unique_lock&);
         unique_lock& operator=(upgrade_lock<Mutex>& other);
     public:
 #if BOOST_WORKAROUND(__SUNPRO_CC, < 0x5100)
         unique_lock(const volatile unique_lock&);
 #endif
- unique_lock():
+ unique_lock() BOOST_NOEXCEPT :
             m(0),is_locked(false)
         {}
 
@@ -292,7 +321,7 @@
         unique_lock(Mutex& m_,adopt_lock_t):
             m(&m_),is_locked(true)
         {}
- unique_lock(Mutex& m_,defer_lock_t):
+ unique_lock(Mutex& m_,defer_lock_t) BOOST_NOEXCEPT:
             m(&m_),is_locked(false)
         {}
         unique_lock(Mutex& m_,try_to_lock_t):
@@ -311,8 +340,22 @@
         {
             timed_lock(target_time);
         }
+
+#ifdef BOOST_THREAD_USES_CHRONO
+ template <class Clock, class Duration>
+ unique_lock(Mutex& mtx, const chrono::time_point<Clock, Duration>& t)
+ : m(&mtx), is_locked(mtx.try_lock_until(t))
+ {
+ }
+ template <class Rep, class Period>
+ unique_lock(Mutex& mtx, const chrono::duration<Rep, Period>& d)
+ : m(&mtx), is_locked(mtx.try_lock_for(d))
+ {
+ }
+#endif
+
 #ifndef BOOST_NO_RVALUE_REFERENCES
- unique_lock(unique_lock&& other):
+ unique_lock(unique_lock&& other) BOOST_NOEXCEPT:
             m(other.m),is_locked(other.is_locked)
         {
             other.is_locked=false;
@@ -325,27 +368,66 @@
             return static_cast<unique_lock<Mutex>&&>(*this);
         }
 
-
- unique_lock& operator=(unique_lock&& other)
+ unique_lock& operator=(unique_lock&& other) BOOST_NOEXCEPT
         {
             unique_lock temp(other.move());
             swap(temp);
             return *this;
         }
 
- unique_lock& operator=(upgrade_lock<Mutex>&& other)
+ unique_lock& operator=(upgrade_lock<Mutex>&& other) BOOST_NOEXCEPT
         {
             unique_lock temp(other.move());
             swap(temp);
             return *this;
         }
- void swap(unique_lock&& other)
+ void swap(unique_lock&& other) BOOST_NOEXCEPT
         {
             std::swap(m,other.m);
             std::swap(is_locked,other.is_locked);
         }
 #else
- unique_lock(detail::thread_move_t<unique_lock<Mutex> > other):
+#if defined BOOST_THREAD_USES_MOVE
+ unique_lock(boost::rv<unique_lock<Mutex> >& other) BOOST_NOEXCEPT:
+ m(other.m),is_locked(other.is_locked)
+ {
+ other.is_locked=false;
+ other.m=0;
+ }
+ unique_lock(boost::rv<upgrade_lock<Mutex> >& other);
+
+ operator ::boost::rv<unique_lock<Mutex> >&()
+ {
+ return *static_cast< ::boost::rv<unique_lock<Mutex> >* >(this);
+ }
+ operator const ::boost::rv<unique_lock<Mutex> >&() const
+ {
+ return *static_cast<const ::boost::rv<unique_lock<Mutex> >* >(this);
+ }
+
+#if BOOST_WORKAROUND(__SUNPRO_CC, < 0x5100)
+ unique_lock& operator=(unique_lock<Mutex> other)
+ {
+ swap(other);
+ return *this;
+ }
+#else
+ unique_lock& operator=(boost::rv<unique_lock<Mutex> >& other) BOOST_NOEXCEPT
+ {
+ unique_lock temp(other);
+ swap(temp);
+ return *this;
+ }
+#endif
+
+ unique_lock& operator=(boost::rv<upgrade_lock<Mutex> >& other) BOOST_NOEXCEPT
+ {
+ unique_lock temp(other);
+ swap(temp);
+ return *this;
+ }
+#else
+ unique_lock(detail::thread_move_t<unique_lock<Mutex> > other) BOOST_NOEXCEPT:
             m(other->m),is_locked(other->is_locked)
         {
             other->is_locked=false;
@@ -370,7 +452,7 @@
             return *this;
         }
 #else
- unique_lock& operator=(detail::thread_move_t<unique_lock<Mutex> > other)
+ unique_lock& operator=(detail::thread_move_t<unique_lock<Mutex> > other) BOOST_NOEXCEPT
         {
             unique_lock temp(other);
             swap(temp);
@@ -378,19 +460,20 @@
         }
 #endif
 
- unique_lock& operator=(detail::thread_move_t<upgrade_lock<Mutex> > other)
+ unique_lock& operator=(detail::thread_move_t<upgrade_lock<Mutex> > other) BOOST_NOEXCEPT
         {
             unique_lock temp(other);
             swap(temp);
             return *this;
         }
- void swap(detail::thread_move_t<unique_lock<Mutex> > other)
+ void swap(detail::thread_move_t<unique_lock<Mutex> > other) BOOST_NOEXCEPT
         {
             std::swap(m,other->m);
             std::swap(is_locked,other->is_locked);
         }
 #endif
- void swap(unique_lock& other)
+#endif
+ void swap(unique_lock& other) BOOST_NOEXCEPT
         {
             std::swap(m,other.m);
             std::swap(is_locked,other.is_locked);
@@ -405,18 +488,26 @@
         }
         void lock()
         {
+ if(m==0)
+ {
+ boost::throw_exception(boost::lock_error(system::errc::operation_not_permitted, "boost unique_lock has no mutex"));
+ }
             if(owns_lock())
             {
- boost::throw_exception(boost::lock_error());
+ boost::throw_exception(boost::lock_error(system::errc::resource_deadlock_would_occur, "boost unique_lock owns already the mutex"));
             }
             m->lock();
             is_locked=true;
         }
         bool try_lock()
         {
+ if(m==0)
+ {
+ boost::throw_exception(boost::lock_error(system::errc::operation_not_permitted, "boost unique_lock has no mutex"));
+ }
             if(owns_lock())
             {
- boost::throw_exception(boost::lock_error());
+ boost::throw_exception(boost::lock_error(system::errc::resource_deadlock_would_occur, "boost unique_lock owns already the mutex"));
             }
             is_locked=m->try_lock();
             return is_locked;
@@ -424,50 +515,118 @@
         template<typename TimeDuration>
         bool timed_lock(TimeDuration const& relative_time)
         {
+ if(m==0)
+ {
+ boost::throw_exception(boost::lock_error(system::errc::operation_not_permitted, "boost unique_lock has no mutex"));
+ }
+ if(owns_lock())
+ {
+ boost::throw_exception(boost::lock_error(system::errc::resource_deadlock_would_occur, "boost unique_lock owns already the mutex"));
+ }
             is_locked=m->timed_lock(relative_time);
             return is_locked;
         }
 
         bool timed_lock(::boost::system_time const& absolute_time)
         {
+ if(m==0)
+ {
+ boost::throw_exception(boost::lock_error(system::errc::operation_not_permitted, "boost unique_lock has no mutex"));
+ }
+ if(owns_lock())
+ {
+ boost::throw_exception(boost::lock_error(system::errc::resource_deadlock_would_occur, "boost unique_lock owns already the mutex"));
+ }
             is_locked=m->timed_lock(absolute_time);
             return is_locked;
         }
         bool timed_lock(::boost::xtime const& absolute_time)
         {
+ if(m==0)
+ {
+ boost::throw_exception(boost::lock_error(system::errc::operation_not_permitted, "boost unique_lock has no mutex"));
+ }
+ if(owns_lock())
+ {
+ boost::throw_exception(boost::lock_error(system::errc::resource_deadlock_would_occur, "boost unique_lock owns already the mutex"));
+ }
             is_locked=m->timed_lock(absolute_time);
             return is_locked;
         }
+
+#ifdef BOOST_THREAD_USES_CHRONO
+
+ template <class Rep, class Period>
+ bool try_lock_for(const chrono::duration<Rep, Period>& rel_time)
+ {
+ if(m==0)
+ {
+ boost::throw_exception(boost::lock_error(system::errc::operation_not_permitted, "boost unique_lock has no mutex"));
+ }
+ if(owns_lock())
+ {
+ boost::throw_exception(boost::lock_error(system::errc::resource_deadlock_would_occur, "boost unique_lock owns already the mutex"));
+ }
+ is_locked=m->try_lock_for(rel_time);
+ return is_locked;
+ }
+ template <class Clock, class Duration>
+ bool try_lock_until(const chrono::time_point<Clock, Duration>& abs_time)
+ {
+ if(m==0)
+ {
+ boost::throw_exception(boost::lock_error(system::errc::operation_not_permitted, "boost unique_lock has no mutex"));
+ }
+ if(owns_lock())
+ {
+ boost::throw_exception(boost::lock_error(system::errc::resource_deadlock_would_occur, "boost unique_lock owns already the mutex"));
+ }
+ is_locked=m->try_lock_until(abs_time);
+ return is_locked;
+ }
+#endif
+
         void unlock()
         {
+ if(m==0)
+ {
+ boost::throw_exception(boost::lock_error(system::errc::operation_not_permitted, "boost unique_lock has no mutex"));
+ }
             if(!owns_lock())
             {
- boost::throw_exception(boost::lock_error());
+ boost::throw_exception(boost::lock_error(system::errc::operation_not_permitted, "boost unique_lock doesn't own the mutex"));
             }
             m->unlock();
             is_locked=false;
         }
 
+#ifndef BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
         typedef void (unique_lock::*bool_type)();
- operator bool_type() const
+ operator bool_type() const BOOST_NOEXCEPT
         {
             return is_locked?&unique_lock::lock:0;
         }
- bool operator!() const
+ bool operator!() const BOOST_NOEXCEPT
         {
             return !owns_lock();
         }
- bool owns_lock() const
+#else
+ operator bool() const BOOST_NOEXCEPT
+ {
+ return owns_lock();
+ }
+#endif
+ bool owns_lock() const BOOST_NOEXCEPT
         {
             return is_locked;
         }
 
- Mutex* mutex() const
+ Mutex* mutex() const BOOST_NOEXCEPT
         {
             return m;
         }
 
- Mutex* release()
+ Mutex* release() BOOST_NOEXCEPT
         {
             Mutex* const res=m;
             m=0;
@@ -480,11 +639,11 @@
     };
 
 #ifndef BOOST_NO_RVALUE_REFERENCES
- template<typename Mutex>
- void swap(unique_lock<Mutex>&& lhs,unique_lock<Mutex>&& rhs)
- {
- lhs.swap(rhs);
- }
+// template<typename Mutex>
+// void swap(unique_lock<Mutex>&& lhs,unique_lock<Mutex>&& rhs)
+// {
+// lhs.swap(rhs);
+// }
 
     template<typename Mutex>
     inline upgrade_lock<Mutex>&& move(upgrade_lock<Mutex>&& ul)
@@ -499,7 +658,7 @@
     }
 #endif
     template<typename Mutex>
- void swap(unique_lock<Mutex>& lhs,unique_lock<Mutex>& rhs)
+ void swap(unique_lock<Mutex>& lhs,unique_lock<Mutex>& rhs) BOOST_NOEXCEPT
     {
         lhs.swap(rhs);
     }
@@ -518,15 +677,28 @@
     }
 #endif
 
+#ifdef BOOST_NO_RVALUE_REFERENCES
+ template <typename Mutex>
+ struct has_move_emulation_enabled_aux<unique_lock<Mutex> >
+ : BOOST_MOVE_BOOST_NS::integral_constant<bool, true>
+ {};
+#endif
+
     template<typename Mutex>
     class shared_lock
     {
     protected:
         Mutex* m;
         bool is_locked;
- private:
- explicit shared_lock(shared_lock&);
- shared_lock& operator=(shared_lock&);
+#ifndef BOOST_NO_DELETED_FUNCTIONS
+ shared_lock(shared_lock const&);
+ shared_lock& operator=(shared_lock const&);
+#else // BOOST_NO_DELETED_FUNCTIONS
+ private:
+ shared_lock(shared_lock const&);
+ shared_lock& operator=(shared_lock const&);
+ public:
+#endif // BOOST_NO_DELETED_FUNCTIONS
     public:
         shared_lock():
             m(0),is_locked(false)
@@ -556,6 +728,68 @@
 #ifndef BOOST_NO_RVALUE_REFERENCES
 
 #else
+#if defined BOOST_THREAD_USES_MOVE
+ shared_lock(boost::rv<shared_lock<Mutex> >& other):
+ m(other.m),is_locked(other.is_locked)
+ {
+ other.is_locked=false;
+ other.m=0;
+ }
+
+ shared_lock(boost::rv<unique_lock<Mutex> >& other):
+ m(other.m),is_locked(other.is_locked)
+ {
+ if(is_locked)
+ {
+ m->unlock_and_lock_shared();
+ }
+ other.is_locked=false;
+ other.m=0;
+ }
+
+ shared_lock(boost::rv<upgrade_lock<Mutex> >& other):
+ m(other.m),is_locked(other.is_locked)
+ {
+ if(is_locked)
+ {
+ m->unlock_upgrade_and_lock_shared();
+ }
+ other.is_locked=false;
+ other.m=0;
+ }
+
+ operator ::boost::rv<shared_lock<Mutex> >&()
+ {
+ return *static_cast< ::boost::rv<shared_lock<Mutex> >* >(this);
+ }
+ operator const ::boost::rv<shared_lock<Mutex> >&() const
+ {
+ return *static_cast<const ::boost::rv<shared_lock<Mutex> >* >(this);
+ }
+
+ shared_lock& operator=(::boost::rv<shared_lock<Mutex> >& other)
+ {
+ shared_lock temp(other);
+ swap(temp);
+ return *this;
+ }
+
+ shared_lock& operator=(::boost::rv<unique_lock<Mutex> >& other)
+ {
+ shared_lock temp(other);
+ swap(temp);
+ return *this;
+ }
+
+ shared_lock& operator=(::boost::rv<upgrade_lock<Mutex> >& other)
+ {
+ shared_lock temp(other);
+ swap(temp);
+ return *this;
+ }
+
+#else
+
         shared_lock(detail::thread_move_t<shared_lock<Mutex> > other):
             m(other->m),is_locked(other->is_locked)
         {
@@ -617,6 +851,7 @@
             return *this;
         }
 #endif
+#endif
 
 #ifndef BOOST_NO_RVALUE_REFERENCES
         void swap(shared_lock&& other)
@@ -653,7 +888,7 @@
         {
             if(owns_lock())
             {
- boost::throw_exception(boost::lock_error());
+ boost::throw_exception(boost::lock_error(system::errc::resource_deadlock_would_occur, "boost shared_lock owns already the mutex"));
             }
             m->lock_shared();
             is_locked=true;
@@ -662,7 +897,7 @@
         {
             if(owns_lock())
             {
- boost::throw_exception(boost::lock_error());
+ boost::throw_exception(boost::lock_error(system::errc::resource_deadlock_would_occur, "boost shared_lock owns already the mutex"));
             }
             is_locked=m->try_lock_shared();
             return is_locked;
@@ -671,7 +906,7 @@
         {
             if(owns_lock())
             {
- boost::throw_exception(boost::lock_error());
+ boost::throw_exception(boost::lock_error(system::errc::resource_deadlock_would_occur, "boost shared_lock owns already the mutex"));
             }
             is_locked=m->timed_lock_shared(target_time);
             return is_locked;
@@ -681,7 +916,7 @@
         {
             if(owns_lock())
             {
- boost::throw_exception(boost::lock_error());
+ boost::throw_exception(boost::lock_error(system::errc::resource_deadlock_would_occur, "boost shared_lock owns already the mutex"));
             }
             is_locked=m->timed_lock_shared(target_time);
             return is_locked;
@@ -690,12 +925,13 @@
         {
             if(!owns_lock())
             {
- boost::throw_exception(boost::lock_error());
+ boost::throw_exception(boost::lock_error(system::errc::operation_not_permitted, "boost shared_lock doesn't own the mutex"));
             }
             m->unlock_shared();
             is_locked=false;
         }
 
+#ifndef BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
         typedef void (shared_lock<Mutex>::*bool_type)();
         operator bool_type() const
         {
@@ -705,6 +941,12 @@
         {
             return !owns_lock();
         }
+#else
+ operator bool() const
+ {
+ return owns_lock();
+ }
+#endif
         bool owns_lock() const
         {
             return is_locked;
@@ -712,6 +954,14 @@
 
     };
 
+#ifdef BOOST_NO_RVALUE_REFERENCES
+ template <typename Mutex>
+ struct has_move_emulation_enabled_aux<shared_lock<Mutex> >
+ : BOOST_MOVE_BOOST_NS::integral_constant<bool, true>
+ {};
+#endif
+
+
 #ifndef BOOST_NO_RVALUE_REFERENCES
     template<typename Mutex>
     void swap(shared_lock<Mutex>&& lhs,shared_lock<Mutex>&& rhs)
@@ -794,6 +1044,48 @@
             return *this;
         }
 #else
+#if defined BOOST_THREAD_USES_MOVE
+ upgrade_lock(boost::rv<upgrade_lock<Mutex> >& other):
+ m(other.m),is_locked(other.is_locked)
+ {
+ other.is_locked=false;
+ other.m=0;
+ }
+
+ upgrade_lock(boost::rv<unique_lock<Mutex> >& other):
+ m(other.m),is_locked(other.is_locked)
+ {
+ if(is_locked)
+ {
+ m->unlock_and_lock_upgrade();
+ }
+ other.is_locked=false;
+ other.m=0;
+ }
+
+ operator ::boost::rv<upgrade_lock>&()
+ {
+ return *static_cast< ::boost::rv<upgrade_lock>* >(this);
+ }
+ operator const ::boost::rv<upgrade_lock>&() const
+ {
+ return *static_cast<const ::boost::rv<upgrade_lock>* >(this);
+ }
+
+ upgrade_lock& operator=(boost::rv<upgrade_lock<Mutex> >& other)
+ {
+ upgrade_lock temp(other);
+ swap(temp);
+ return *this;
+ }
+
+ upgrade_lock& operator=(boost::rv<unique_lock<Mutex> >& other)
+ {
+ upgrade_lock temp(other);
+ swap(temp);
+ return *this;
+ }
+#else
         upgrade_lock(detail::thread_move_t<upgrade_lock<Mutex> > other):
             m(other->m),is_locked(other->is_locked)
         {
@@ -837,6 +1129,7 @@
             return *this;
         }
 #endif
+#endif
 
         void swap(upgrade_lock& other)
         {
@@ -855,7 +1148,7 @@
         {
             if(owns_lock())
             {
- boost::throw_exception(boost::lock_error());
+ boost::throw_exception(boost::lock_error(system::errc::resource_deadlock_would_occur, "boost upgrade_lock owns already the mutex"));
             }
             m->lock_upgrade();
             is_locked=true;
@@ -864,7 +1157,7 @@
         {
             if(owns_lock())
             {
- boost::throw_exception(boost::lock_error());
+ boost::throw_exception(boost::lock_error(system::errc::resource_deadlock_would_occur, "boost upgrade_lock owns already the mutex"));
             }
             is_locked=m->try_lock_upgrade();
             return is_locked;
@@ -873,12 +1166,13 @@
         {
             if(!owns_lock())
             {
- boost::throw_exception(boost::lock_error());
+ boost::throw_exception(boost::lock_error(system::errc::operation_not_permitted, "boost upgrade_lock doesn't own the mutex"));
             }
             m->unlock_upgrade();
             is_locked=false;
         }
 
+#ifndef BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
         typedef void (upgrade_lock::*bool_type)();
         operator bool_type() const
         {
@@ -888,6 +1182,12 @@
         {
             return !owns_lock();
         }
+#else
+ operator bool() const
+ {
+ return owns_lock();
+ }
+#endif
         bool owns_lock() const
         {
             return is_locked;
@@ -896,6 +1196,13 @@
         friend class unique_lock<Mutex>;
     };
 
+#ifdef BOOST_NO_RVALUE_REFERENCES
+ template <typename Mutex>
+ struct has_move_emulation_enabled_aux<upgrade_lock<Mutex> >
+ : BOOST_MOVE_BOOST_NS::integral_constant<bool, true>
+ {};
+#endif
+
 
 #ifndef BOOST_NO_RVALUE_REFERENCES
     template<typename Mutex>
@@ -909,6 +1216,18 @@
         }
     }
 #else
+#if defined BOOST_THREAD_USES_MOVE
+ template<typename Mutex>
+ unique_lock<Mutex>::unique_lock(boost::rv<upgrade_lock<Mutex> >& other):
+ m(other.m),is_locked(other.is_locked)
+ {
+ other.is_locked=false;
+ if(is_locked)
+ {
+ m->unlock_upgrade_and_lock();
+ }
+ }
+#else
     template<typename Mutex>
     unique_lock<Mutex>::unique_lock(detail::thread_move_t<upgrade_lock<Mutex> > other):
         m(other->m),is_locked(other->is_locked)
@@ -920,6 +1239,7 @@
         }
     }
 #endif
+#endif
     template <class Mutex>
     class upgrade_to_unique_lock
     {
@@ -955,6 +1275,20 @@
             return *this;
         }
 #else
+#if defined BOOST_THREAD_USES_MOVE
+ upgrade_to_unique_lock(boost::rv<upgrade_to_unique_lock<Mutex> >& other):
+ source(other.source),exclusive(move(other.exclusive))
+ {
+ other.source=0;
+ }
+
+ upgrade_to_unique_lock& operator=(boost::rv<upgrade_to_unique_lock<Mutex> >& other)
+ {
+ upgrade_to_unique_lock temp(other);
+ swap(temp);
+ return *this;
+ }
+#else
         upgrade_to_unique_lock(detail::thread_move_t<upgrade_to_unique_lock<Mutex> > other):
             source(other->source),exclusive(move(other->exclusive))
         {
@@ -968,11 +1302,14 @@
             return *this;
         }
 #endif
+#endif
         void swap(upgrade_to_unique_lock& other)
         {
             std::swap(source,other.source);
             exclusive.swap(other.exclusive);
         }
+
+#ifndef BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
         typedef void (upgrade_to_unique_lock::*bool_type)(upgrade_to_unique_lock&);
         operator bool_type() const
         {
@@ -982,12 +1319,26 @@
         {
             return !owns_lock();
         }
+#else
+ operator bool() const
+ {
+ return owns_lock();
+ }
+#endif
+
         bool owns_lock() const
         {
             return exclusive.owns_lock();
         }
     };
 
+#ifdef BOOST_NO_RVALUE_REFERENCES
+ template <typename Mutex>
+ struct has_move_emulation_enabled_aux<upgrade_to_unique_lock<Mutex> >
+ : BOOST_MOVE_BOOST_NS::integral_constant<bool, true>
+ {};
+#endif
+
     namespace detail
     {
         template<typename Mutex>
@@ -1034,6 +1385,28 @@
                 base::swap(other);
             }
 #else
+#if defined BOOST_THREAD_USES_MOVE
+ try_lock_wrapper(boost::rv<try_lock_wrapper<Mutex> >& other):
+ base(boost::move(static_cast<base&>(other)))
+ {}
+
+ operator ::boost::rv<try_lock_wrapper>&()
+ {
+ return *static_cast< ::boost::rv<try_lock_wrapper>* >(this);
+ }
+ operator const ::boost::rv<try_lock_wrapper>&() const
+ {
+ return *static_cast<const ::boost::rv<try_lock_wrapper>* >(this);
+ }
+
+ try_lock_wrapper& operator=(boost::rv<try_lock_wrapper<Mutex> >& other)
+ {
+ try_lock_wrapper temp(other);
+ swap(temp);
+ return *this;
+ }
+
+#else
             try_lock_wrapper(detail::thread_move_t<try_lock_wrapper<Mutex> > other):
                 base(detail::thread_move_t<base>(*other))
             {}
@@ -1060,6 +1433,7 @@
                 base::swap(*other);
             }
 #endif
+#endif
             void swap(try_lock_wrapper& other)
             {
                 base::swap(other);
@@ -1088,16 +1462,23 @@
             {
                 return base::release();
             }
- bool operator!() const
- {
- return !this->owns_lock();
- }
 
+#ifndef BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
             typedef typename base::bool_type bool_type;
             operator bool_type() const
             {
                 return base::operator bool_type();
             }
+ bool operator!() const
+ {
+ return !this->owns_lock();
+ }
+#else
+ operator bool() const
+ {
+ return owns_lock();
+ }
+#endif
         };
 
 #ifndef BOOST_NO_RVALUE_REFERENCES

Modified: branches/quickbook-dev/boost/thread/once.hpp
==============================================================================
--- branches/quickbook-dev/boost/thread/once.hpp (original)
+++ branches/quickbook-dev/boost/thread/once.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 
 // once.hpp
 //
-// (C) Copyright 2006-7 Anthony Williams
+// (C) Copyright 2006-7 Anthony Williams
 //
 // Distributed under the Boost Software License, Version 1.0. (See
 // accompanying file LICENSE_1_0.txt or copy at
@@ -22,6 +22,7 @@
 
 namespace boost
 {
+ // template<class Callable, class ...Args> void call_once(once_flag& flag, Callable func, Args&&... args);
     inline void call_once(void (*func)(),once_flag& flag)
     {
         call_once(flag,func);

Modified: branches/quickbook-dev/boost/thread/pthread/condition_variable.hpp
==============================================================================
--- branches/quickbook-dev/boost/thread/pthread/condition_variable.hpp (original)
+++ branches/quickbook-dev/boost/thread/pthread/condition_variable.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -4,11 +4,16 @@
 // accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)
 // (C) Copyright 2007-10 Anthony Williams
+// (C) Copyright 2011 Vicente J. Botet Escriba
 
 #include <boost/thread/pthread/timespec.hpp>
 #include <boost/thread/pthread/pthread_mutex_scoped_lock.hpp>
 #include <boost/thread/pthread/thread_data.hpp>
 #include <boost/thread/pthread/condition_variable_fwd.hpp>
+#ifdef BOOST_THREAD_USES_CHRONO
+#include <boost/chrono/system_clocks.hpp>
+#include <boost/chrono/ceil.hpp>
+#endif
 
 #include <boost/config/abi_prefix.hpp>
 
@@ -59,18 +64,22 @@
         this_thread::interruption_point();
         if(res)
         {
- boost::throw_exception(condition_error());
+ boost::throw_exception(condition_error(res, "boost:: condition_variable constructor failed in pthread_cond_wait"));
         }
     }
 
- inline bool condition_variable::timed_wait(unique_lock<mutex>& m,boost::system_time const& wait_until)
+ inline bool condition_variable::do_timed_wait(
+ unique_lock<mutex>& m,
+ struct timespec const &timeout)
     {
+ if (!m.owns_lock())
+ boost::throw_exception(condition_error(EPERM, "condition_variable do_timed_wait: mutex not locked"));
+
         thread_cv_detail::lock_on_exit<unique_lock<mutex> > guard;
         int cond_res;
         {
             detail::interruption_checker check_for_interruption(&internal_mutex,&cond);
             guard.activate(m);
- struct timespec const timeout=detail::get_timespec(wait_until);
             cond_res=pthread_cond_timedwait(&cond,&internal_mutex,&timeout);
         }
         this_thread::interruption_point();
@@ -80,18 +89,18 @@
         }
         if(cond_res)
         {
- boost::throw_exception(condition_error());
+ boost::throw_exception(condition_error(cond_res, "condition_variable failed in pthread_cond_timedwait"));
         }
         return true;
     }
 
- inline void condition_variable::notify_one()
+ inline void condition_variable::notify_one() BOOST_NOEXCEPT
     {
         boost::pthread::pthread_mutex_scoped_lock internal_lock(&internal_mutex);
         BOOST_VERIFY(!pthread_cond_signal(&cond));
     }
 
- inline void condition_variable::notify_all()
+ inline void condition_variable::notify_all() BOOST_NOEXCEPT
     {
         boost::pthread::pthread_mutex_scoped_lock internal_lock(&internal_mutex);
         BOOST_VERIFY(!pthread_cond_broadcast(&cond));
@@ -102,8 +111,15 @@
         pthread_mutex_t internal_mutex;
         pthread_cond_t cond;
 
+#ifndef BOOST_NO_DELETED_FUNCTIONS
+ public:
+ condition_variable_any(condition_variable_any const&) = delete;
+ condition_variable_any& operator=(condition_variable_any const&) = delete;
+#else // BOOST_NO_DELETED_FUNCTIONS
+ private:
         condition_variable_any(condition_variable_any&);
         condition_variable_any& operator=(condition_variable_any&);
+#endif // BOOST_NO_DELETED_FUNCTIONS
 
     public:
         condition_variable_any()
@@ -111,13 +127,13 @@
             int const res=pthread_mutex_init(&internal_mutex,NULL);
             if(res)
             {
- boost::throw_exception(thread_resource_error());
+ boost::throw_exception(thread_resource_error(res, "condition_variable_any failed in pthread_mutex_init"));
             }
             int const res2=pthread_cond_init(&cond,NULL);
             if(res2)
             {
                 BOOST_VERIFY(!pthread_mutex_destroy(&internal_mutex));
- boost::throw_exception(thread_resource_error());
+ boost::throw_exception(thread_resource_error(res, "condition_variable_any failed in pthread_cond_init"));
             }
         }
         ~condition_variable_any()
@@ -139,7 +155,7 @@
             this_thread::interruption_point();
             if(res)
             {
- boost::throw_exception(condition_error());
+ boost::throw_exception(condition_error(res, "condition_variable_any failed in pthread_cond_wait"));
             }
         }
 
@@ -153,23 +169,7 @@
         bool timed_wait(lock_type& m,boost::system_time const& wait_until)
         {
             struct timespec const timeout=detail::get_timespec(wait_until);
- int res=0;
- {
- thread_cv_detail::lock_on_exit<lock_type> guard;
- detail::interruption_checker check_for_interruption(&internal_mutex,&cond);
- guard.activate(m);
- res=pthread_cond_timedwait(&cond,&internal_mutex,&timeout);
- }
- this_thread::interruption_point();
- if(res==ETIMEDOUT)
- {
- return false;
- }
- if(res)
- {
- boost::throw_exception(condition_error());
- }
- return true;
+ return do_timed_wait(m, timeout);
         }
         template<typename lock_type>
         bool timed_wait(lock_type& m,xtime const& wait_until)
@@ -206,17 +206,134 @@
             return timed_wait(m,get_system_time()+wait_duration,pred);
         }
 
- void notify_one()
+#ifdef BOOST_THREAD_USES_CHRONO
+ template <class lock_type,class Duration>
+ cv_status
+ wait_until(
+ lock_type& lock,
+ const chrono::time_point<chrono::system_clock, Duration>& t)
+ {
+ using namespace chrono;
+ typedef time_point<system_clock, nanoseconds> nano_sys_tmpt;
+ wait_until(lock,
+ nano_sys_tmpt(ceil<nanoseconds>(t.time_since_epoch())));
+ return system_clock::now() < t ? cv_status::no_timeout :
+ cv_status::timeout;
+ }
+
+ template <class lock_type, class Clock, class Duration>
+ cv_status
+ wait_until(
+ lock_type& lock,
+ const chrono::time_point<Clock, Duration>& t)
+ {
+ using namespace chrono;
+ system_clock::time_point s_now = system_clock::now();
+ typename Clock::time_point c_now = Clock::now();
+ wait_until(lock, s_now + ceil<nanoseconds>(t - c_now));
+ return Clock::now() < t ? cv_status::no_timeout : cv_status::timeout;
+ }
+
+ template <class lock_type, class Clock, class Duration, class Predicate>
+ bool
+ wait_until(
+ lock_type& lock,
+ const chrono::time_point<Clock, Duration>& t,
+ Predicate pred)
+ {
+ while (!pred())
+ {
+ if (wait_until(lock, t) == cv_status::timeout)
+ return pred();
+ }
+ return true;
+ }
+
+
+ template <class lock_type, class Rep, class Period>
+ cv_status
+ wait_for(
+ lock_type& lock,
+ const chrono::duration<Rep, Period>& d)
+ {
+ using namespace chrono;
+ system_clock::time_point s_now = system_clock::now();
+ steady_clock::time_point c_now = steady_clock::now();
+ wait_until(lock, s_now + ceil<nanoseconds>(d));
+ return steady_clock::now() - c_now < d ? cv_status::no_timeout :
+ cv_status::timeout;
+
+ }
+
+
+ template <class lock_type, class Rep, class Period, class Predicate>
+ bool
+ wait_for(
+ lock_type& lock,
+ const chrono::duration<Rep, Period>& d,
+ Predicate pred)
+ {
+ while (!pred())
+ {
+ if (wait_for(lock, d) == cv_status::timeout)
+ return pred();
+ }
+ return true;
+ }
+
+ template <class lock_type>
+ inline void wait_until(
+ lock_type& lk,
+ chrono::time_point<chrono::system_clock, chrono::nanoseconds> tp)
+ {
+ using namespace chrono;
+ nanoseconds d = tp.time_since_epoch();
+ timespec ts;
+ seconds s = duration_cast<seconds>(d);
+ ts.tv_sec = static_cast<long>(s.count());
+ ts.tv_nsec = static_cast<long>((d - s).count());
+ do_timed_wait(lk, ts);
+ }
+#endif
+
+ void notify_one() BOOST_NOEXCEPT
         {
             boost::pthread::pthread_mutex_scoped_lock internal_lock(&internal_mutex);
             BOOST_VERIFY(!pthread_cond_signal(&cond));
         }
 
- void notify_all()
+ void notify_all() BOOST_NOEXCEPT
         {
             boost::pthread::pthread_mutex_scoped_lock internal_lock(&internal_mutex);
             BOOST_VERIFY(!pthread_cond_broadcast(&cond));
         }
+ private: // used by boost::thread::try_join_until
+
+ template <class lock_type>
+ inline bool do_timed_wait(
+ lock_type& m,
+ struct timespec const &timeout)
+ {
+ int res=0;
+ {
+ thread_cv_detail::lock_on_exit<lock_type> guard;
+ detail::interruption_checker check_for_interruption(&internal_mutex,&cond);
+ guard.activate(m);
+ res=pthread_cond_timedwait(&cond,&internal_mutex,&timeout);
+ }
+ this_thread::interruption_point();
+ if(res==ETIMEDOUT)
+ {
+ return false;
+ }
+ if(res)
+ {
+ boost::throw_exception(condition_error(res, "condition_variable_any failed in pthread_cond_timedwait"));
+ }
+ return true;
+ }
+
+
     };
 
 }

Modified: branches/quickbook-dev/boost/thread/pthread/condition_variable_fwd.hpp
==============================================================================
--- branches/quickbook-dev/boost/thread/pthread/condition_variable_fwd.hpp (original)
+++ branches/quickbook-dev/boost/thread/pthread/condition_variable_fwd.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -4,27 +4,41 @@
 // accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)
 // (C) Copyright 2007-8 Anthony Williams
+// (C) Copyright 2011 Vicente J. Botet Escriba
 
 #include <boost/assert.hpp>
 #include <boost/throw_exception.hpp>
 #include <pthread.h>
+#include <boost/thread/cv_status.hpp>
 #include <boost/thread/mutex.hpp>
 #include <boost/thread/locks.hpp>
 #include <boost/thread/thread_time.hpp>
 #include <boost/thread/xtime.hpp>
+#ifdef BOOST_THREAD_USES_CHRONO
+#include <boost/chrono/system_clocks.hpp>
+#include <boost/chrono/ceil.hpp>
+#endif
 
 #include <boost/config/abi_prefix.hpp>
 
 namespace boost
 {
+
     class condition_variable
     {
     private:
         pthread_mutex_t internal_mutex;
         pthread_cond_t cond;
 
- condition_variable(condition_variable&);
- condition_variable& operator=(condition_variable&);
+#ifndef BOOST_NO_DELETED_FUNCTIONS
+ public:
+ condition_variable(condition_variable const&) = delete;
+ condition_variable& operator=(condition_variable const&) = delete;
+#else // BOOST_NO_DELETED_FUNCTIONS
+ private:
+ condition_variable(condition_variable const&);
+ condition_variable& operator=(condition_variable const&);
+#endif // BOOST_NO_DELETED_FUNCTIONS
 
     public:
         condition_variable()
@@ -32,13 +46,13 @@
             int const res=pthread_mutex_init(&internal_mutex,NULL);
             if(res)
             {
- boost::throw_exception(thread_resource_error());
+ boost::throw_exception(thread_resource_error(res, "boost:: condition_variable constructor failed in pthread_mutex_init"));
             }
             int const res2=pthread_cond_init(&cond,NULL);
             if(res2)
             {
                 BOOST_VERIFY(!pthread_mutex_destroy(&internal_mutex));
- boost::throw_exception(thread_resource_error());
+ boost::throw_exception(thread_resource_error(res2, "boost:: condition_variable constructor failed in pthread_cond_init"));
             }
         }
         ~condition_variable()
@@ -59,21 +73,32 @@
             while(!pred()) wait(m);
         }
 
- inline bool timed_wait(unique_lock<mutex>& m,
- boost::system_time const& wait_until);
- bool timed_wait(unique_lock<mutex>& m,xtime const& wait_until)
+ inline bool timed_wait(
+ unique_lock<mutex>& m,
+ boost::system_time const& wait_until)
+ {
+ struct timespec const timeout=detail::get_timespec(wait_until);
+ return do_timed_wait(m, timeout);
+ }
+ bool timed_wait(
+ unique_lock<mutex>& m,
+ xtime const& wait_until)
         {
             return timed_wait(m,system_time(wait_until));
         }
 
         template<typename duration_type>
- bool timed_wait(unique_lock<mutex>& m,duration_type const& wait_duration)
+ bool timed_wait(
+ unique_lock<mutex>& m,
+ duration_type const& wait_duration)
         {
             return timed_wait(m,get_system_time()+wait_duration);
         }
 
         template<typename predicate_type>
- bool timed_wait(unique_lock<mutex>& m,boost::system_time const& wait_until,predicate_type pred)
+ bool timed_wait(
+ unique_lock<mutex>& m,
+ boost::system_time const& wait_until,predicate_type pred)
         {
             while (!pred())
             {
@@ -84,25 +109,126 @@
         }
 
         template<typename predicate_type>
- bool timed_wait(unique_lock<mutex>& m,xtime const& wait_until,predicate_type pred)
+ bool timed_wait(
+ unique_lock<mutex>& m,
+ xtime const& wait_until,predicate_type pred)
         {
             return timed_wait(m,system_time(wait_until),pred);
         }
 
         template<typename duration_type,typename predicate_type>
- bool timed_wait(unique_lock<mutex>& m,duration_type const& wait_duration,predicate_type pred)
+ bool timed_wait(
+ unique_lock<mutex>& m,
+ duration_type const& wait_duration,predicate_type pred)
         {
             return timed_wait(m,get_system_time()+wait_duration,pred);
         }
 
+#ifdef BOOST_THREAD_USES_CHRONO
+
+ template <class Duration>
+ cv_status
+ wait_until(
+ unique_lock<mutex>& lock,
+ const chrono::time_point<chrono::system_clock, Duration>& t)
+ {
+ using namespace chrono;
+ typedef time_point<system_clock, nanoseconds> nano_sys_tmpt;
+ wait_until(lock,
+ nano_sys_tmpt(ceil<nanoseconds>(t.time_since_epoch())));
+ return system_clock::now() < t ? cv_status::no_timeout :
+ cv_status::timeout;
+ }
+
+ template <class Clock, class Duration>
+ cv_status
+ wait_until(
+ unique_lock<mutex>& lock,
+ const chrono::time_point<Clock, Duration>& t)
+ {
+ using namespace chrono;
+ system_clock::time_point s_now = system_clock::now();
+ typename Clock::time_point c_now = Clock::now();
+ wait_until(lock, s_now + ceil<nanoseconds>(t - c_now));
+ return Clock::now() < t ? cv_status::no_timeout : cv_status::timeout;
+ }
+
+ template <class Clock, class Duration, class Predicate>
+ bool
+ wait_until(
+ unique_lock<mutex>& lock,
+ const chrono::time_point<Clock, Duration>& t,
+ Predicate pred)
+ {
+ while (!pred())
+ {
+ if (wait_until(lock, t) == cv_status::timeout)
+ return pred();
+ }
+ return true;
+ }
+
+
+ template <class Rep, class Period>
+ cv_status
+ wait_for(
+ unique_lock<mutex>& lock,
+ const chrono::duration<Rep, Period>& d)
+ {
+ using namespace chrono;
+ system_clock::time_point s_now = system_clock::now();
+ steady_clock::time_point c_now = steady_clock::now();
+ wait_until(lock, s_now + ceil<nanoseconds>(d));
+ return steady_clock::now() - c_now < d ? cv_status::no_timeout :
+ cv_status::timeout;
+
+ }
+
+
+ template <class Rep, class Period, class Predicate>
+ bool
+ wait_for(
+ unique_lock<mutex>& lock,
+ const chrono::duration<Rep, Period>& d,
+ Predicate pred)
+ {
+ while (!pred())
+ {
+ if (wait_for(lock, d) == cv_status::timeout)
+ return pred();
+ }
+ return true;
+ }
+#endif
+
         typedef pthread_cond_t* native_handle_type;
         native_handle_type native_handle()
         {
             return &cond;
         }
 
- void notify_one();
- void notify_all();
+ void notify_one() BOOST_NOEXCEPT;
+ void notify_all() BOOST_NOEXCEPT;
+
+#ifdef BOOST_THREAD_USES_CHRONO
+ inline void wait_until(
+ unique_lock<mutex>& lk,
+ chrono::time_point<chrono::system_clock, chrono::nanoseconds> tp)
+ {
+ using namespace chrono;
+ nanoseconds d = tp.time_since_epoch();
+ timespec ts;
+ seconds s = duration_cast<seconds>(d);
+ ts.tv_sec = static_cast<long>(s.count());
+ ts.tv_nsec = static_cast<long>((d - s).count());
+ do_timed_wait(lk, ts);
+ }
+#endif
+ //private: // used by boost::thread::try_join_until
+
+ inline bool do_timed_wait(
+ unique_lock<mutex>& lock,
+ struct timespec const &timeout);
     };
 }
 

Modified: branches/quickbook-dev/boost/thread/pthread/mutex.hpp
==============================================================================
--- branches/quickbook-dev/boost/thread/pthread/mutex.hpp (original)
+++ branches/quickbook-dev/boost/thread/pthread/mutex.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -16,6 +16,10 @@
 #include <errno.h>
 #include <boost/thread/pthread/timespec.hpp>
 #include <boost/thread/pthread/pthread_mutex_scoped_lock.hpp>
+#ifdef BOOST_THREAD_USES_CHRONO
+#include <boost/chrono/system_clocks.hpp>
+#include <boost/chrono/ceil.hpp>
+#endif
 
 #ifdef _POSIX_TIMEOUTS
 #if _POSIX_TIMEOUTS >= 0 && _POSIX_C_SOURCE>=200112L
@@ -29,9 +33,16 @@
 {
     class mutex
     {
+#ifndef BOOST_NO_DELETED_FUNCTIONS
+ public:
+ mutex(mutex const&) = delete;
+ mutex& operator=(mutex const&) = delete;
+#else // BOOST_NO_DELETED_FUNCTIONS
+ private:
+ mutex(mutex const&);
+ mutex& operator=(mutex const&);
+#endif // BOOST_NO_DELETED_FUNCTIONS
     private:
- mutex(mutex const&);
- mutex& operator=(mutex const&);
         pthread_mutex_t m;
     public:
         mutex()
@@ -39,7 +50,7 @@
             int const res=pthread_mutex_init(&m,NULL);
             if(res)
             {
- boost::throw_exception(thread_resource_error());
+ boost::throw_exception(thread_resource_error(res, "boost:: mutex constructor failed in pthread_mutex_init"));
             }
         }
         ~mutex()
@@ -58,9 +69,9 @@
             {
                 res = pthread_mutex_lock(&m);
             } while (res == EINTR);
- if(res)
+ if (res)
             {
- boost::throw_exception(lock_error(res));
+ boost::throw_exception(lock_error(res,"boost: mutex lock failed in pthread_mutex_lock"));
             }
         }
 
@@ -83,7 +94,11 @@
             } while (res == EINTR);
             if(res && (res!=EBUSY))
             {
- boost::throw_exception(lock_error(res));
+ // The following throw_exception has been replaced by an assertion and just return false,
+ // as this is an internal error and the user can do nothing with the exception.
+ //boost::throw_exception(lock_error(res,"boost: mutex try_lock failed in pthread_mutex_trylock"));
+ BOOST_ASSERT(false && "boost: mutex try_lock failed in pthread_mutex_trylock");
+ return false;
             }
 
             return !res;
@@ -103,9 +118,16 @@
 
     class timed_mutex
     {
+#ifndef BOOST_NO_DELETED_FUNCTIONS
+ public:
+ timed_mutex(timed_mutex const&) = delete;
+ timed_mutex& operator=(timed_mutex const&) = delete;
+#else // BOOST_NO_DELETED_FUNCTIONS
     private:
- timed_mutex(timed_mutex const&);
- timed_mutex& operator=(timed_mutex const&);
+ timed_mutex(timed_mutex const&);
+ timed_mutex& operator=(timed_mutex const&);
+ public:
+#endif // BOOST_NO_DELETED_FUNCTIONS
     private:
         pthread_mutex_t m;
 #ifndef BOOST_PTHREAD_HAS_TIMEDLOCK
@@ -118,14 +140,14 @@
             int const res=pthread_mutex_init(&m,NULL);
             if(res)
             {
- boost::throw_exception(thread_resource_error());
+ boost::throw_exception(thread_resource_error(res, "boost:: timed_mutex constructor failed in pthread_mutex_init"));
             }
 #ifndef BOOST_PTHREAD_HAS_TIMEDLOCK
             int const res2=pthread_cond_init(&cond,NULL);
             if(res2)
             {
                 BOOST_VERIFY(!pthread_mutex_destroy(&m));
- boost::throw_exception(thread_resource_error());
+ boost::throw_exception(thread_resource_error(res2, "boost:: timed_mutex constructor failed in pthread_cond_init"));
             }
             is_locked=false;
 #endif
@@ -165,19 +187,16 @@
             BOOST_ASSERT(!res || res==EBUSY);
             return !res;
         }
- bool timed_lock(system_time const & abs_time)
- {
- struct timespec const timeout=detail::get_timespec(abs_time);
- int const res=pthread_mutex_timedlock(&m,&timeout);
- BOOST_ASSERT(!res || res==ETIMEDOUT);
- return !res;
- }
 
- typedef pthread_mutex_t* native_handle_type;
- native_handle_type native_handle()
+
+ private:
+ bool do_try_lock_until(struct timespec const &timeout)
         {
- return &m;
+ int const res=pthread_mutex_timedlock(&m,&timeout);
+ BOOST_ASSERT(!res || res==ETIMEDOUT);
+ return !res;
         }
+ public:
 
 #else
         void lock()
@@ -208,9 +227,9 @@
             return true;
         }
 
- bool timed_lock(system_time const & abs_time)
+ private:
+ bool do_try_lock_until(struct timespec const &timeout)
         {
- struct timespec const timeout=detail::get_timespec(abs_time);
             boost::pthread::pthread_mutex_scoped_lock const local_lock(&m);
             while(is_locked)
             {
@@ -224,8 +243,54 @@
             is_locked=true;
             return true;
         }
+ public:
 #endif
 
+ bool timed_lock(system_time const & abs_time)
+ {
+ struct timespec const ts=detail::get_timespec(abs_time);
+ return do_try_lock_until(ts);
+ }
+
+#ifdef BOOST_THREAD_USES_CHRONO
+ template <class Rep, class Period>
+ bool try_lock_for(const chrono::duration<Rep, Period>& rel_time)
+ {
+ return try_lock_until(chrono::steady_clock::now() + rel_time);
+ }
+ template <class Clock, class Duration>
+ bool try_lock_until(const chrono::time_point<Clock, Duration>& t)
+ {
+ using namespace chrono;
+ system_clock::time_point s_now = system_clock::now();
+ typename Clock::time_point c_now = Clock::now();
+ return try_lock_until(s_now + ceil<nanoseconds>(t - c_now));
+ }
+ template <class Duration>
+ bool try_lock_until(const chrono::time_point<chrono::system_clock, Duration>& t)
+ {
+ using namespace chrono;
+ typedef time_point<system_clock, nanoseconds> nano_sys_tmpt;
+ return try_lock_until(nano_sys_tmpt(ceil<nanoseconds>(t.time_since_epoch())));
+ }
+ bool try_lock_until(const chrono::time_point<chrono::system_clock, chrono::nanoseconds>& tp)
+ {
+ using namespace chrono;
+ nanoseconds d = tp.time_since_epoch();
+ timespec ts;
+ seconds s = duration_cast<seconds>(d);
+ ts.tv_sec = static_cast<long>(s.count());
+ ts.tv_nsec = static_cast<long>((d - s).count());
+ return do_try_lock_until(ts);
+ }
+#endif
+
+ typedef pthread_mutex_t* native_handle_type;
+ native_handle_type native_handle()
+ {
+ return &m;
+ }
+
         typedef unique_lock<timed_mutex> scoped_timed_lock;
         typedef detail::try_lock_wrapper<timed_mutex> scoped_try_lock;
         typedef scoped_timed_lock scoped_lock;

Modified: branches/quickbook-dev/boost/thread/pthread/once.hpp
==============================================================================
--- branches/quickbook-dev/boost/thread/pthread/once.hpp (original)
+++ branches/quickbook-dev/boost/thread/pthread/once.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -10,7 +10,6 @@
 // http://www.boost.org/LICENSE_1_0.txt)
 
 #include <boost/thread/detail/config.hpp>
-#include <boost/config.hpp>
 
 #include <pthread.h>
 #include <boost/assert.hpp>
@@ -22,11 +21,39 @@
 namespace boost
 {
 
+#if BOOST_THREAD_VERSION==3
+
+ struct once_flag
+ {
+ BOOST_CONSTEXPR once_flag() BOOST_NOEXCEPT
+ : epoch(0)
+ {}
+#ifndef BOOST_NO_DELETED_FUNCTIONS
+ once_flag(const once_flag&) = delete;
+ once_flag& operator=(const once_flag&) = delete;
+#else // BOOST_NO_DELETED_FUNCTIONS
+ private:
+ once_flag(const once_flag&);
+ once_flag& operator=(const once_flag&);
+ public:
+#endif // BOOST_NO_DELETED_FUNCTIONS
+ private:
+ boost::uintmax_t epoch;
+
+ };
+
+#else // BOOST_THREAD_VERSION==3
+
     struct once_flag
     {
         boost::uintmax_t epoch;
     };
 
+#define BOOST_ONCE_INITIAL_FLAG_VALUE 0
+#define BOOST_ONCE_INIT {BOOST_ONCE_INITIAL_FLAG_VALUE}
+
+#endif // BOOST_THREAD_VERSION==3
+
     namespace detail
     {
         BOOST_THREAD_DECL boost::uintmax_t& get_once_per_thread_epoch();
@@ -35,10 +62,6 @@
         BOOST_THREAD_DECL extern pthread_cond_t once_epoch_cv;
     }
 
-#define BOOST_ONCE_INITIAL_FLAG_VALUE 0
-#define BOOST_ONCE_INIT {BOOST_ONCE_INITIAL_FLAG_VALUE}
-
-
     // Based on Mike Burrows fast_pthread_once algorithm as described in
     // http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2444.html
     template<typename Function>

Modified: branches/quickbook-dev/boost/thread/pthread/recursive_mutex.hpp
==============================================================================
--- branches/quickbook-dev/boost/thread/pthread/recursive_mutex.hpp (original)
+++ branches/quickbook-dev/boost/thread/pthread/recursive_mutex.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -19,6 +19,10 @@
 #include <errno.h>
 #include <boost/thread/pthread/timespec.hpp>
 #include <boost/thread/pthread/pthread_mutex_scoped_lock.hpp>
+#ifdef BOOST_THREAD_USES_CHRONO
+#include <boost/chrono/system_clocks.hpp>
+#include <boost/chrono/ceil.hpp>
+#endif
 
 #ifdef _POSIX_TIMEOUTS
 #if _POSIX_TIMEOUTS >= 0
@@ -36,9 +40,16 @@
 {
     class recursive_mutex
     {
+#ifndef BOOST_NO_DELETED_FUNCTIONS
+ public:
+ recursive_mutex(recursive_mutex const&) = delete;
+ recursive_mutex& operator=(recursive_mutex const&) = delete;
+#else // BOOST_NO_DELETED_FUNCTIONS
+ private:
+ recursive_mutex(recursive_mutex const&);
+ recursive_mutex& operator=(recursive_mutex const&);
+#endif // BOOST_NO_DELETED_FUNCTIONS
     private:
- recursive_mutex(recursive_mutex const&);
- recursive_mutex& operator=(recursive_mutex const&);
         pthread_mutex_t m;
 #ifndef BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
         pthread_cond_t cond;
@@ -55,33 +66,33 @@
             int const init_attr_res=pthread_mutexattr_init(&attr);
             if(init_attr_res)
             {
- boost::throw_exception(thread_resource_error());
+ boost::throw_exception(thread_resource_error(init_attr_res, "boost:: recursive_mutex constructor failed in pthread_mutexattr_init"));
             }
             int const set_attr_res=pthread_mutexattr_settype(&attr,PTHREAD_MUTEX_RECURSIVE);
             if(set_attr_res)
             {
                 BOOST_VERIFY(!pthread_mutexattr_destroy(&attr));
- boost::throw_exception(thread_resource_error());
+ boost::throw_exception(thread_resource_error(set_attr_res, "boost:: recursive_mutex constructor failed in pthread_mutexattr_settype"));
             }
 
             int const res=pthread_mutex_init(&m,&attr);
             if(res)
             {
                 BOOST_VERIFY(!pthread_mutexattr_destroy(&attr));
- boost::throw_exception(thread_resource_error());
+ boost::throw_exception(thread_resource_error(res, "boost:: recursive_mutex constructor failed in pthread_mutex_init"));
             }
             BOOST_VERIFY(!pthread_mutexattr_destroy(&attr));
 #else
             int const res=pthread_mutex_init(&m,NULL);
             if(res)
             {
- boost::throw_exception(thread_resource_error());
+ boost::throw_exception(thread_resource_error(res, "boost:: recursive_mutex constructor failed in pthread_mutex_init"));
             }
             int const res2=pthread_cond_init(&cond,NULL);
             if(res2)
             {
                 BOOST_VERIFY(!pthread_mutex_destroy(&m));
- boost::throw_exception(thread_resource_error());
+ boost::throw_exception(thread_resource_error(res2, "boost:: recursive_mutex constructor failed in pthread_cond_init"));
             }
             is_locked=false;
             count=0;
@@ -170,9 +181,15 @@
 
     class recursive_timed_mutex
     {
+#ifndef BOOST_NO_DELETED_FUNCTIONS
+ public:
+ recursive_timed_mutex(recursive_timed_mutex const&) = delete;
+ recursive_timed_mutex& operator=(recursive_timed_mutex const&) = delete;
+#else // BOOST_NO_DELETED_FUNCTIONS
     private:
- recursive_timed_mutex(recursive_timed_mutex const&);
- recursive_timed_mutex& operator=(recursive_timed_mutex const&);
+ recursive_timed_mutex(recursive_timed_mutex const&);
+ recursive_timed_mutex& operator=(recursive_timed_mutex const&);
+#endif // BOOST_NO_DELETED_FUNCTIONS
     private:
         pthread_mutex_t m;
 #ifndef BOOST_USE_PTHREAD_RECURSIVE_TIMEDLOCK
@@ -190,32 +207,32 @@
             int const init_attr_res=pthread_mutexattr_init(&attr);
             if(init_attr_res)
             {
- boost::throw_exception(thread_resource_error());
+ boost::throw_exception(thread_resource_error(init_attr_res, "boost:: recursive_timed_mutex constructor failed in pthread_mutexattr_init"));
             }
             int const set_attr_res=pthread_mutexattr_settype(&attr,PTHREAD_MUTEX_RECURSIVE);
             if(set_attr_res)
             {
- boost::throw_exception(thread_resource_error());
+ boost::throw_exception(thread_resource_error(set_attr_res, "boost:: recursive_timed_mutex constructor failed in pthread_mutexattr_settype"));
             }
 
             int const res=pthread_mutex_init(&m,&attr);
             if(res)
             {
                 BOOST_VERIFY(!pthread_mutexattr_destroy(&attr));
- boost::throw_exception(thread_resource_error());
+ boost::throw_exception(thread_resource_error(res, "boost:: recursive_timed_mutex constructor failed in pthread_mutex_init"));
             }
             BOOST_VERIFY(!pthread_mutexattr_destroy(&attr));
 #else
             int const res=pthread_mutex_init(&m,NULL);
             if(res)
             {
- boost::throw_exception(thread_resource_error());
+ boost::throw_exception(thread_resource_error(res, "boost:: recursive_timed_mutex constructor failed in pthread_mutex_init"));
             }
             int const res2=pthread_cond_init(&cond,NULL);
             if(res2)
             {
                 BOOST_VERIFY(!pthread_mutex_destroy(&m));
- boost::throw_exception(thread_resource_error());
+ boost::throw_exception(thread_resource_error(res2, "boost:: recursive_timed_mutex constructor failed in pthread_cond_init"));
             }
             is_locked=false;
             count=0;
@@ -252,19 +269,15 @@
             BOOST_ASSERT(!res || res==EBUSY);
             return !res;
         }
- bool timed_lock(system_time const & abs_time)
+ private:
+ bool do_try_lock_until(struct timespec const &timeout)
         {
- struct timespec const timeout=detail::get_timespec(abs_time);
             int const res=pthread_mutex_timedlock(&m,&timeout);
             BOOST_ASSERT(!res || res==ETIMEDOUT);
             return !res;
         }
 
- typedef pthread_mutex_t* native_handle_type;
- native_handle_type native_handle()
- {
- return &m;
- }
+ public:
 
 #else
         void lock()
@@ -308,9 +321,9 @@
             return true;
         }
 
- bool timed_lock(system_time const & abs_time)
+ private:
+ bool do_try_lock_until(struct timespec const &timeout)
         {
- struct timespec const timeout=detail::get_timespec(abs_time);
             boost::pthread::pthread_mutex_scoped_lock const local_lock(&m);
             if(is_locked && pthread_equal(owner,pthread_self()))
             {
@@ -331,8 +344,55 @@
             owner=pthread_self();
             return true;
         }
+ public:
+
 #endif
 
+ bool timed_lock(system_time const & abs_time)
+ {
+ struct timespec const ts=detail::get_timespec(abs_time);
+ return do_try_lock_until(ts);
+ }
+
+#ifdef BOOST_THREAD_USES_CHRONO
+ template <class Rep, class Period>
+ bool try_lock_for(const chrono::duration<Rep, Period>& rel_time)
+ {
+ return try_lock_until(chrono::steady_clock::now() + rel_time);
+ }
+ template <class Clock, class Duration>
+ bool try_lock_until(const chrono::time_point<Clock, Duration>& t)
+ {
+ using namespace chrono;
+ system_clock::time_point s_now = system_clock::now();
+ typename Clock::time_point c_now = Clock::now();
+ return try_lock_until(s_now + ceil<nanoseconds>(t - c_now));
+ }
+ template <class Duration>
+ bool try_lock_until(const chrono::time_point<chrono::system_clock, Duration>& t)
+ {
+ using namespace chrono;
+ typedef time_point<system_clock, nanoseconds> nano_sys_tmpt;
+ return try_lock_until(nano_sys_tmpt(ceil<nanoseconds>(t.time_since_epoch())));
+ }
+ bool try_lock_until(const chrono::time_point<chrono::system_clock, chrono::nanoseconds>& tp)
+ {
+ using namespace chrono;
+ nanoseconds d = tp.time_since_epoch();
+ timespec ts;
+ seconds s = duration_cast<seconds>(d);
+ ts.tv_sec = static_cast<long>(s.count());
+ ts.tv_nsec = static_cast<long>((d - s).count());
+ return do_try_lock_until(ts);
+ }
+#endif
+
+ typedef pthread_mutex_t* native_handle_type;
+ native_handle_type native_handle()
+ {
+ return &m;
+ }
+
         typedef unique_lock<recursive_timed_mutex> scoped_timed_lock;
         typedef detail::try_lock_wrapper<recursive_timed_mutex> scoped_try_lock;
         typedef scoped_timed_lock scoped_lock;

Modified: branches/quickbook-dev/boost/thread/pthread/shared_mutex.hpp
==============================================================================
--- branches/quickbook-dev/boost/thread/pthread/shared_mutex.hpp (original)
+++ branches/quickbook-dev/boost/thread/pthread/shared_mutex.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -253,6 +253,8 @@
             {
                 state.exclusive_waiting_blocked=false;
                 release_waiters();
+ } else {
+ shared_cond.notify_all();
             }
         }
 
@@ -296,6 +298,7 @@
             release_waiters();
         }
     };
+
 }
 
 #include <boost/config/abi_suffix.hpp>

Modified: branches/quickbook-dev/boost/thread/pthread/thread_data.hpp
==============================================================================
--- branches/quickbook-dev/boost/thread/pthread/thread_data.hpp (original)
+++ branches/quickbook-dev/boost/thread/pthread/thread_data.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -15,11 +15,55 @@
 #include <boost/assert.hpp>
 #include <boost/thread/pthread/condition_variable_fwd.hpp>
 #include <map>
-
+#include <unistd.h>
+#ifdef BOOST_THREAD_USES_CHRONO
+#include <boost/chrono/system_clocks.hpp>
+#endif
 #include <boost/config/abi_prefix.hpp>
 
 namespace boost
 {
+ class thread_attributes {
+ public:
+ thread_attributes() {
+ int res = pthread_attr_init(&val_);
+ BOOST_VERIFY(!res && "pthread_attr_init failed");
+ }
+ ~thread_attributes() {
+ int res = pthread_attr_destroy(&val_);
+ BOOST_VERIFY(!res && "pthread_attr_destroy failed");
+ }
+ // stack
+ void set_stack_size(std::size_t size) {
+ if (size==0) return;
+ std::size_t page_size = getpagesize();
+#ifdef PTHREAD_STACK_MIN
+ if (size<PTHREAD_STACK_MIN) size=PTHREAD_STACK_MIN;
+#endif
+ size = ((size+page_size-1)/page_size)*page_size;
+ int res = pthread_attr_setstacksize(&val_, size);
+ BOOST_VERIFY(!res && "pthread_attr_setstacksize failed");
+ }
+
+ std::size_t get_stack_size() const {
+ std::size_t size;
+ int res = pthread_attr_getstacksize(&val_, &size);
+ BOOST_VERIFY(!res && "pthread_attr_getstacksize failed");
+ return size;
+ }
+
+ typedef pthread_attr_t native_handle_type;
+ native_handle_type* native_handle() {
+ return &val_;
+ }
+ const native_handle_type* native_handle() const {
+ return &val_;
+ }
+
+ private:
+ pthread_attr_t val_;
+ };
+
     class thread;
 
     namespace detail
@@ -128,7 +172,10 @@
 
     namespace this_thread
     {
- void BOOST_THREAD_DECL yield();
+#ifdef BOOST_THREAD_USES_CHRONO
+ void BOOST_SYMBOL_VISIBLE sleep_for(const chrono::nanoseconds& ns);
+#endif
+ void BOOST_THREAD_DECL yield() BOOST_NOEXCEPT;
 
 #ifdef __DECXXX
         /// Workaround of DECCXX issue of incorrect template substitution

Modified: branches/quickbook-dev/boost/thread/thread.hpp
==============================================================================
--- branches/quickbook-dev/boost/thread/thread.hpp (original)
+++ branches/quickbook-dev/boost/thread/thread.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 
 // thread.hpp
 //
-// (C) Copyright 2007-8 Anthony Williams
+// (C) Copyright 2007-8 Anthony Williams
 //
 // Distributed under the Boost Software License, Version 1.0. (See
 // accompanying file LICENSE_1_0.txt or copy at
@@ -22,6 +22,7 @@
 #include <boost/thread/detail/thread.hpp>
 #include <boost/thread/detail/thread_interruption.hpp>
 #include <boost/thread/detail/thread_group.hpp>
+#include <boost/thread/v2/thread.hpp>
 
 
 #endif

Modified: branches/quickbook-dev/boost/thread/win32/basic_recursive_mutex.hpp
==============================================================================
--- branches/quickbook-dev/boost/thread/win32/basic_recursive_mutex.hpp (original)
+++ branches/quickbook-dev/boost/thread/win32/basic_recursive_mutex.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -11,6 +11,10 @@
 
 #include <boost/thread/win32/thread_primitives.hpp>
 #include <boost/thread/win32/basic_timed_mutex.hpp>
+#ifdef BOOST_THREAD_USES_CHRONO
+#include <boost/chrono/system_clocks.hpp>
+#include <boost/chrono/ceil.hpp>
+#endif
 
 #include <boost/config/abi_prefix.hpp>
 
@@ -64,6 +68,20 @@
                 return timed_lock(get_system_time()+timeout);
             }
 
+#ifdef BOOST_THREAD_USES_CHRONO
+ template <class Rep, class Period>
+ bool try_lock_for(const chrono::duration<Rep, Period>& rel_time)
+ {
+ long const current_thread_id=win32::GetCurrentThreadId();
+ return try_recursive_lock(current_thread_id) || try_timed_lock_for(current_thread_id,rel_time);
+ }
+ template <class Clock, class Duration>
+ bool try_lock_until(const chrono::time_point<Clock, Duration>& t)
+ {
+ long const current_thread_id=win32::GetCurrentThreadId();
+ return try_recursive_lock(current_thread_id) || try_timed_lock_until(current_thread_id,t);
+ }
+#endif
             void unlock()
             {
                 if(!--recursion_count)
@@ -105,7 +123,28 @@
                 }
                 return false;
             }
-
+ template <typename TP>
+ bool try_timed_lock_until(long current_thread_id,TP const& target)
+ {
+ if(mutex.try_lock_until(target))
+ {
+ BOOST_INTERLOCKED_EXCHANGE(&locking_thread_id,current_thread_id);
+ recursion_count=1;
+ return true;
+ }
+ return false;
+ }
+ template <typename D>
+ bool try_timed_lock_for(long current_thread_id,D const& target)
+ {
+ if(mutex.try_lock_for(target))
+ {
+ BOOST_INTERLOCKED_EXCHANGE(&locking_thread_id,current_thread_id);
+ recursion_count=1;
+ return true;
+ }
+ return false;
+ }
         };
 
         typedef basic_recursive_mutex_impl<basic_timed_mutex> basic_recursive_mutex;

Modified: branches/quickbook-dev/boost/thread/win32/basic_timed_mutex.hpp
==============================================================================
--- branches/quickbook-dev/boost/thread/win32/basic_timed_mutex.hpp (original)
+++ branches/quickbook-dev/boost/thread/win32/basic_timed_mutex.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -15,7 +15,10 @@
 #include <boost/thread/thread_time.hpp>
 #include <boost/thread/xtime.hpp>
 #include <boost/detail/interlocked.hpp>
-
+#ifdef BOOST_THREAD_USES_CHRONO
+#include <boost/chrono/system_clocks.hpp>
+#include <boost/chrono/ceil.hpp>
+#endif
 #include <boost/config/abi_prefix.hpp>
 
 namespace boost
@@ -142,6 +145,34 @@
                 }
                 return true;
             }
+ bool try_lock_for(chrono::milliseconds const& rel_time)
+ {
+ if(try_lock())
+ {
+ return true;
+ }
+ long old_count=active_count;
+ mark_waiting_and_try_lock(old_count);
+
+ if(old_count&lock_flag_value)
+ {
+ bool lock_acquired=false;
+ void* const sem=get_event();
+
+ do
+ {
+ if(win32::WaitForSingleObject(sem,static_cast<unsigned long>(rel_time.count()))!=0)
+ {
+ BOOST_INTERLOCKED_DECREMENT(&active_count);
+ return false;
+ }
+ clear_waiting_and_try_lock(old_count);
+ lock_acquired=!(old_count&lock_flag_value);
+ }
+ while(!lock_acquired);
+ }
+ return true;
+ }
 
             template<typename Duration>
             bool timed_lock(Duration const& timeout)
@@ -154,6 +185,20 @@
                 return timed_lock(system_time(timeout));
             }
 
+ template <class Rep, class Period>
+ bool try_lock_for(const chrono::duration<Rep, Period>& rel_time)
+ {
+ using namespace chrono;
+ return try_lock_for(ceil<milliseconds>(rel_time));
+ }
+ template <class Clock, class Duration>
+ bool try_lock_until(const chrono::time_point<Clock, Duration>& t)
+ {
+ using namespace chrono;
+ typename Clock::time_point c_now = Clock::now();
+ return try_lock_for(ceil<milliseconds>(t - c_now));
+ }
+
             void unlock()
             {
                 long const offset=lock_flag_value;

Modified: branches/quickbook-dev/boost/thread/win32/condition_variable.hpp
==============================================================================
--- branches/quickbook-dev/boost/thread/win32/condition_variable.hpp (original)
+++ branches/quickbook-dev/boost/thread/win32/condition_variable.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -10,12 +10,18 @@
 #include <limits.h>
 #include <boost/assert.hpp>
 #include <algorithm>
-#include <boost/thread/thread.hpp>
+#include <boost/thread/cv_status.hpp>
+//#include <boost/thread/thread.hpp>
+#include <boost/thread/win32/thread_data.hpp>
 #include <boost/thread/thread_time.hpp>
 #include <boost/thread/win32/interlocked_read.hpp>
 #include <boost/thread/xtime.hpp>
 #include <vector>
 #include <boost/intrusive_ptr.hpp>
+#ifdef BOOST_THREAD_USES_CHRONO
+#include <boost/chrono/system_clocks.hpp>
+#include <boost/chrono/ceil.hpp>
+#endif
 
 #include <boost/config/abi_prefix.hpp>
 
@@ -247,7 +253,7 @@
             ~basic_condition_variable()
             {}
 
- void notify_one()
+ void notify_one() BOOST_NOEXCEPT
             {
                 if(detail::interlocked_read_acquire(&total_count))
                 {
@@ -268,7 +274,7 @@
                 }
             }
 
- void notify_all()
+ void notify_all() BOOST_NOEXCEPT
             {
                 if(detail::interlocked_read_acquire(&total_count))
                 {
@@ -347,6 +353,58 @@
         {
             return do_wait(m,wait_duration.total_milliseconds(),pred);
         }
+
+#ifdef BOOST_THREAD_USES_CHRONO
+
+ template <class Clock, class Duration>
+ cv_status
+ wait_until(
+ unique_lock<mutex>& lock,
+ const chrono::time_point<Clock, Duration>& t)
+ {
+ using namespace chrono;
+ do_wait(lock, ceil<milliseconds>(t-Clock::now()).count());
+ return Clock::now() < t ? cv_status::no_timeout :
+ cv_status::timeout;
+ }
+
+ template <class Rep, class Period>
+ cv_status
+ wait_for(
+ unique_lock<mutex>& lock,
+ const chrono::duration<Rep, Period>& d)
+ {
+ using namespace chrono;
+ steady_clock::time_point c_now = steady_clock::now();
+ do_wait(lock, ceil<milliseconds>(d).count());
+ return steady_clock::now() - c_now < d ? cv_status::no_timeout :
+ cv_status::timeout;
+ }
+
+ template <class Clock, class Duration, class Predicate>
+ bool
+ wait_until(
+ unique_lock<mutex>& lock,
+ const chrono::time_point<Clock, Duration>& t,
+ Predicate pred)
+ {
+ while (!pred())
+ {
+ if (wait_until(lock, t) == cv_status::timeout)
+ return pred();
+ }
+ return true;
+ }
+ template <class Rep, class Period, class Predicate>
+ bool
+ wait_for(
+ unique_lock<mutex>& lock,
+ const chrono::duration<Rep, Period>& d,
+ Predicate pred)
+ {
+ return wait_until(lock, chrono::steady_clock::now() + d, pred);
+ }
+#endif
     };
 
     class condition_variable_any:
@@ -409,6 +467,58 @@
         {
             return do_wait(m,wait_duration.total_milliseconds(),pred);
         }
+#ifdef BOOST_THREAD_USES_CHRONO
+
+ template <class lock_type, class Clock, class Duration>
+ cv_status
+ wait_until(
+ lock_type& lock,
+ const chrono::time_point<Clock, Duration>& t)
+ {
+ using namespace chrono;
+ do_wait(lock, ceil<milliseconds>(t-Clock::now()).count());
+ return Clock::now() < t ? cv_status::no_timeout :
+ cv_status::timeout;
+ }
+
+ template <class lock_type, class Rep, class Period>
+ cv_status
+ wait_for(
+ lock_type& lock,
+ const chrono::duration<Rep, Period>& d)
+ {
+ using namespace chrono;
+ steady_clock::time_point c_now = steady_clock::now();
+ do_wait(lock, ceil<milliseconds>(d).count());
+ return steady_clock::now() - c_now < d ? cv_status::no_timeout :
+ cv_status::timeout;
+ }
+
+ template <class lock_type, class Clock, class Duration, class Predicate>
+ bool
+ wait_until(
+ lock_type& lock,
+ const chrono::time_point<Clock, Duration>& t,
+ Predicate pred)
+ {
+ while (!pred())
+ {
+ if (wait_until(lock, t) == cv_status::timeout)
+ return pred();
+ }
+ return true;
+ }
+
+ template <class lock_type, class Rep, class Period, class Predicate>
+ bool
+ wait_for(
+ lock_type& lock,
+ const chrono::duration<Rep, Period>& d,
+ Predicate pred)
+ {
+ return wait_until(lock, chrono::steady_clock::now() + d, pred);
+ }
+#endif
     };
 
 }

Modified: branches/quickbook-dev/boost/thread/win32/shared_mutex.hpp
==============================================================================
--- branches/quickbook-dev/boost/thread/win32/shared_mutex.hpp (original)
+++ branches/quickbook-dev/boost/thread/win32/shared_mutex.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -502,6 +502,8 @@
                     if(last_reader)
                     {
                         release_waiters(old_state);
+ } else {
+ release_waiters(old_state);
                     }
                     break;
                 }

Modified: branches/quickbook-dev/boost/thread/win32/thread_data.hpp
==============================================================================
--- branches/quickbook-dev/boost/thread/win32/thread_data.hpp (original)
+++ branches/quickbook-dev/boost/thread/win32/thread_data.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -10,11 +10,51 @@
 #include <boost/thread/thread_time.hpp>
 #include <boost/thread/win32/thread_primitives.hpp>
 #include <boost/thread/win32/thread_heap_alloc.hpp>
-
+#ifdef BOOST_THREAD_USES_CHRONO
+#include <boost/chrono/system_clocks.hpp>
+#endif
 #include <boost/config/abi_prefix.hpp>
 
 namespace boost
 {
+ class thread_attributes {
+ public:
+ thread_attributes() {
+ val_.stack_size = 0;
+ //val_.lpThreadAttributes=0;
+ }
+ ~thread_attributes() {
+ }
+ // stack size
+ void set_stack_size(std::size_t size) {
+ val_.stack_size = size;
+ }
+
+ std::size_t get_stack_size() const {
+ return val_.stack_size;
+ }
+
+ //void set_security(LPSECURITY_ATTRIBUTES lpThreadAttributes)
+ //{
+ // val_.lpThreadAttributes=lpThreadAttributes;
+ //}
+ //LPSECURITY_ATTRIBUTES get_security()
+ //{
+ // return val_.lpThreadAttributes;
+ //}
+
+ struct win_attrs {
+ std::size_t stack_size;
+ //LPSECURITY_ATTRIBUTES lpThreadAttributes;
+ };
+ typedef win_attrs native_handle_type;
+ native_handle_type* native_handle() {return &val_;}
+ const native_handle_type* native_handle() const {return &val_;}
+
+ private:
+ win_attrs val_;
+ };
+
     namespace detail
     {
         struct thread_exit_callback_node;
@@ -153,7 +193,7 @@
 
     namespace this_thread
     {
- void BOOST_THREAD_DECL yield();
+ void BOOST_THREAD_DECL yield() BOOST_NOEXCEPT;
 
         bool BOOST_THREAD_DECL interruptible_wait(detail::win32::handle handle_to_wait_for,detail::timeout target_time);
         inline void interruptible_wait(uintmax_t milliseconds)
@@ -174,6 +214,12 @@
         {
             interruptible_wait(abs_time);
         }
+#ifdef BOOST_THREAD_USES_CHRONO
+ inline void BOOST_SYMBOL_VISIBLE sleep_for(const chrono::nanoseconds& ns)
+ {
+ interruptible_wait(chrono::duration_cast<chrono::milliseconds>(ns).count());
+ }
+#endif
     }
 
 }

Modified: branches/quickbook-dev/boost/type_traits/type_with_alignment.hpp
==============================================================================
--- branches/quickbook-dev/boost/type_traits/type_with_alignment.hpp (original)
+++ branches/quickbook-dev/boost/type_traits/type_with_alignment.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -225,6 +225,8 @@
 struct __attribute__((__aligned__(8))) a8 {};
 struct __attribute__((__aligned__(16))) a16 {};
 struct __attribute__((__aligned__(32))) a32 {};
+struct __attribute__((__aligned__(64))) a64 {};
+struct __attribute__((__aligned__(128))) a128 {};
 }
 
 template<> class type_with_alignment<1> { public: typedef char type; };
@@ -233,6 +235,8 @@
 template<> class type_with_alignment<8> { public: typedef align::a8 type; };
 template<> class type_with_alignment<16> { public: typedef align::a16 type; };
 template<> class type_with_alignment<32> { public: typedef align::a32 type; };
+template<> class type_with_alignment<64> { public: typedef align::a64 type; };
+template<> class type_with_alignment<128> { public: typedef align::a128 type; };
 
 namespace detail {
 BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::align::a2,true)
@@ -240,6 +244,8 @@
 BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::align::a8,true)
 BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::align::a16,true)
 BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::align::a32,true)
+BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::align::a64,true)
+BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::align::a128,true)
 }
 #endif
 #if (defined(BOOST_MSVC) || (defined(BOOST_INTEL) && defined(_MSC_VER))) && _MSC_VER >= 1300

Modified: branches/quickbook-dev/boost/unordered/detail/emplace_args.hpp
==============================================================================
--- branches/quickbook-dev/boost/unordered/detail/emplace_args.hpp (original)
+++ branches/quickbook-dev/boost/unordered/detail/emplace_args.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -40,20 +40,7 @@
 
 #if !defined(BOOST_NO_RVALUE_REFERENCES) && \
         !defined(BOOST_NO_VARIADIC_TEMPLATES)
-# if defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
-# elif defined(__STD_RWCOMPILER_H__) || defined(_RWSTD_VER)
-# elif defined(_LIBCPP_VERSION)
-# define BOOST_UNORDERED_STD_FORWARD_MOVE
-# elif defined(__GLIBCPP__) || defined(__GLIBCXX__)
-# if defined(__GLIBCXX__) && __GLIBCXX__ >= 20090804
-# define BOOST_UNORDERED_STD_FORWARD_MOVE
-# endif
-# elif defined(__STL_CONFIG_H)
-# elif defined(__MSL_CPP__)
-# elif defined(__IBMCPP__)
-# elif defined(MSIPL_COMPILE_H)
-# elif (defined(_YVALS) && !defined(__IBMCPP__)) || defined(_CPPLIB_VER)
-# endif
+#define BOOST_UNORDERED_VARIADIC_MOVE
 #endif
 
 namespace boost { namespace unordered { namespace detail {
@@ -64,11 +51,11 @@
     // Either forwarding variadic arguments, or storing the arguments in
     // emplace_args##n
 
-#if defined(BOOST_UNORDERED_STD_FORWARD_MOVE)
+#if defined(BOOST_UNORDERED_VARIADIC_MOVE)
 
 #define BOOST_UNORDERED_EMPLACE_TEMPLATE typename... Args
 #define BOOST_UNORDERED_EMPLACE_ARGS Args&&... args
-#define BOOST_UNORDERED_EMPLACE_FORWARD std::forward<Args>(args)...
+#define BOOST_UNORDERED_EMPLACE_FORWARD boost::forward<Args>(args)...
 
 #else
 
@@ -302,7 +289,7 @@
 
 #endif
 
-#if defined(BOOST_UNORDERED_STD_FORWARD_MOVE)
+#if defined(BOOST_UNORDERED_VARIADIC_MOVE)
 
     ////////////////////////////////////////////////////////////////////////////
     // Construct from variadic parameters
@@ -310,7 +297,7 @@
     template <typename T, typename... Args>
     inline void construct_impl(T* address, Args&&... args)
     {
- new((void*) address) T(std::forward<Args>(args)...);
+ new((void*) address) T(boost::forward<Args>(args)...);
     }
 
     template <typename A, typename B, typename A0, typename A1, typename A2>
@@ -329,7 +316,7 @@
     inline typename enable_if<emulation1<A, B, A0>, void>::type
         construct_impl(std::pair<A, B>* address, A0&& a0)
     {
- new((void*) boost::addressof(address->first)) A(std::forward<A0>(a0));
+ new((void*) boost::addressof(address->first)) A(boost::forward<A0>(a0));
         new((void*) boost::addressof(address->second)) B();
    }
 
@@ -337,10 +324,10 @@
     inline typename enable_if<emulation3<A, B, A0>, void>::type
         construct_impl(std::pair<A, B>* address, A0&& a0, A1&& a1, A2&& a2)
     {
- new((void*) boost::addressof(address->first)) A(std::forward<A0>(a0));
+ new((void*) boost::addressof(address->first)) A(boost::forward<A0>(a0));
         new((void*) boost::addressof(address->second)) B(
- std::forward<A1>(a1),
- std::forward<A2>(a2));
+ boost::forward<A1>(a1),
+ boost::forward<A2>(a2));
     }
 
     template <typename A, typename B,
@@ -349,17 +336,17 @@
     inline void construct_impl(std::pair<A, B>* address,
             A0&& a0, A1&& a1, A2&& a2, A3&& a3, Args&&... args)
     {
- new((void*) boost::addressof(address->first)) A(std::forward<A0>(a0));
+ new((void*) boost::addressof(address->first)) A(boost::forward<A0>(a0));
 
         new((void*) boost::addressof(address->second)) B(
- std::forward<A1>(a1),
- std::forward<A2>(a2),
- std::forward<A3>(a3),
- std::forward<Args>(args)...);
+ boost::forward<A1>(a1),
+ boost::forward<A2>(a2),
+ boost::forward<A3>(a3),
+ boost::forward<Args>(args)...);
     }
 
 #endif // BOOST_UNORDERED_DEPRECATED_PAIR_CONSTRUCT
-#else // BOOST_UNORDERED_STD_FORWARD_MOVE
+#else // BOOST_UNORDERED_VARIADIC_MOVE
 
 ////////////////////////////////////////////////////////////////////////////////
 // Construct from emplace_args
@@ -471,7 +458,7 @@
 #undef BOOST_UNORDERED_CALL_FORWARD2
 
 #endif // BOOST_UNORDERED_DEPRECATED_PAIR_CONSTRUCT
-#endif // BOOST_UNORDERED_STD_FORWARD_MOVE
+#endif // BOOST_UNORDERED_VARIADIC_MOVE
 
     ////////////////////////////////////////////////////////////////////////////
     // Construct without using the emplace args mechanism.

Modified: branches/quickbook-dev/boost/unordered/detail/extract_key.hpp
==============================================================================
--- branches/quickbook-dev/boost/unordered/detail/extract_key.hpp (original)
+++ branches/quickbook-dev/boost/unordered/detail/extract_key.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -63,7 +63,7 @@
             return no_key();
         }
         
-#if defined(BOOST_UNORDERED_STD_FORWARD_MOVE)
+#if defined(BOOST_UNORDERED_VARIADIC_MOVE)
         template <class... Args>
         static no_key extract(Args const&...)
         {
@@ -126,7 +126,7 @@
             return v.first;
         }
 
-#if defined(BOOST_UNORDERED_STD_FORWARD_MOVE)
+#if defined(BOOST_UNORDERED_VARIADIC_MOVE)
         template <class Arg1, class... Args>
         static key_type const& extract(key_type const& k,
             Arg1 const&, Args const&...)
@@ -165,7 +165,7 @@
         }
 #endif
 
-#if defined(BOOST_UNORDERED_STD_FORWARD_MOVE)
+#if defined(BOOST_UNORDERED_VARIADIC_MOVE)
 
 #define BOOST_UNORDERED_KEY_FROM_TUPLE(namespace_) \
         template <typename T2> \

Modified: branches/quickbook-dev/boost/unordered/detail/unique.hpp
==============================================================================
--- branches/quickbook-dev/boost/unordered/detail/unique.hpp (original)
+++ branches/quickbook-dev/boost/unordered/detail/unique.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -337,7 +337,7 @@
             // exception (need strong safety in such a case).
             node_constructor a(this->node_alloc());
             a.construct_node();
-#if defined(BOOST_UNORDERED_STD_FORWARD_MOVE)
+#if defined(BOOST_UNORDERED_VARIADIC_MOVE)
             a.construct_value(boost::unordered::piecewise_construct,
                 boost::make_tuple(k), boost::make_tuple());
 #else
@@ -364,7 +364,7 @@
         template <BOOST_UNORDERED_EMPLACE_TEMPLATE>
         emplace_return emplace(BOOST_UNORDERED_EMPLACE_ARGS)
         {
-#if defined(BOOST_UNORDERED_STD_FORWARD_MOVE)
+#if defined(BOOST_UNORDERED_VARIADIC_MOVE)
             return emplace_impl(
                 extractor::extract(BOOST_UNORDERED_EMPLACE_FORWARD),
                 BOOST_UNORDERED_EMPLACE_FORWARD);
@@ -376,7 +376,7 @@
 #endif
         }
 
-#if !defined(BOOST_UNORDERED_STD_FORWARD_MOVE)
+#if !defined(BOOST_UNORDERED_VARIADIC_MOVE)
         template <typename A0>
         emplace_return emplace(
                 boost::unordered::detail::emplace_args1<A0> const& args)

Modified: branches/quickbook-dev/boost/unordered/unordered_map.hpp
==============================================================================
--- branches/quickbook-dev/boost/unordered/unordered_map.hpp (original)
+++ branches/quickbook-dev/boost/unordered/unordered_map.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -41,7 +41,9 @@
     template <class K, class T, class H, class P, class A>
     class unordered_map
     {
+#if defined(BOOST_UNORDERED_USE_MOVE)
         BOOST_COPYABLE_AND_MOVABLE(unordered_map)
+#endif
 
     public:
 
@@ -115,10 +117,17 @@
 
         unordered_map(unordered_map const&, allocator_type const&);
 
+#if defined(BOOST_UNORDERED_USE_MOVE)
         unordered_map(BOOST_RV_REF(unordered_map) other)
             : table_(other.table_, boost::unordered::detail::move_tag())
         {
         }
+#elif !defined(BOOST_NO_RVALUE_REFERENCES)
+ unordered_map(unordered_map&& other)
+ : table_(other.table_, boost::unordered::detail::move_tag())
+ {
+ }
+#endif
 
 #if !defined(BOOST_NO_RVALUE_REFERENCES)
         unordered_map(unordered_map&&, allocator_type const&);
@@ -139,6 +148,7 @@
 
         // Assign
 
+#if defined(BOOST_UNORDERED_USE_MOVE)
         unordered_map& operator=(BOOST_COPY_ASSIGN_REF(unordered_map) x)
         {
             table_.assign(x.table_);
@@ -150,6 +160,21 @@
             table_.move_assign(x.table_);
             return *this;
         }
+#else
+ unordered_map& operator=(unordered_map const& x)
+ {
+ table_.assign(x.table_);
+ return *this;
+ }
+
+#if !defined(BOOST_NO_RVALUE_REFERENCES)
+ unordered_map& operator=(unordered_map&& x)
+ {
+ table_.move_assign(x.table_);
+ return *this;
+ }
+#endif
+#endif
 
 #if !defined(BOOST_NO_0X_HDR_INITIALIZER_LIST)
         unordered_map& operator=(std::initializer_list<value_type>);
@@ -208,17 +233,17 @@
 
         // emplace
 
-#if defined(BOOST_UNORDERED_STD_FORWARD_MOVE)
+#if defined(BOOST_UNORDERED_VARIADIC_MOVE)
         template <class... Args>
         std::pair<iterator, bool> emplace(Args&&... args)
         {
- return table_.emplace(std::forward<Args>(args)...);
+ return table_.emplace(boost::forward<Args>(args)...);
         }
 
         template <class... Args>
         iterator emplace_hint(const_iterator, Args&&... args)
         {
- return table_.emplace(std::forward<Args>(args)...).first;
+ return table_.emplace(boost::forward<Args>(args)...).first;
         }
 #else
 
@@ -501,8 +526,9 @@
     template <class K, class T, class H, class P, class A>
     class unordered_multimap
     {
+#if defined(BOOST_UNORDERED_USE_MOVE)
         BOOST_COPYABLE_AND_MOVABLE(unordered_multimap)
-
+#endif
     public:
 
         typedef K key_type;
@@ -575,10 +601,17 @@
 
         unordered_multimap(unordered_multimap const&, allocator_type const&);
 
+#if defined(BOOST_UNORDERED_USE_MOVE)
         unordered_multimap(BOOST_RV_REF(unordered_multimap) other)
             : table_(other.table_, boost::unordered::detail::move_tag())
         {
         }
+#elif !defined(BOOST_NO_RVALUE_REFERENCES)
+ unordered_multimap(unordered_multimap&& other)
+ : table_(other.table_, boost::unordered::detail::move_tag())
+ {
+ }
+#endif
 
 #if !defined(BOOST_NO_RVALUE_REFERENCES)
         unordered_multimap(unordered_multimap&&, allocator_type const&);
@@ -599,6 +632,7 @@
 
         // Assign
 
+#if defined(BOOST_UNORDERED_USE_MOVE)
         unordered_multimap& operator=(
                 BOOST_COPY_ASSIGN_REF(unordered_multimap) x)
         {
@@ -611,6 +645,21 @@
             table_.move_assign(x.table_);
             return *this;
         }
+#else
+ unordered_multimap& operator=(unordered_multimap const& x)
+ {
+ table_.assign(x.table_);
+ return *this;
+ }
+
+#if !defined(BOOST_NO_RVALUE_REFERENCES)
+ unordered_multimap& operator=(unordered_multimap&& x)
+ {
+ table_.move_assign(x.table_);
+ return *this;
+ }
+#endif
+#endif
 
 #if !defined(BOOST_NO_0X_HDR_INITIALIZER_LIST)
         unordered_multimap& operator=(std::initializer_list<value_type>);
@@ -669,17 +718,17 @@
 
         // emplace
 
-#if defined(BOOST_UNORDERED_STD_FORWARD_MOVE)
+#if defined(BOOST_UNORDERED_VARIADIC_MOVE)
         template <class... Args>
         iterator emplace(Args&&... args)
         {
- return table_.emplace(std::forward<Args>(args)...);
+ return table_.emplace(boost::forward<Args>(args)...);
         }
 
         template <class... Args>
         iterator emplace_hint(const_iterator, Args&&... args)
         {
- return table_.emplace(std::forward<Args>(args)...);
+ return table_.emplace(boost::forward<Args>(args)...);
         }
 #else
 

Modified: branches/quickbook-dev/boost/unordered/unordered_set.hpp
==============================================================================
--- branches/quickbook-dev/boost/unordered/unordered_set.hpp (original)
+++ branches/quickbook-dev/boost/unordered/unordered_set.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -41,7 +41,9 @@
     template <class T, class H, class P, class A>
     class unordered_set
     {
+#if defined(BOOST_UNORDERED_USE_MOVE)
         BOOST_COPYABLE_AND_MOVABLE(unordered_set)
+#endif
     public:
 
         typedef T key_type;
@@ -113,10 +115,17 @@
 
         unordered_set(unordered_set const&, allocator_type const&);
 
+#if defined(BOOST_UNORDERED_USE_MOVE)
         unordered_set(BOOST_RV_REF(unordered_set) other)
             : table_(other.table_, boost::unordered::detail::move_tag())
         {
         }
+#elif !defined(BOOST_NO_RVALUE_REFERENCES)
+ unordered_set(unordered_set&& other)
+ : table_(other.table_, boost::unordered::detail::move_tag())
+ {
+ }
+#endif
 
 #if !defined(BOOST_NO_RVALUE_REFERENCES)
         unordered_set(unordered_set&&, allocator_type const&);
@@ -137,6 +146,7 @@
 
         // Assign
 
+#if defined(BOOST_UNORDERED_USE_MOVE)
         unordered_set& operator=(BOOST_COPY_ASSIGN_REF(unordered_set) x)
         {
             table_.assign(x.table_);
@@ -148,6 +158,21 @@
             table_.move_assign(x.table_);
             return *this;
         }
+#else
+ unordered_set& operator=(unordered_set const& x)
+ {
+ table_.assign(x.table_);
+ return *this;
+ }
+
+#if !defined(BOOST_NO_RVALUE_REFERENCES)
+ unordered_set& operator=(unordered_set&& x)
+ {
+ table_.move_assign(x.table_);
+ return *this;
+ }
+#endif
+#endif
 
 #if !defined(BOOST_NO_0X_HDR_INITIALIZER_LIST)
         unordered_set& operator=(std::initializer_list<value_type>);
@@ -206,17 +231,17 @@
 
         // emplace
 
-#if defined(BOOST_UNORDERED_STD_FORWARD_MOVE)
+#if defined(BOOST_UNORDERED_VARIADIC_MOVE)
         template <class... Args>
         std::pair<iterator, bool> emplace(Args&&... args)
         {
- return table_.emplace(std::forward<Args>(args)...);
+ return table_.emplace(boost::forward<Args>(args)...);
         }
 
         template <class... Args>
         iterator emplace_hint(const_iterator, Args&&... args)
         {
- return table_.emplace(std::forward<Args>(args)...).first;
+ return table_.emplace(boost::forward<Args>(args)...).first;
         }
 #else
 
@@ -486,7 +511,9 @@
     template <class T, class H, class P, class A>
     class unordered_multiset
     {
+#if defined(BOOST_UNORDERED_USE_MOVE)
         BOOST_COPYABLE_AND_MOVABLE(unordered_multiset)
+#endif
     public:
 
         typedef T key_type;
@@ -558,10 +585,17 @@
 
         unordered_multiset(unordered_multiset const&, allocator_type const&);
 
+#if defined(BOOST_UNORDERED_USE_MOVE)
         unordered_multiset(BOOST_RV_REF(unordered_multiset) other)
             : table_(other.table_, boost::unordered::detail::move_tag())
         {
         }
+#elif !defined(BOOST_NO_RVALUE_REFERENCES)
+ unordered_multiset(unordered_multiset&& other)
+ : table_(other.table_, boost::unordered::detail::move_tag())
+ {
+ }
+#endif
 
 #if !defined(BOOST_NO_RVALUE_REFERENCES)
         unordered_multiset(unordered_multiset&&, allocator_type const&);
@@ -582,6 +616,7 @@
 
         // Assign
 
+#if defined(BOOST_UNORDERED_USE_MOVE)
         unordered_multiset& operator=(
                 BOOST_COPY_ASSIGN_REF(unordered_multiset) x)
         {
@@ -594,6 +629,21 @@
             table_.move_assign(x.table_);
             return *this;
         }
+#else
+ unordered_multiset& operator=(unordered_multiset const& x)
+ {
+ table_.assign(x.table_);
+ return *this;
+ }
+
+#if !defined(BOOST_NO_RVALUE_REFERENCES)
+ unordered_multiset& operator=(unordered_multiset&& x)
+ {
+ table_.move_assign(x.table_);
+ return *this;
+ }
+#endif
+#endif
 
 #if !defined(BOOST_NO_0X_HDR_INITIALIZER_LIST)
         unordered_multiset& operator=(std::initializer_list<value_type>);
@@ -652,17 +702,17 @@
 
         // emplace
 
-#if defined(BOOST_UNORDERED_STD_FORWARD_MOVE)
+#if defined(BOOST_UNORDERED_VARIADIC_MOVE)
         template <class... Args>
         iterator emplace(Args&&... args)
         {
- return table_.emplace(std::forward<Args>(args)...);
+ return table_.emplace(boost::forward<Args>(args)...);
         }
 
         template <class... Args>
         iterator emplace_hint(const_iterator, Args&&... args)
         {
- return table_.emplace(std::forward<Args>(args)...);
+ return table_.emplace(boost::forward<Args>(args)...);
         }
 #else
 

Modified: branches/quickbook-dev/boost/uuid/sha1.hpp
==============================================================================
--- branches/quickbook-dev/boost/uuid/sha1.hpp (original)
+++ branches/quickbook-dev/boost/uuid/sha1.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -10,13 +10,13 @@
 // 25 Feb 2008 - moved to namespace boost::uuids::detail
 
 // This is a byte oriented implementation
-// Note: this implementation does not handle message longer than
-// 2^32 bytes.
 
 #ifndef BOOST_UUID_SHA1_H
 #define BOOST_UUID_SHA1_H
 
 #include <boost/static_assert.hpp>
+#include <stdexcept>
+#include <boost/throw_exception.hpp>
 #include <cstddef>
 
 #ifdef BOOST_NO_STDC_NAMESPACE
@@ -54,6 +54,7 @@
 
 private:
     void process_block();
+ void process_byte_impl(unsigned char byte);
 
 private:
     unsigned int h_[5];
@@ -61,7 +62,8 @@
     unsigned char block_[64];
 
     std::size_t block_byte_index_;
- std::size_t byte_count_;
+ std::size_t bit_count_low;
+ std::size_t bit_count_high;
 };
 
 inline sha1::sha1()
@@ -78,13 +80,27 @@
     h_[4] = 0xC3D2E1F0;
 
     block_byte_index_ = 0;
- byte_count_ = 0;
+ bit_count_low = 0;
+ bit_count_high = 0;
 }
 
 inline void sha1::process_byte(unsigned char byte)
 {
+ process_byte_impl(byte);
+
+ bit_count_low += 8;
+ if (bit_count_low == 0) {
+ ++bit_count_high;
+ if (bit_count_high == 0) {
+ BOOST_THROW_EXCEPTION(std::runtime_error("sha1 too many bytes"));
+ }
+ }
+}
+
+inline void sha1::process_byte_impl(unsigned char byte)
+{
     block_[block_byte_index_++] = byte;
- ++byte_count_;
+
     if (block_byte_index_ == 64) {
         block_byte_index_ = 0;
         process_block();
@@ -160,10 +176,8 @@
 
 inline void sha1::get_digest(digest_type digest)
 {
- std::size_t bit_count = byte_count_*8;
-
     // append the bit '1' to the message
- process_byte(0x80);
+ process_byte_impl(0x80);
 
     // append k bits '0', where k is the minimum number >= 0
     // such that the resulting message length is congruent to 56 (mod 64)
@@ -171,29 +185,29 @@
     if (block_byte_index_ > 56) {
         // finish this block
         while (block_byte_index_ != 0) {
- process_byte(0);
+ process_byte_impl(0);
         }
 
         // one more block
         while (block_byte_index_ < 56) {
- process_byte(0);
+ process_byte_impl(0);
         }
     } else {
         while (block_byte_index_ < 56) {
- process_byte(0);
+ process_byte_impl(0);
         }
     }
 
     // append length of message (before pre-processing)
     // as a 64-bit big-endian integer
- process_byte(0);
- process_byte(0);
- process_byte(0);
- process_byte(0);
- process_byte( static_cast<unsigned char>((bit_count>>24) & 0xFF));
- process_byte( static_cast<unsigned char>((bit_count>>16) & 0xFF));
- process_byte( static_cast<unsigned char>((bit_count>>8 ) & 0xFF));
- process_byte( static_cast<unsigned char>((bit_count) & 0xFF));
+ process_byte_impl( static_cast<unsigned char>((bit_count_high>>24) & 0xFF) );
+ process_byte_impl( static_cast<unsigned char>((bit_count_high>>16) & 0xFF) );
+ process_byte_impl( static_cast<unsigned char>((bit_count_high>>8 ) & 0xFF) );
+ process_byte_impl( static_cast<unsigned char>((bit_count_high) & 0xFF) );
+ process_byte_impl( static_cast<unsigned char>((bit_count_low>>24) & 0xFF) );
+ process_byte_impl( static_cast<unsigned char>((bit_count_low>>16) & 0xFF) );
+ process_byte_impl( static_cast<unsigned char>((bit_count_low>>8 ) & 0xFF) );
+ process_byte_impl( static_cast<unsigned char>((bit_count_low) & 0xFF) );
 
     // get final digest
     digest[0] = h_[0];

Modified: branches/quickbook-dev/libs/algorithm/string/doc/quickref.xml
==============================================================================
--- branches/quickbook-dev/libs/algorithm/string/doc/quickref.xml (original)
+++ branches/quickbook-dev/libs/algorithm/string/doc/quickref.xml 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -737,6 +737,20 @@
                             <functionname>is_xdigit()</functionname>
                         </entry>
                     </row>
+ <row>
+ <entry>is_any_of</entry>
+ <entry>Recognize any of a sequence of characters</entry>
+ <entry>
+ <functionname>is_any_of()</functionname>
+ </entry>
+ </row>
+ <row>
+ <entry>is_from_range</entry>
+ <entry>Recognize characters inside a min..max range</entry>
+ <entry>
+ <functionname>is_from_range()</functionname>
+ </entry>
+ </row>
                 </tbody>
             </tgroup>
         </table>

Modified: branches/quickbook-dev/libs/asio/doc/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/asio/doc/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/asio.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/asio.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/asio.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -7,7 +7,7 @@
 
 [library Boost.Asio
     [quickbook 1.4]
- [copyright 2003 - 2011 Christopher M. Kohlhoff]
+ [copyright 2003 - 2012 Christopher M. Kohlhoff]
     [purpose Networking library]
     [license
         Distributed under the Boost Software License, Version 1.0.

Modified: branches/quickbook-dev/libs/asio/doc/doxy2qbk.pl
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/doxy2qbk.pl (original)
+++ branches/quickbook-dev/libs/asio/doc/doxy2qbk.pl 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 #!/usr/bin/perl -w
 
-# Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/examples.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/examples.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/examples.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/history.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/history.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/history.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -7,6 +7,29 @@
 
 [section:history Revision History]
 
+[heading Asio 1.8.0 / Boost 1.49]
+
+* Added a new class template `basic_waitable_timer` based around the C++11 clock
+ type requirements. It may be used with the clocks from the C++11 `<chrono>`
+ library facility or, if those are not available, Boost.Chrono. The typedefs
+ `high_resolution_timer`, `steady_timer` and `system_timer` may be used to
+ create timer objects for the standard clock types.
+* Added a new `windows::object_handle` class for performing waits on Windows
+ kernel objects. Thanks go to Boris Schaeling for contributing substantially
+ to the development of this feature.
+* On Linux, `connect()` can return EAGAIN in certain circumstances. Remapped
+ this to another error so that it doesn't look like a non-blocking operation
+ ([@https://svn.boost.org/trac/boost/ticket/6048 #6048]).
+* Fixed a compile error on NetBSD
+ ([@https://svn.boost.org/trac/boost/ticket/6098 #6098]).
+* Fixed deadlock on Mac OS X
+ ([@https://svn.boost.org/trac/boost/ticket/6275 #6275]).
+* Fixed a regression in `buffered_write_stream`
+ ([@https://svn.boost.org/trac/boost/ticket/6310 #6310]).
+* Fixed a non-paged pool "leak" on Windows when an `io_service` is repeatedly
+ run without anything to do
+ ([@https://svn.boost.org/trac/boost/ticket/6321 #6321]).
+
 [heading Asio 1.6.1 / Boost 1.48]
 
 * Implemented various performance improvements, including:

Modified: branches/quickbook-dev/libs/asio/doc/index.xml
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/index.xml (original)
+++ branches/quickbook-dev/libs/asio/doc/index.xml 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 <!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN" "../../../tools/boostbook/dtd/boostbook.dtd">
 
 <!--
- Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 
   Distributed under the Boost Software License, Version 1.0. (See accompanying
   file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/noncopyable_dox.txt
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/noncopyable_dox.txt (original)
+++ branches/quickbook-dev/libs/asio/doc/noncopyable_dox.txt 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/overview.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/overview.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/overview.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -33,6 +33,7 @@
 * [link boost_asio.overview.windows Windows-Specific Functionality]
   * [link boost_asio.overview.windows.stream_handle Stream-Oriented HANDLEs]
   * [link boost_asio.overview.windows.random_access_handle Random-Access HANDLEs]
+ * [link boost_asio.overview.windows.object_handle Object HANDLEs]
 * [link boost_asio.overview.ssl SSL]
 * [link boost_asio.overview.cpp2011 C++ 2011 Support]
   * [link boost_asio.overview.cpp2011.move_objects Movable I/O Objects]
@@ -41,6 +42,7 @@
   * [link boost_asio.overview.cpp2011.array Array Container]
   * [link boost_asio.overview.cpp2011.atomic Atomics]
   * [link boost_asio.overview.cpp2011.shared_ptr Shared Pointers]
+ * [link boost_asio.overview.cpp2011.chrono Chrono]
 * [link boost_asio.overview.implementation Platform-Specific Implementation Notes]
 
 [include overview/rationale.qbk]

Modified: branches/quickbook-dev/libs/asio/doc/overview/allocation.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/overview/allocation.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/overview/allocation.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/overview/async.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/overview/async.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/overview/async.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/overview/basics.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/overview/basics.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/overview/basics.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/overview/bsd_sockets.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/overview/bsd_sockets.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/overview/bsd_sockets.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/overview/buffers.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/overview/buffers.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/overview/buffers.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/overview/cpp2011.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/overview/cpp2011.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/overview/cpp2011.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -20,6 +20,8 @@
 
 [link boost_asio.overview.cpp2011.shared_ptr Shared Pointers]
 
+[link boost_asio.overview.cpp2011.chrono Chrono]
+
 
 [section:move_objects Movable I/O Objects]
 
@@ -191,4 +193,27 @@
 
 [endsect]
 
+[section:chrono Chrono]
+
+Boost.Asio provides timers based on the `std::chrono` facilities via the [link
+boost_asio.reference.basic_waitable_timer basic_waitable_timer] class template.
+The typedefs [link boost_asio.reference.system_timer system_timer], [link
+boost_asio.reference.steady_timer steady_timer] and [link
+boost_asio.reference.high_resolution_timer high_resolution_timer] utilise the
+standard clocks `system_clock`, `steady_clock` and `high_resolution_clock`
+respectively.
+
+Support for the `std::chrono` facilities is automatically enabled for [^g++]
+4.6 and later, when the [^-std=c++0x] or [^-std=gnu++0x] compiler options are
+used. (Note that, for [^g++], the draft-standard `monotonic_clock` is used in
+place of `steady_clock`.) Support may be disabled by defining
+`BOOST_ASIO_DISABLE_STD_CHRONO`, or explicitly enabled for other compilers by
+defining `BOOST_ASIO_HAS_STD_CHRONO`.
+
+When standard `chrono` is unavailable, Boost.Asio will otherwise use the Boost.Chrono
+library. The [link boost_asio.reference.basic_waitable_timer basic_waitable_timer]
+class template may be used with either.
+
+[endsect]
+
 [endsect]

Modified: branches/quickbook-dev/libs/asio/doc/overview/handler_tracking.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/overview/handler_tracking.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/overview/handler_tracking.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/overview/implementation.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/overview/implementation.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/overview/implementation.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/overview/iostreams.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/overview/iostreams.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/overview/iostreams.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/overview/line_based.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/overview/line_based.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/overview/line_based.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/overview/posix.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/overview/posix.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/overview/posix.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/overview/protocols.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/overview/protocols.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/overview/protocols.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/overview/rationale.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/overview/rationale.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/overview/rationale.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/overview/reactor.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/overview/reactor.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/overview/reactor.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/overview/serial_ports.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/overview/serial_ports.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/overview/serial_ports.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/overview/signals.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/overview/signals.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/overview/signals.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/overview/ssl.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/overview/ssl.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/overview/ssl.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/overview/strands.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/overview/strands.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/overview/strands.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/overview/streams.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/overview/streams.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/overview/streams.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/overview/threads.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/overview/threads.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/overview/threads.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/overview/timers.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/overview/timers.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/overview/timers.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/overview/windows.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/overview/windows.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/overview/windows.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -11,6 +11,8 @@
 
 [link boost_asio.overview.windows.random_access_handle Random-Access HANDLEs]
 
+[link boost_asio.overview.windows.object_handle Object HANDLEs]
+
 [section:stream_handle Stream-Oriented HANDLEs]
 
 Boost.Asio contains classes to allow asynchronous read and write operations to be
@@ -88,4 +90,43 @@
 
 [endsect]
 
+[/-----------------------------------------------------------------------------]
+
+[section:object_handle Object HANDLEs]
+
+Boost.Asio provides Windows-specific classes that permit asynchronous wait operations
+to be performed on HANDLEs to kernel objects of the following types:
+
+* Change notification
+* Console input
+* Event
+* Memory resource notification
+* Process
+* Semaphore
+* Thread
+* Waitable timer
+
+For example, to perform asynchronous operations on an event, the following
+object may be created:
+
+ HANDLE handle = ::CreateEvent(...);
+ windows::object_handle file(my_io_service, handle);
+
+The `wait()` and `async_wait()` member functions may then be used to wait until
+the kernel object is signalled.
+
+[heading See Also]
+
+[link boost_asio.reference.windows__object_handle windows::object_handle],
+[link boost_asio.reference.windows__basic_object_handle windows::basic_object_handle],
+[link boost_asio.reference.windows__object_handle_service windows::object_handle_service].
+
+[heading Notes]
+
+Windows object `HANDLE`s are only available at compile time when targeting
+Windows. Programs may test for the macro `BOOST_ASIO_HAS_WINDOWS_OBJECT_HANDLE` to
+determine whether they are supported.
+
+[endsect]
+
 [endsect]

Modified: branches/quickbook-dev/libs/asio/doc/quickref.xml
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/quickref.xml (original)
+++ branches/quickbook-dev/libs/asio/doc/quickref.xml 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 <!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN" "../../../tools/boostbook/dtd/boostbook.dtd">
 
 <!--
- Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 
   Distributed under the Boost Software License, Version 1.0. (See accompanying
   file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -282,21 +282,29 @@
           <bridgehead renderas="sect3">Classes</bridgehead>
           <simplelist type="vert" columns="1">
             <member><link linkend="boost_asio.reference.deadline_timer">deadline_timer</link></member>
+ <member><link linkend="boost_asio.reference.high_resolution_timer">high_resolution_timer</link></member>
+ <member><link linkend="boost_asio.reference.steady_timer">steady_timer</link></member>
+ <member><link linkend="boost_asio.reference.system_timer">system_timer</link></member>
           </simplelist>
           <bridgehead renderas="sect3">Class Templates</bridgehead>
           <simplelist type="vert" columns="1">
             <member><link linkend="boost_asio.reference.basic_deadline_timer">basic_deadline_timer</link></member>
+ <member><link linkend="boost_asio.reference.basic_waitable_timer">basic_waitable_timer</link></member>
             <member><link linkend="boost_asio.reference.time_traits_lt__ptime__gt_">time_traits</link></member>
+ <member><link linkend="boost_asio.reference.wait_traits">wait_traits</link></member>
           </simplelist>
           <bridgehead renderas="sect3">Services</bridgehead>
           <simplelist type="vert" columns="1">
             <member><link linkend="boost_asio.reference.deadline_timer_service">deadline_timer_service</link></member>
+ <member><link linkend="boost_asio.reference.waitable_timer_service">waitable_timer_service</link></member>
           </simplelist>
           <bridgehead renderas="sect3">Type Requirements</bridgehead>
           <simplelist type="vert" columns="1">
             <member><link linkend="boost_asio.reference.TimerService">TimerService</link></member>
             <member><link linkend="boost_asio.reference.TimeTraits">TimeTraits</link></member>
+ <member><link linkend="boost_asio.reference.WaitableTimerService">WaitableTimerService</link></member>
             <member><link linkend="boost_asio.reference.WaitHandler">WaitHandler</link></member>
+ <member><link linkend="boost_asio.reference.WaitTraits">WaitTraits</link></member>
           </simplelist>
         </entry>
         <entry valign="top">
@@ -425,6 +433,7 @@
         <entry valign="top" namest="c" nameend="d">
           <bridgehead renderas="sect3">Classes</bridgehead>
           <simplelist type="vert" columns="1">
+ <member><link linkend="boost_asio.reference.windows__object_handle">windows::object_handle</link></member>
             <member><link linkend="boost_asio.reference.windows__overlapped_ptr">windows::overlapped_ptr</link></member>
             <member><link linkend="boost_asio.reference.windows__random_access_handle">windows::random_access_handle</link></member>
             <member><link linkend="boost_asio.reference.windows__stream_handle">windows::stream_handle</link></member>
@@ -432,17 +441,20 @@
           <bridgehead renderas="sect3">Class Templates</bridgehead>
           <simplelist type="vert" columns="1">
             <member><link linkend="boost_asio.reference.windows__basic_handle">windows::basic_handle</link></member>
+ <member><link linkend="boost_asio.reference.windows__basic_object_handle">windows::basic_object_handle</link></member>
             <member><link linkend="boost_asio.reference.windows__basic_random_access_handle">windows::basic_random_access_handle</link></member>
             <member><link linkend="boost_asio.reference.windows__basic_stream_handle">windows::basic_stream_handle</link></member>
           </simplelist>
           <bridgehead renderas="sect3">Services</bridgehead>
           <simplelist type="vert" columns="1">
+ <member><link linkend="boost_asio.reference.windows__object_handle_service">windows::object_handle_service</link></member>
             <member><link linkend="boost_asio.reference.windows__random_access_handle_service">windows::random_access_handle_service</link></member>
             <member><link linkend="boost_asio.reference.windows__stream_handle_service">windows::stream_handle_service</link></member>
           </simplelist>
           <bridgehead renderas="sect3">Type Requirements</bridgehead>
           <simplelist type="vert" columns="1">
             <member><link linkend="boost_asio.reference.HandleService">HandleService</link></member>
+ <member><link linkend="boost_asio.reference.ObjectHandleService">ObjectHandleService</link></member>
             <member><link linkend="boost_asio.reference.RandomAccessHandleService">RandomAccessHandleService</link></member>
             <member><link linkend="boost_asio.reference.StreamHandleService">StreamHandleService</link></member>
           </simplelist>

Modified: branches/quickbook-dev/libs/asio/doc/reference.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/reference.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/reference.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -33,6 +33,7 @@
 [include requirements/IoControlCommand.qbk]
 [include requirements/IoObjectService.qbk]
 [include requirements/MutableBufferSequence.qbk]
+[include requirements/ObjectHandleService.qbk]
 [include requirements/Protocol.qbk]
 [include requirements/RandomAccessHandleService.qbk]
 [include requirements/RawSocketService.qbk]
@@ -58,7 +59,9 @@
 [include requirements/SyncWriteStream.qbk]
 [include requirements/TimeTraits.qbk]
 [include requirements/TimerService.qbk]
+[include requirements/WaitableTimerService.qbk]
 [include requirements/WaitHandler.qbk]
+[include requirements/WaitTraits.qbk]
 [include requirements/WriteHandler.qbk]
 
 
@@ -42945,400 +42948,386 @@
 
 [endsect]
 
-[section:buffer buffer]
-
-[indexterm1 buffer]
-The `boost::asio::buffer` function is used to create a buffer object to represent raw memory, an array of POD elements, a vector of POD elements, or a std::string.
-
-
- mutable_buffers_1 ``[link boost_asio.reference.buffer.overload1 buffer]``(
- const mutable_buffer & b);
- `` [''''&raquo;''' [link boost_asio.reference.buffer.overload1 more...]]``
-
- mutable_buffers_1 ``[link boost_asio.reference.buffer.overload2 buffer]``(
- const mutable_buffer & b,
- std::size_t max_size_in_bytes);
- `` [''''&raquo;''' [link boost_asio.reference.buffer.overload2 more...]]``
-
- const_buffers_1 ``[link boost_asio.reference.buffer.overload3 buffer]``(
- const const_buffer & b);
- `` [''''&raquo;''' [link boost_asio.reference.buffer.overload3 more...]]``
-
- const_buffers_1 ``[link boost_asio.reference.buffer.overload4 buffer]``(
- const const_buffer & b,
- std::size_t max_size_in_bytes);
- `` [''''&raquo;''' [link boost_asio.reference.buffer.overload4 more...]]``
-
- mutable_buffers_1 ``[link boost_asio.reference.buffer.overload5 buffer]``(
- void * data,
- std::size_t size_in_bytes);
- `` [''''&raquo;''' [link boost_asio.reference.buffer.overload5 more...]]``
+[section:basic_waitable_timer basic_waitable_timer]
 
- const_buffers_1 ``[link boost_asio.reference.buffer.overload6 buffer]``(
- const void * data,
- std::size_t size_in_bytes);
- `` [''''&raquo;''' [link boost_asio.reference.buffer.overload6 more...]]``
 
- template<
- typename PodType,
- std::size_t N>
- mutable_buffers_1 ``[link boost_asio.reference.buffer.overload7 buffer]``(
- PodType (&data)[N]);
- `` [''''&raquo;''' [link boost_asio.reference.buffer.overload7 more...]]``
+Provides waitable timer functionality.
 
- template<
- typename PodType,
- std::size_t N>
- mutable_buffers_1 ``[link boost_asio.reference.buffer.overload8 buffer]``(
- PodType (&data)[N],
- std::size_t max_size_in_bytes);
- `` [''''&raquo;''' [link boost_asio.reference.buffer.overload8 more...]]``
 
   template<
- typename PodType,
- std::size_t N>
- const_buffers_1 ``[link boost_asio.reference.buffer.overload9 buffer]``(
- const PodType (&data)[N]);
- `` [''''&raquo;''' [link boost_asio.reference.buffer.overload9 more...]]``
+ typename Clock,
+ typename ``[link boost_asio.reference.WaitTraits WaitTraits]`` = boost::asio::wait_traits<Clock>,
+ typename ``[link boost_asio.reference.WaitableTimerService WaitableTimerService]`` = waitable_timer_service<Clock, WaitTraits>>
+ class basic_waitable_timer :
+ public basic_io_object< WaitableTimerService >
 
- template<
- typename PodType,
- std::size_t N>
- const_buffers_1 ``[link boost_asio.reference.buffer.overload10 buffer]``(
- const PodType (&data)[N],
- std::size_t max_size_in_bytes);
- `` [''''&raquo;''' [link boost_asio.reference.buffer.overload10 more...]]``
 
- template<
- typename PodType,
- std::size_t N>
- mutable_buffers_1 ``[link boost_asio.reference.buffer.overload11 buffer]``(
- boost::array< PodType, N > & data);
- `` [''''&raquo;''' [link boost_asio.reference.buffer.overload11 more...]]``
+[heading Types]
+[table
+ [[Name][Description]]
 
- template<
- typename PodType,
- std::size_t N>
- mutable_buffers_1 ``[link boost_asio.reference.buffer.overload12 buffer]``(
- boost::array< PodType, N > & data,
- std::size_t max_size_in_bytes);
- `` [''''&raquo;''' [link boost_asio.reference.buffer.overload12 more...]]``
+ [
 
- template<
- typename PodType,
- std::size_t N>
- const_buffers_1 ``[link boost_asio.reference.buffer.overload13 buffer]``(
- boost::array< const PodType, N > & data);
- `` [''''&raquo;''' [link boost_asio.reference.buffer.overload13 more...]]``
+ [[link boost_asio.reference.basic_waitable_timer.clock_type [*clock_type]]]
+ [The clock type. ]
+
+ ]
 
- template<
- typename PodType,
- std::size_t N>
- const_buffers_1 ``[link boost_asio.reference.buffer.overload14 buffer]``(
- boost::array< const PodType, N > & data,
- std::size_t max_size_in_bytes);
- `` [''''&raquo;''' [link boost_asio.reference.buffer.overload14 more...]]``
+ [
 
- template<
- typename PodType,
- std::size_t N>
- const_buffers_1 ``[link boost_asio.reference.buffer.overload15 buffer]``(
- const boost::array< PodType, N > & data);
- `` [''''&raquo;''' [link boost_asio.reference.buffer.overload15 more...]]``
+ [[link boost_asio.reference.basic_waitable_timer.duration [*duration]]]
+ [The duration type of the clock. ]
+
+ ]
 
- template<
- typename PodType,
- std::size_t N>
- const_buffers_1 ``[link boost_asio.reference.buffer.overload16 buffer]``(
- const boost::array< PodType, N > & data,
- std::size_t max_size_in_bytes);
- `` [''''&raquo;''' [link boost_asio.reference.buffer.overload16 more...]]``
+ [
 
- template<
- typename PodType,
- std::size_t N>
- mutable_buffers_1 ``[link boost_asio.reference.buffer.overload17 buffer]``(
- std::array< PodType, N > & data);
- `` [''''&raquo;''' [link boost_asio.reference.buffer.overload17 more...]]``
+ [[link boost_asio.reference.basic_waitable_timer.implementation_type [*implementation_type]]]
+ [The underlying implementation type of I/O object. ]
+
+ ]
 
- template<
- typename PodType,
- std::size_t N>
- mutable_buffers_1 ``[link boost_asio.reference.buffer.overload18 buffer]``(
- std::array< PodType, N > & data,
- std::size_t max_size_in_bytes);
- `` [''''&raquo;''' [link boost_asio.reference.buffer.overload18 more...]]``
+ [
 
- template<
- typename PodType,
- std::size_t N>
- const_buffers_1 ``[link boost_asio.reference.buffer.overload19 buffer]``(
- std::array< const PodType, N > & data);
- `` [''''&raquo;''' [link boost_asio.reference.buffer.overload19 more...]]``
+ [[link boost_asio.reference.basic_waitable_timer.service_type [*service_type]]]
+ [The type of the service that will be used to provide I/O operations. ]
+
+ ]
 
- template<
- typename PodType,
- std::size_t N>
- const_buffers_1 ``[link boost_asio.reference.buffer.overload20 buffer]``(
- std::array< const PodType, N > & data,
- std::size_t max_size_in_bytes);
- `` [''''&raquo;''' [link boost_asio.reference.buffer.overload20 more...]]``
+ [
 
- template<
- typename PodType,
- std::size_t N>
- const_buffers_1 ``[link boost_asio.reference.buffer.overload21 buffer]``(
- const std::array< PodType, N > & data);
- `` [''''&raquo;''' [link boost_asio.reference.buffer.overload21 more...]]``
+ [[link boost_asio.reference.basic_waitable_timer.time_point [*time_point]]]
+ [The time point type of the clock. ]
+
+ ]
 
- template<
- typename PodType,
- std::size_t N>
- const_buffers_1 ``[link boost_asio.reference.buffer.overload22 buffer]``(
- const std::array< PodType, N > & data,
- std::size_t max_size_in_bytes);
- `` [''''&raquo;''' [link boost_asio.reference.buffer.overload22 more...]]``
+ [
 
- template<
- typename PodType,
- typename Allocator>
- mutable_buffers_1 ``[link boost_asio.reference.buffer.overload23 buffer]``(
- std::vector< PodType, Allocator > & data);
- `` [''''&raquo;''' [link boost_asio.reference.buffer.overload23 more...]]``
+ [[link boost_asio.reference.basic_waitable_timer.traits_type [*traits_type]]]
+ [The wait traits type. ]
+
+ ]
 
- template<
- typename PodType,
- typename Allocator>
- mutable_buffers_1 ``[link boost_asio.reference.buffer.overload24 buffer]``(
- std::vector< PodType, Allocator > & data,
- std::size_t max_size_in_bytes);
- `` [''''&raquo;''' [link boost_asio.reference.buffer.overload24 more...]]``
+]
 
- template<
- typename PodType,
- typename Allocator>
- const_buffers_1 ``[link boost_asio.reference.buffer.overload25 buffer]``(
- const std::vector< PodType, Allocator > & data);
- `` [''''&raquo;''' [link boost_asio.reference.buffer.overload25 more...]]``
+[heading Member Functions]
+[table
+ [[Name][Description]]
 
- template<
- typename PodType,
- typename Allocator>
- const_buffers_1 ``[link boost_asio.reference.buffer.overload26 buffer]``(
- const std::vector< PodType, Allocator > & data,
- std::size_t max_size_in_bytes);
- `` [''''&raquo;''' [link boost_asio.reference.buffer.overload26 more...]]``
+ [
+ [[link boost_asio.reference.basic_waitable_timer.async_wait [*async_wait]]]
+ [Start an asynchronous wait on the timer. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_waitable_timer.basic_waitable_timer [*basic_waitable_timer]]]
+ [Constructor.
 
- template<
- typename Elem,
- typename Traits,
- typename Allocator>
- const_buffers_1 ``[link boost_asio.reference.buffer.overload27 buffer]``(
- const std::basic_string< Elem, Traits, Allocator > & data);
- `` [''''&raquo;''' [link boost_asio.reference.buffer.overload27 more...]]``
+ Constructor to set a particular expiry time as an absolute time.
 
- template<
- typename Elem,
- typename Traits,
- typename Allocator>
- const_buffers_1 ``[link boost_asio.reference.buffer.overload28 buffer]``(
- const std::basic_string< Elem, Traits, Allocator > & data,
- std::size_t max_size_in_bytes);
- `` [''''&raquo;''' [link boost_asio.reference.buffer.overload28 more...]]``
+ Constructor to set a particular expiry time relative to now. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_waitable_timer.cancel [*cancel]]]
+ [Cancel any asynchronous operations that are waiting on the timer. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_waitable_timer.cancel_one [*cancel_one]]]
+ [Cancels one asynchronous operation that is waiting on the timer. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_waitable_timer.expires_at [*expires_at]]]
+ [Get the timer's expiry time as an absolute time.
 
-A buffer object represents a contiguous region of memory as a 2-tuple consisting of a pointer and size in bytes. A tuple of the form `{void*, size_t}` specifies a mutable (modifiable) region of memory. Similarly, a tuple of the form `{const void*, size_t}` specifies a const (non-modifiable) region of memory. These two forms correspond to the classes [link boost_asio.reference.mutable_buffer `mutable_buffer`] and [link boost_asio.reference.const_buffer `const_buffer`], respectively. To mirror C++'s conversion rules, a [link boost_asio.reference.mutable_buffer `mutable_buffer`] is implicitly convertible to a [link boost_asio.reference.const_buffer `const_buffer`], and the opposite conversion is not permitted.
+ Set the timer's expiry time as an absolute time. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_waitable_timer.expires_from_now [*expires_from_now]]]
+ [Get the timer's expiry time relative to now.
 
-The simplest use case involves reading or writing a single buffer of a specified size:
+ Set the timer's expiry time relative to now. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_waitable_timer.get_io_service [*get_io_service]]]
+ [Get the io_service associated with the object. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_waitable_timer.wait [*wait]]]
+ [Perform a blocking wait on the timer. ]
+ ]
+
+]
 
+[heading Protected Member Functions]
+[table
+ [[Name][Description]]
 
+ [
+ [[link boost_asio.reference.basic_waitable_timer.get_implementation [*get_implementation]]]
+ [Get the underlying implementation of the I/O object. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_waitable_timer.get_service [*get_service]]]
+ [Get the service associated with the I/O object. ]
+ ]
+
+]
 
- sock.send(boost::asio::buffer(data, size));
+[heading Protected Data Members]
+[table
+ [[Name][Description]]
 
+ [
+ [[link boost_asio.reference.basic_waitable_timer.implementation [*implementation]]]
+ [(Deprecated: Use get_implementation().) The underlying implementation of the I/O object. ]
+ ]
 
+ [
+ [[link boost_asio.reference.basic_waitable_timer.service [*service]]]
+ [(Deprecated: Use get_service().) The service associated with the I/O object. ]
+ ]
 
+]
 
-In the above example, the return value of `boost::asio::buffer` meets the requirements of the ConstBufferSequence concept so that it may be directly passed to the socket's write function. A buffer created for modifiable memory also meets the requirements of the MutableBufferSequence concept.
+The [link boost_asio.reference.basic_waitable_timer `basic_waitable_timer`] class template provides the ability to perform a blocking or asynchronous wait for a timer to expire.
 
-An individual buffer may be created from a builtin array, std::vector, std::array or boost::array of POD elements. This helps prevent buffer overruns by automatically determining the size of the buffer:
+A waitable timer is always in one of two states: "expired" or "not expired". If the `wait()` or `async_wait()` function is called on an expired timer, the wait operation will complete immediately.
 
+Most applications will use the boost::asio::waitable\_timer typedef.
 
 
- char d1[128];
- size_t bytes_transferred = sock.receive(boost::asio::buffer(d1));
+[heading Remarks]
+
+This waitable timer functionality is for use with the C++11 standard library's `<chrono>` facility, or with the Boost.Chrono library.
 
- std::vector<char> d2(128);
- bytes_transferred = sock.receive(boost::asio::buffer(d2));
 
- std::array<char, 128> d3;
- bytes_transferred = sock.receive(boost::asio::buffer(d3));
+[heading Thread Safety]
+
+[*Distinct] [*objects:] Safe.
 
- boost::array<char, 128> d4;
- bytes_transferred = sock.receive(boost::asio::buffer(d4));
+[*Shared] [*objects:] Unsafe.
 
 
+[heading Examples]
+
+Performing a blocking wait:
 
+ // Construct a timer without setting an expiry time.
+ boost::asio::waitable_timer timer(io_service);
 
-In all three cases above, the buffers created are exactly 128 bytes long. Note that a vector is [*never] automatically resized when creating or using a buffer. The buffer size is determined using the vector's `size()` member function, and not its capacity.
+ // Set an expiry time relative to now.
+ timer.expires_from_now(boost::posix_time::seconds(5));
 
+ // Wait for the timer to expire.
+ timer.wait();
 
-[heading Accessing Buffer Contents]
-
 
 
-The contents of a buffer may be accessed using the [link boost_asio.reference.buffer_size `buffer_size`] and [link boost_asio.reference.buffer_cast `buffer_cast`] functions:
 
 
+Performing an asynchronous wait:
 
- boost::asio::mutable_buffer b1 = ...;
- std::size_t s1 = boost::asio::buffer_size(b1);
- unsigned char* p1 = boost::asio::buffer_cast<unsigned char*>(b1);
+ void handler(const boost::system::error_code& error)
+ {
+ if (!error)
+ {
+ // Timer expired.
+ }
+ }
 
- boost::asio::const_buffer b2 = ...;
- std::size_t s2 = boost::asio::buffer_size(b2);
- const void* p2 = boost::asio::buffer_cast<const void*>(b2);
+ ...
 
+ // Construct a timer with an absolute expiry time.
+ boost::asio::waitable_timer timer(io_service,
+ boost::posix_time::time_from_string("2005-12-07 23:59:59.000"));
 
+ // Start an asynchronous wait.
+ timer.async_wait(handler);
 
 
-The `boost::asio::buffer_cast` function permits violations of type safety, so uses of it in application code should be carefully considered.
 
-For convenience, the [link boost_asio.reference.buffer_size `buffer_size`] function also works on buffer sequences (that is, types meeting the ConstBufferSequence or MutableBufferSequence type requirements). In this case, the function returns the total size of all buffers in the sequence.
 
 
-[heading Buffer Copying]
+[heading Changing an active waitable_timer's expiry time]
   
 
 
-The [link boost_asio.reference.buffer_copy `buffer_copy`] function may be used to copy raw bytes between individual buffers and buffer sequences.
+Changing the expiry time of a timer while there are pending asynchronous waits causes those wait operations to be cancelled. To ensure that the action associated with the timer is performed only once, use something like this: used:
 
-In particular, when used with the [link boost_asio.reference.buffer_size `buffer_size`] , the [link boost_asio.reference.buffer_copy `buffer_copy`] function can be used to linearise a sequence of buffers. For example:
 
 
+ void on_some_event()
+ {
+ if (my_timer.expires_from_now(seconds(5)) > 0)
+ {
+ // We managed to cancel the timer. Start new asynchronous wait.
+ my_timer.async_wait(on_timeout);
+ }
+ else
+ {
+ // Too late, timer has already expired!
+ }
+ }
 
- vector<const_buffer> buffers = ...;
+ void on_timeout(const boost::system::error_code& e)
+ {
+ if (e != boost::asio::error::operation_aborted)
+ {
+ // Timer was not cancelled, take necessary action.
+ }
+ }
 
- vector<unsigned char> data(boost::asio::buffer_size(buffers));
- boost::asio::buffer_copy(boost::asio::buffer(data), buffers);
 
 
 
 
+* The `boost::asio::basic_waitable_timer::expires_from_now()` function cancels any pending asynchronous waits, and returns the number of asynchronous waits that were cancelled. If it returns 0 then you were too late and the wait handler has already been executed, or will soon be executed. If it returns 1 then the wait handler was successfully cancelled.
 
-[heading Buffer Invalidation]
-
 
+* If a wait handler is cancelled, the boost::system::error\_code passed to it contains the value `boost::asio::error::operation_aborted`.
 
-A buffer object does not have any ownership of the memory it refers to. It is the responsibility of the application to ensure the memory region remains valid until it is no longer required for an I/O operation. When the memory is no longer available, the buffer is said to have been invalidated.
 
-For the `boost::asio::buffer` overloads that accept an argument of type std::vector, the buffer objects returned are invalidated by any vector operation that also invalidates all references, pointers and iterators referring to the elements in the sequence (C++ Std, 23.2.4)
 
-For the `boost::asio::buffer` overloads that accept an argument of type std::basic\_string, the buffer objects returned are invalidated according to the rules defined for invalidation of references, pointers and iterators referring to elements of the sequence (C++ Std, 21.3).
+[heading Requirements]
 
+[*Header: ][^boost/asio/basic_waitable_timer.hpp]
 
-[heading Buffer Arithmetic]
-
+[*Convenience header: ][^boost/asio.hpp]
 
 
-Buffer objects may be manipulated using simple arithmetic in a safe way which helps prevent buffer overruns. Consider an array initialised as follows:
+[section:async_wait basic_waitable_timer::async_wait]
 
+[indexterm2 async_wait..basic_waitable_timer]
+Start an asynchronous wait on the timer.
 
 
- boost::array<char, 6> a = { 'a', 'b', 'c', 'd', 'e' };
+ template<
+ typename ``[link boost_asio.reference.WaitHandler WaitHandler]``>
+ void async_wait(
+ WaitHandler handler);
 
 
+This function may be used to initiate an asynchronous wait against the timer. It always returns immediately.
 
+For each call to `async_wait()`, the supplied handler will be called exactly once. The handler will be called when:
 
-A buffer object `b1` created using:
 
+* The timer has expired.
 
 
- b1 = boost::asio::buffer(a);
+* The timer was cancelled, in which case the handler is passed the error code `boost::asio::error::operation_aborted`.
 
 
+[heading Parameters]
+
 
+[variablelist
+
+[[handler][The handler to be called when the timer expires. Copies will be made of the handler as required. The function signature of the handler must be:
+``
+ void handler(
+ const boost::system::error_code& error // Result of operation.
+ );
+``
+Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using `boost::asio::io_service::post()`. ]]
 
-represents the entire array, `{ 'a', 'b', 'c', 'd', 'e' }`. An optional second argument to the `boost::asio::buffer` function may be used to limit the size, in bytes, of the buffer:
+]
 
 
 
- b2 = boost::asio::buffer(a, 3);
 
+[endsect]
 
 
+[section:basic_waitable_timer basic_waitable_timer::basic_waitable_timer]
 
-such that `b2` represents the data `{ 'a', 'b', 'c' }`. Even if the size argument exceeds the actual size of the array, the size of the buffer object created will be limited to the array size.
+[indexterm2 basic_waitable_timer..basic_waitable_timer]
+Constructor.
 
-An offset may be applied to an existing buffer to create a new one:
 
+ explicit ``[link boost_asio.reference.basic_waitable_timer.basic_waitable_timer.overload1 basic_waitable_timer]``(
+ boost::asio::io_service & io_service);
+ `` [''''&raquo;''' [link boost_asio.reference.basic_waitable_timer.basic_waitable_timer.overload1 more...]]``
 
 
- b3 = b1 + 2;
+Constructor to set a particular expiry time as an absolute time.
 
 
+ ``[link boost_asio.reference.basic_waitable_timer.basic_waitable_timer.overload2 basic_waitable_timer]``(
+ boost::asio::io_service & io_service,
+ const time_point & expiry_time);
+ `` [''''&raquo;''' [link boost_asio.reference.basic_waitable_timer.basic_waitable_timer.overload2 more...]]``
 
 
-where `b3` will set to represent `{ 'c', 'd', 'e' }`. If the offset exceeds the size of the existing buffer, the newly created buffer will be empty.
+Constructor to set a particular expiry time relative to now.
 
-Both an offset and size may be specified to create a buffer that corresponds to a specific range of bytes within an existing buffer:
 
+ ``[link boost_asio.reference.basic_waitable_timer.basic_waitable_timer.overload3 basic_waitable_timer]``(
+ boost::asio::io_service & io_service,
+ const duration & expiry_time);
+ `` [''''&raquo;''' [link boost_asio.reference.basic_waitable_timer.basic_waitable_timer.overload3 more...]]``
 
 
- b4 = boost::asio::buffer(b1 + 1, 3);
+[section:overload1 basic_waitable_timer::basic_waitable_timer (1 of 3 overloads)]
 
 
+Constructor.
 
 
-so that `b4` will refer to the bytes `{ 'b', 'c', 'd' }`.
+ basic_waitable_timer(
+ boost::asio::io_service & io_service);
 
 
-[heading Buffers and Scatter-Gather I/O]
-
+This constructor creates a timer without setting an expiry time. The `expires_at()` or `expires_from_now()` functions must be called to set an expiry time before the timer can be waited on.
 
 
-To read or write using multiple buffers (i.e. scatter-gather I/O), multiple buffer objects may be assigned into a container that supports the MutableBufferSequence (for read) or ConstBufferSequence (for write) concepts:
+[heading Parameters]
+
 
+[variablelist
+
+[[io_service][The [link boost_asio.reference.io_service `io_service`] object that the timer will use to dispatch handlers for any asynchronous operations performed on the timer. ]]
 
+]
 
- char d1[128];
- std::vector<char> d2(128);
- boost::array<char, 128> d3;
 
- boost::array<mutable_buffer, 3> bufs1 = {
- boost::asio::buffer(d1),
- boost::asio::buffer(d2),
- boost::asio::buffer(d3) };
- bytes_transferred = sock.receive(bufs1);
 
- std::vector<const_buffer> bufs2;
- bufs2.push_back(boost::asio::buffer(d1));
- bufs2.push_back(boost::asio::buffer(d2));
- bufs2.push_back(boost::asio::buffer(d3));
- bytes_transferred = sock.send(bufs2);
 
+[endsect]
 
 
 
-[heading Requirements]
+[section:overload2 basic_waitable_timer::basic_waitable_timer (2 of 3 overloads)]
 
-[*Header: ][^boost/asio/buffer.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
+Constructor to set a particular expiry time as an absolute time.
 
 
-[section:overload1 buffer (1 of 28 overloads)]
+ basic_waitable_timer(
+ boost::asio::io_service & io_service,
+ const time_point & expiry_time);
 
 
-Create a new modifiable buffer from an existing buffer.
+This constructor creates a timer and sets the expiry time.
 
 
- mutable_buffers_1 buffer(
- const mutable_buffer & b);
+[heading Parameters]
+
 
+[variablelist
+
+[[io_service][The [link boost_asio.reference.io_service `io_service`] object that the timer will use to dispatch handlers for any asynchronous operations performed on the timer.]]
 
+[[expiry_time][The expiry time to be used for the timer, expressed as an absolute time. ]]
 
-[heading Return Value]
-
-`mutable_buffers_1(b)`.
+]
 
 
 
@@ -43347,28 +43336,30 @@
 
 
 
-[section:overload2 buffer (2 of 28 overloads)]
+[section:overload3 basic_waitable_timer::basic_waitable_timer (3 of 3 overloads)]
 
 
-Create a new modifiable buffer from an existing buffer.
+Constructor to set a particular expiry time relative to now.
 
 
- mutable_buffers_1 buffer(
- const mutable_buffer & b,
- std::size_t max_size_in_bytes);
+ basic_waitable_timer(
+ boost::asio::io_service & io_service,
+ const duration & expiry_time);
 
 
+This constructor creates a timer and sets the expiry time.
 
-[heading Return Value]
-
-A [link boost_asio.reference.mutable_buffers_1 `mutable_buffers_1`] value equivalent to:
 
- mutable_buffers_1(
- buffer_cast<void*>(b),
- min(buffer_size(b), max_size_in_bytes));
+[heading Parameters]
+
 
+[variablelist
+
+[[io_service][The [link boost_asio.reference.io_service `io_service`] object that the timer will use to dispatch handlers for any asynchronous operations performed on the timer.]]
 
+[[expiry_time][The expiry time to be used for the timer, relative to now. ]]
 
+]
 
 
 
@@ -43376,520 +43367,575 @@
 [endsect]
 
 
+[endsect]
 
-[section:overload3 buffer (3 of 28 overloads)]
+[section:cancel basic_waitable_timer::cancel]
 
+[indexterm2 cancel..basic_waitable_timer]
+Cancel any asynchronous operations that are waiting on the timer.
 
-Create a new non-modifiable buffer from an existing buffer.
 
+ std::size_t ``[link boost_asio.reference.basic_waitable_timer.cancel.overload1 cancel]``();
+ `` [''''&raquo;''' [link boost_asio.reference.basic_waitable_timer.cancel.overload1 more...]]``
 
- const_buffers_1 buffer(
- const const_buffer & b);
+ std::size_t ``[link boost_asio.reference.basic_waitable_timer.cancel.overload2 cancel]``(
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.basic_waitable_timer.cancel.overload2 more...]]``
 
 
+[section:overload1 basic_waitable_timer::cancel (1 of 2 overloads)]
 
-[heading Return Value]
-
-`const_buffers_1(b)`.
 
+Cancel any asynchronous operations that are waiting on the timer.
 
 
+ std::size_t cancel();
 
-[endsect]
 
+This function forces the completion of any pending asynchronous wait operations against the timer. The handler for each cancelled operation will be invoked with the `boost::asio::error::operation_aborted` error code.
 
+Cancelling the timer does not change the expiry time.
 
-[section:overload4 buffer (4 of 28 overloads)]
 
+[heading Return Value]
+
+The number of asynchronous operations that were cancelled.
 
-Create a new non-modifiable buffer from an existing buffer.
 
+[heading Exceptions]
+
 
- const_buffers_1 buffer(
- const const_buffer & b,
- std::size_t max_size_in_bytes);
+[variablelist
+
+[[boost::system::system_error][Thrown on failure.]]
 
+]
 
 
-[heading Return Value]
+[heading Remarks]
       
-A [link boost_asio.reference.const_buffers_1 `const_buffers_1`] value equivalent to:
-
- const_buffers_1(
- buffer_cast<const void*>(b),
- min(buffer_size(b), max_size_in_bytes));
+If the timer has already expired when `cancel()` is called, then the handlers for asynchronous wait operations will:
 
 
+* have already been invoked; or
 
 
+* have been queued for invocation in the near future.
 
+These handlers can no longer be cancelled, and therefore are passed an error code that indicates the successful completion of the wait operation.
 
 
 [endsect]
 
 
 
-[section:overload5 buffer (5 of 28 overloads)]
+[section:overload2 basic_waitable_timer::cancel (2 of 2 overloads)]
 
 
-Create a new modifiable buffer that represents the given memory range.
+Cancel any asynchronous operations that are waiting on the timer.
 
 
- mutable_buffers_1 buffer(
- void * data,
- std::size_t size_in_bytes);
+ std::size_t cancel(
+ boost::system::error_code & ec);
 
 
+This function forces the completion of any pending asynchronous wait operations against the timer. The handler for each cancelled operation will be invoked with the `boost::asio::error::operation_aborted` error code.
 
-[heading Return Value]
-
-`mutable_buffers_1(data, size_in_bytes)`.
-
+Cancelling the timer does not change the expiry time.
 
 
+[heading Parameters]
+
 
-[endsect]
+[variablelist
+
+[[ec][Set to indicate what error occurred, if any.]]
 
+]
 
 
-[section:overload6 buffer (6 of 28 overloads)]
+[heading Return Value]
+
+The number of asynchronous operations that were cancelled.
 
 
-Create a new non-modifiable buffer that represents the given memory range.
+[heading Remarks]
+
+If the timer has already expired when `cancel()` is called, then the handlers for asynchronous wait operations will:
 
 
- const_buffers_1 buffer(
- const void * data,
- std::size_t size_in_bytes);
+* have already been invoked; or
 
 
+* have been queued for invocation in the near future.
 
-[heading Return Value]
-
-`const_buffers_1(data, size_in_bytes)`.
+These handlers can no longer be cancelled, and therefore are passed an error code that indicates the successful completion of the wait operation.
 
 
+[endsect]
 
 
 [endsect]
 
+[section:cancel_one basic_waitable_timer::cancel_one]
 
-
-[section:overload7 buffer (7 of 28 overloads)]
+[indexterm2 cancel_one..basic_waitable_timer]
+Cancels one asynchronous operation that is waiting on the timer.
 
 
-Create a new modifiable buffer that represents the given POD array.
+ std::size_t ``[link boost_asio.reference.basic_waitable_timer.cancel_one.overload1 cancel_one]``();
+ `` [''''&raquo;''' [link boost_asio.reference.basic_waitable_timer.cancel_one.overload1 more...]]``
 
+ std::size_t ``[link boost_asio.reference.basic_waitable_timer.cancel_one.overload2 cancel_one]``(
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.basic_waitable_timer.cancel_one.overload2 more...]]``
 
- template<
- typename PodType,
- std::size_t N>
- mutable_buffers_1 buffer(
- PodType (&data)[N]);
 
+[section:overload1 basic_waitable_timer::cancel_one (1 of 2 overloads)]
 
 
-[heading Return Value]
-
-A [link boost_asio.reference.mutable_buffers_1 `mutable_buffers_1`] value equivalent to:
+Cancels one asynchronous operation that is waiting on the timer.
 
- mutable_buffers_1(
- static_cast<void*>(data),
- N * sizeof(PodType));
 
+ std::size_t cancel_one();
 
 
+This function forces the completion of one pending asynchronous wait operation against the timer. Handlers are cancelled in FIFO order. The handler for the cancelled operation will be invoked with the `boost::asio::error::operation_aborted` error code.
 
+Cancelling the timer does not change the expiry time.
 
 
+[heading Return Value]
+
+The number of asynchronous operations that were cancelled. That is, either 0 or 1.
 
-[endsect]
 
+[heading Exceptions]
+
 
+[variablelist
+
+[[boost::system::system_error][Thrown on failure.]]
 
-[section:overload8 buffer (8 of 28 overloads)]
+]
 
 
-Create a new modifiable buffer that represents the given POD array.
+[heading Remarks]
+
+If the timer has already expired when `cancel_one()` is called, then the handlers for asynchronous wait operations will:
 
 
- template<
- typename PodType,
- std::size_t N>
- mutable_buffers_1 buffer(
- PodType (&data)[N],
- std::size_t max_size_in_bytes);
+* have already been invoked; or
 
 
+* have been queued for invocation in the near future.
 
-[heading Return Value]
-
-A [link boost_asio.reference.mutable_buffers_1 `mutable_buffers_1`] value equivalent to:
+These handlers can no longer be cancelled, and therefore are passed an error code that indicates the successful completion of the wait operation.
 
- mutable_buffers_1(
- static_cast<void*>(data),
- min(N * sizeof(PodType), max_size_in_bytes));
 
+[endsect]
 
 
 
+[section:overload2 basic_waitable_timer::cancel_one (2 of 2 overloads)]
 
 
+Cancels one asynchronous operation that is waiting on the timer.
 
-[endsect]
 
+ std::size_t cancel_one(
+ boost::system::error_code & ec);
 
 
-[section:overload9 buffer (9 of 28 overloads)]
+This function forces the completion of one pending asynchronous wait operation against the timer. Handlers are cancelled in FIFO order. The handler for the cancelled operation will be invoked with the `boost::asio::error::operation_aborted` error code.
 
+Cancelling the timer does not change the expiry time.
 
-Create a new non-modifiable buffer that represents the given POD array.
 
+[heading Parameters]
+
 
- template<
- typename PodType,
- std::size_t N>
- const_buffers_1 buffer(
- const PodType (&data)[N]);
+[variablelist
+
+[[ec][Set to indicate what error occurred, if any.]]
 
+]
 
 
 [heading Return Value]
       
-A [link boost_asio.reference.const_buffers_1 `const_buffers_1`] value equivalent to:
-
- const_buffers_1(
- static_cast<const void*>(data),
- N * sizeof(PodType));
+The number of asynchronous operations that were cancelled. That is, either 0 or 1.
 
 
+[heading Remarks]
+
+If the timer has already expired when `cancel_one()` is called, then the handlers for asynchronous wait operations will:
 
 
+* have already been invoked; or
 
 
+* have been queued for invocation in the near future.
 
-[endsect]
+These handlers can no longer be cancelled, and therefore are passed an error code that indicates the successful completion of the wait operation.
 
 
+[endsect]
 
-[section:overload10 buffer (10 of 28 overloads)]
 
+[endsect]
 
-Create a new non-modifiable buffer that represents the given POD array.
 
+[section:clock_type basic_waitable_timer::clock_type]
 
- template<
- typename PodType,
- std::size_t N>
- const_buffers_1 buffer(
- const PodType (&data)[N],
- std::size_t max_size_in_bytes);
+[indexterm2 clock_type..basic_waitable_timer]
+The clock type.
 
 
+ typedef Clock clock_type;
 
-[heading Return Value]
-
-A [link boost_asio.reference.const_buffers_1 `const_buffers_1`] value equivalent to:
 
- const_buffers_1(
- static_cast<const void*>(data),
- min(N * sizeof(PodType), max_size_in_bytes));
 
+[heading Requirements]
 
+[*Header: ][^boost/asio/basic_waitable_timer.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
 
+[endsect]
 
 
-[endsect]
 
+[section:duration basic_waitable_timer::duration]
 
+[indexterm2 duration..basic_waitable_timer]
+The duration type of the clock.
 
-[section:overload11 buffer (11 of 28 overloads)]
 
+ typedef clock_type::duration duration;
 
-Create a new modifiable buffer that represents the given POD array.
 
 
- template<
- typename PodType,
- std::size_t N>
- mutable_buffers_1 buffer(
- boost::array< PodType, N > & data);
+[heading Requirements]
 
+[*Header: ][^boost/asio/basic_waitable_timer.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
-[heading Return Value]
-
-A [link boost_asio.reference.mutable_buffers_1 `mutable_buffers_1`] value equivalent to:
 
- mutable_buffers_1(
- data.data(),
- data.size() * sizeof(PodType));
+[endsect]
 
 
+[section:expires_at basic_waitable_timer::expires_at]
 
+[indexterm2 expires_at..basic_waitable_timer]
+Get the timer's expiry time as an absolute time.
 
 
+ time_point ``[link boost_asio.reference.basic_waitable_timer.expires_at.overload1 expires_at]``() const;
+ `` [''''&raquo;''' [link boost_asio.reference.basic_waitable_timer.expires_at.overload1 more...]]``
 
 
-[endsect]
+Set the timer's expiry time as an absolute time.
 
 
+ std::size_t ``[link boost_asio.reference.basic_waitable_timer.expires_at.overload2 expires_at]``(
+ const time_point & expiry_time);
+ `` [''''&raquo;''' [link boost_asio.reference.basic_waitable_timer.expires_at.overload2 more...]]``
 
-[section:overload12 buffer (12 of 28 overloads)]
+ std::size_t ``[link boost_asio.reference.basic_waitable_timer.expires_at.overload3 expires_at]``(
+ const time_point & expiry_time,
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.basic_waitable_timer.expires_at.overload3 more...]]``
 
 
-Create a new modifiable buffer that represents the given POD array.
+[section:overload1 basic_waitable_timer::expires_at (1 of 3 overloads)]
 
 
- template<
- typename PodType,
- std::size_t N>
- mutable_buffers_1 buffer(
- boost::array< PodType, N > & data,
- std::size_t max_size_in_bytes);
+Get the timer's expiry time as an absolute time.
 
 
+ time_point expires_at() const;
 
-[heading Return Value]
-
-A [link boost_asio.reference.mutable_buffers_1 `mutable_buffers_1`] value equivalent to:
 
- mutable_buffers_1(
- data.data(),
- min(data.size() * sizeof(PodType), max_size_in_bytes));
+This function may be used to obtain the timer's current expiry time. Whether the timer has expired or not does not affect this value.
 
 
+[endsect]
 
 
 
+[section:overload2 basic_waitable_timer::expires_at (2 of 3 overloads)]
 
 
-[endsect]
+Set the timer's expiry time as an absolute time.
 
 
+ std::size_t expires_at(
+ const time_point & expiry_time);
 
-[section:overload13 buffer (13 of 28 overloads)]
 
+This function sets the expiry time. Any pending asynchronous wait operations will be cancelled. The handler for each cancelled operation will be invoked with the `boost::asio::error::operation_aborted` error code.
 
-Create a new non-modifiable buffer that represents the given POD array.
 
+[heading Parameters]
+
 
- template<
- typename PodType,
- std::size_t N>
- const_buffers_1 buffer(
- boost::array< const PodType, N > & data);
+[variablelist
+
+[[expiry_time][The expiry time to be used for the timer.]]
 
+]
 
 
 [heading Return Value]
       
-A [link boost_asio.reference.const_buffers_1 `const_buffers_1`] value equivalent to:
+The number of asynchronous operations that were cancelled.
 
- const_buffers_1(
- data.data(),
- data.size() * sizeof(PodType));
+
+[heading Exceptions]
+
+
+[variablelist
+
+[[boost::system::system_error][Thrown on failure.]]
+
+]
+
+
+[heading Remarks]
+
+If the timer has already expired when `expires_at()` is called, then the handlers for asynchronous wait operations will:
 
 
+* have already been invoked; or
 
 
+* have been queued for invocation in the near future.
 
+These handlers can no longer be cancelled, and therefore are passed an error code that indicates the successful completion of the wait operation.
 
 
 [endsect]
 
 
 
-[section:overload14 buffer (14 of 28 overloads)]
+[section:overload3 basic_waitable_timer::expires_at (3 of 3 overloads)]
 
 
-Create a new non-modifiable buffer that represents the given POD array.
+Set the timer's expiry time as an absolute time.
 
 
- template<
- typename PodType,
- std::size_t N>
- const_buffers_1 buffer(
- boost::array< const PodType, N > & data,
- std::size_t max_size_in_bytes);
+ std::size_t expires_at(
+ const time_point & expiry_time,
+ boost::system::error_code & ec);
+
+
+This function sets the expiry time. Any pending asynchronous wait operations will be cancelled. The handler for each cancelled operation will be invoked with the `boost::asio::error::operation_aborted` error code.
+
+
+[heading Parameters]
+
+
+[variablelist
+
+[[expiry_time][The expiry time to be used for the timer.]]
+
+[[ec][Set to indicate what error occurred, if any.]]
 
+]
 
 
 [heading Return Value]
       
-A [link boost_asio.reference.const_buffers_1 `const_buffers_1`] value equivalent to:
+The number of asynchronous operations that were cancelled.
 
- const_buffers_1(
- data.data(),
- min(data.size() * sizeof(PodType), max_size_in_bytes));
+
+[heading Remarks]
+
+If the timer has already expired when `expires_at()` is called, then the handlers for asynchronous wait operations will:
 
 
+* have already been invoked; or
 
 
+* have been queued for invocation in the near future.
 
+These handlers can no longer be cancelled, and therefore are passed an error code that indicates the successful completion of the wait operation.
 
 
 [endsect]
 
 
+[endsect]
 
-[section:overload15 buffer (15 of 28 overloads)]
+[section:expires_from_now basic_waitable_timer::expires_from_now]
 
+[indexterm2 expires_from_now..basic_waitable_timer]
+Get the timer's expiry time relative to now.
 
-Create a new non-modifiable buffer that represents the given POD array.
 
+ duration ``[link boost_asio.reference.basic_waitable_timer.expires_from_now.overload1 expires_from_now]``() const;
+ `` [''''&raquo;''' [link boost_asio.reference.basic_waitable_timer.expires_from_now.overload1 more...]]``
 
- template<
- typename PodType,
- std::size_t N>
- const_buffers_1 buffer(
- const boost::array< PodType, N > & data);
 
+Set the timer's expiry time relative to now.
 
 
-[heading Return Value]
-
-A [link boost_asio.reference.const_buffers_1 `const_buffers_1`] value equivalent to:
+ std::size_t ``[link boost_asio.reference.basic_waitable_timer.expires_from_now.overload2 expires_from_now]``(
+ const duration & expiry_time);
+ `` [''''&raquo;''' [link boost_asio.reference.basic_waitable_timer.expires_from_now.overload2 more...]]``
 
- const_buffers_1(
- data.data(),
- data.size() * sizeof(PodType));
+ std::size_t ``[link boost_asio.reference.basic_waitable_timer.expires_from_now.overload3 expires_from_now]``(
+ const duration & expiry_time,
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.basic_waitable_timer.expires_from_now.overload3 more...]]``
 
 
+[section:overload1 basic_waitable_timer::expires_from_now (1 of 3 overloads)]
 
 
+Get the timer's expiry time relative to now.
 
 
+ duration expires_from_now() const;
 
-[endsect]
 
+This function may be used to obtain the timer's current expiry time. Whether the timer has expired or not does not affect this value.
 
 
-[section:overload16 buffer (16 of 28 overloads)]
+[endsect]
 
 
-Create a new non-modifiable buffer that represents the given POD array.
 
+[section:overload2 basic_waitable_timer::expires_from_now (2 of 3 overloads)]
 
- template<
- typename PodType,
- std::size_t N>
- const_buffers_1 buffer(
- const boost::array< PodType, N > & data,
- std::size_t max_size_in_bytes);
 
+Set the timer's expiry time relative to now.
 
 
-[heading Return Value]
-
-A [link boost_asio.reference.const_buffers_1 `const_buffers_1`] value equivalent to:
+ std::size_t expires_from_now(
+ const duration & expiry_time);
 
- const_buffers_1(
- data.data(),
- min(data.size() * sizeof(PodType), max_size_in_bytes));
 
+This function sets the expiry time. Any pending asynchronous wait operations will be cancelled. The handler for each cancelled operation will be invoked with the `boost::asio::error::operation_aborted` error code.
 
 
+[heading Parameters]
+
 
+[variablelist
+
+[[expiry_time][The expiry time to be used for the timer.]]
 
+]
 
 
-[endsect]
+[heading Return Value]
+
+The number of asynchronous operations that were cancelled.
 
 
+[heading Exceptions]
+
 
-[section:overload17 buffer (17 of 28 overloads)]
+[variablelist
+
+[[boost::system::system_error][Thrown on failure.]]
 
+]
 
-Create a new modifiable buffer that represents the given POD array.
 
+[heading Remarks]
+
+If the timer has already expired when `expires_from_now()` is called, then the handlers for asynchronous wait operations will:
 
- template<
- typename PodType,
- std::size_t N>
- mutable_buffers_1 buffer(
- std::array< PodType, N > & data);
 
+* have already been invoked; or
 
 
-[heading Return Value]
-
-A [link boost_asio.reference.mutable_buffers_1 `mutable_buffers_1`] value equivalent to:
+* have been queued for invocation in the near future.
+
+These handlers can no longer be cancelled, and therefore are passed an error code that indicates the successful completion of the wait operation.
 
- mutable_buffers_1(
- data.data(),
- data.size() * sizeof(PodType));
 
+[endsect]
 
 
 
+[section:overload3 basic_waitable_timer::expires_from_now (3 of 3 overloads)]
 
 
+Set the timer's expiry time relative to now.
 
-[endsect]
 
+ std::size_t expires_from_now(
+ const duration & expiry_time,
+ boost::system::error_code & ec);
 
 
-[section:overload18 buffer (18 of 28 overloads)]
+This function sets the expiry time. Any pending asynchronous wait operations will be cancelled. The handler for each cancelled operation will be invoked with the `boost::asio::error::operation_aborted` error code.
 
 
-Create a new modifiable buffer that represents the given POD array.
+[heading Parameters]
+
 
+[variablelist
+
+[[expiry_time][The expiry time to be used for the timer.]]
 
- template<
- typename PodType,
- std::size_t N>
- mutable_buffers_1 buffer(
- std::array< PodType, N > & data,
- std::size_t max_size_in_bytes);
+[[ec][Set to indicate what error occurred, if any.]]
 
+]
 
 
 [heading Return Value]
       
-A [link boost_asio.reference.mutable_buffers_1 `mutable_buffers_1`] value equivalent to:
+The number of asynchronous operations that were cancelled.
 
- mutable_buffers_1(
- data.data(),
- min(data.size() * sizeof(PodType), max_size_in_bytes));
+
+[heading Remarks]
+
+If the timer has already expired when `expires_from_now()` is called, then the handlers for asynchronous wait operations will:
 
 
+* have already been invoked; or
 
 
+* have been queued for invocation in the near future.
 
+These handlers can no longer be cancelled, and therefore are passed an error code that indicates the successful completion of the wait operation.
 
 
 [endsect]
 
 
+[endsect]
 
-[section:overload19 buffer (19 of 28 overloads)]
+[section:get_implementation basic_waitable_timer::get_implementation]
 
+[indexterm2 get_implementation..basic_waitable_timer]
+Get the underlying implementation of the I/O object.
 
-Create a new non-modifiable buffer that represents the given POD array.
 
+ implementation_type & ``[link boost_asio.reference.basic_waitable_timer.get_implementation.overload1 get_implementation]``();
+ `` [''''&raquo;''' [link boost_asio.reference.basic_waitable_timer.get_implementation.overload1 more...]]``
 
- template<
- typename PodType,
- std::size_t N>
- const_buffers_1 buffer(
- std::array< const PodType, N > & data);
+ const implementation_type & ``[link boost_asio.reference.basic_waitable_timer.get_implementation.overload2 get_implementation]``() const;
+ `` [''''&raquo;''' [link boost_asio.reference.basic_waitable_timer.get_implementation.overload2 more...]]``
 
 
+[section:overload1 basic_waitable_timer::get_implementation (1 of 2 overloads)]
 
-[heading Return Value]
-
-A [link boost_asio.reference.const_buffers_1 `const_buffers_1`] value equivalent to:
 
- const_buffers_1(
- data.data(),
- data.size() * sizeof(PodType));
+['Inherited from basic_io_object.]
 
 
+Get the underlying implementation of the I/O object.
 
 
+ implementation_type & get_implementation();
 
 
 
@@ -43897,171 +43943,156 @@
 
 
 
-[section:overload20 buffer (20 of 28 overloads)]
+[section:overload2 basic_waitable_timer::get_implementation (2 of 2 overloads)]
 
 
-Create a new non-modifiable buffer that represents the given POD array.
+['Inherited from basic_io_object.]
 
 
- template<
- typename PodType,
- std::size_t N>
- const_buffers_1 buffer(
- std::array< const PodType, N > & data,
- std::size_t max_size_in_bytes);
+Get the underlying implementation of the I/O object.
 
 
+ const implementation_type & get_implementation() const;
 
-[heading Return Value]
-
-A [link boost_asio.reference.const_buffers_1 `const_buffers_1`] value equivalent to:
 
- const_buffers_1(
- data.data(),
- min(data.size() * sizeof(PodType), max_size_in_bytes));
 
+[endsect]
 
 
+[endsect]
 
 
+[section:get_io_service basic_waitable_timer::get_io_service]
 
 
-[endsect]
+['Inherited from basic_io_object.]
 
+[indexterm2 get_io_service..basic_waitable_timer]
+Get the [link boost_asio.reference.io_service `io_service`] associated with the object.
 
 
-[section:overload21 buffer (21 of 28 overloads)]
+ boost::asio::io_service & get_io_service();
 
 
-Create a new non-modifiable buffer that represents the given POD array.
+This function may be used to obtain the [link boost_asio.reference.io_service `io_service`] object that the I/O object uses to dispatch handlers for asynchronous operations.
 
 
- template<
- typename PodType,
- std::size_t N>
- const_buffers_1 buffer(
- const std::array< PodType, N > & data);
+[heading Return Value]
+
+A reference to the [link boost_asio.reference.io_service `io_service`] object that the I/O object will use to dispatch handlers. Ownership is not transferred to the caller.
 
 
 
-[heading Return Value]
-
-A [link boost_asio.reference.const_buffers_1 `const_buffers_1`] value equivalent to:
 
- const_buffers_1(
- data.data(),
- data.size() * sizeof(PodType));
+[endsect]
 
 
+[section:get_service basic_waitable_timer::get_service]
 
+[indexterm2 get_service..basic_waitable_timer]
+Get the service associated with the I/O object.
 
 
+ service_type & ``[link boost_asio.reference.basic_waitable_timer.get_service.overload1 get_service]``();
+ `` [''''&raquo;''' [link boost_asio.reference.basic_waitable_timer.get_service.overload1 more...]]``
 
+ const service_type & ``[link boost_asio.reference.basic_waitable_timer.get_service.overload2 get_service]``() const;
+ `` [''''&raquo;''' [link boost_asio.reference.basic_waitable_timer.get_service.overload2 more...]]``
 
-[endsect]
 
+[section:overload1 basic_waitable_timer::get_service (1 of 2 overloads)]
 
 
-[section:overload22 buffer (22 of 28 overloads)]
+['Inherited from basic_io_object.]
 
 
-Create a new non-modifiable buffer that represents the given POD array.
+Get the service associated with the I/O object.
 
 
- template<
- typename PodType,
- std::size_t N>
- const_buffers_1 buffer(
- const std::array< PodType, N > & data,
- std::size_t max_size_in_bytes);
+ service_type & get_service();
 
 
 
-[heading Return Value]
-
-A [link boost_asio.reference.const_buffers_1 `const_buffers_1`] value equivalent to:
+[endsect]
 
- const_buffers_1(
- data.data(),
- min(data.size() * sizeof(PodType), max_size_in_bytes));
 
 
+[section:overload2 basic_waitable_timer::get_service (2 of 2 overloads)]
+
+
+['Inherited from basic_io_object.]
+
+
+Get the service associated with the I/O object.
 
 
+ const service_type & get_service() const;
 
 
 
 [endsect]
 
 
+[endsect]
 
-[section:overload23 buffer (23 of 28 overloads)]
 
+[section:implementation basic_waitable_timer::implementation]
 
-Create a new modifiable buffer that represents the given POD vector.
 
+['Inherited from basic_io_object.]
 
- template<
- typename PodType,
- typename Allocator>
- mutable_buffers_1 buffer(
- std::vector< PodType, Allocator > & data);
+[indexterm2 implementation..basic_waitable_timer]
+(Deprecated: Use `get_implementation()`.) The underlying implementation of the I/O object.
 
 
+ implementation_type implementation;
 
-[heading Return Value]
-
-A [link boost_asio.reference.mutable_buffers_1 `mutable_buffers_1`] value equivalent to:
 
- mutable_buffers_1(
- data.size() ? &data[0] : 0,
- data.size() * sizeof(PodType));
 
+[endsect]
 
 
 
+[section:implementation_type basic_waitable_timer::implementation_type]
 
-[heading Remarks]
-
-The buffer is invalidated by any vector operation that would also invalidate iterators.
 
+['Inherited from basic_io_object.]
 
+[indexterm2 implementation_type..basic_waitable_timer]
+The underlying implementation type of I/O object.
 
 
-[endsect]
+ typedef service_type::implementation_type implementation_type;
 
 
 
-[section:overload24 buffer (24 of 28 overloads)]
+[heading Requirements]
 
+[*Header: ][^boost/asio/basic_waitable_timer.hpp]
 
-Create a new modifiable buffer that represents the given POD vector.
+[*Convenience header: ][^boost/asio.hpp]
 
 
- template<
- typename PodType,
- typename Allocator>
- mutable_buffers_1 buffer(
- std::vector< PodType, Allocator > & data,
- std::size_t max_size_in_bytes);
+[endsect]
 
 
 
-[heading Return Value]
-
-A [link boost_asio.reference.mutable_buffers_1 `mutable_buffers_1`] value equivalent to:
+[section:service basic_waitable_timer::service]
 
- mutable_buffers_1(
- data.size() ? &data[0] : 0,
- min(data.size() * sizeof(PodType), max_size_in_bytes));
+
+['Inherited from basic_io_object.]
+
+[indexterm2 service..basic_waitable_timer]
+(Deprecated: Use `get_service()`.) The service associated with the I/O object.
 
 
+ service_type & service;
 
 
 
 [heading Remarks]
       
-The buffer is invalidated by any vector operation that would also invalidate iterators.
+Available only for services that do not support movability.
 
 
 
@@ -44070,143 +44101,134 @@
 
 
 
-[section:overload25 buffer (25 of 28 overloads)]
+[section:service_type basic_waitable_timer::service_type]
 
 
-Create a new non-modifiable buffer that represents the given POD vector.
+['Inherited from basic_io_object.]
 
+[indexterm2 service_type..basic_waitable_timer]
+The type of the service that will be used to provide I/O operations.
 
- template<
- typename PodType,
- typename Allocator>
- const_buffers_1 buffer(
- const std::vector< PodType, Allocator > & data);
 
+ typedef WaitableTimerService service_type;
 
 
-[heading Return Value]
-
-A [link boost_asio.reference.const_buffers_1 `const_buffers_1`] value equivalent to:
 
- const_buffers_1(
- data.size() ? &data[0] : 0,
- data.size() * sizeof(PodType));
+[heading Requirements]
 
+[*Header: ][^boost/asio/basic_waitable_timer.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
 
+[endsect]
 
-[heading Remarks]
-
-The buffer is invalidated by any vector operation that would also invalidate iterators.
 
 
+[section:time_point basic_waitable_timer::time_point]
 
+[indexterm2 time_point..basic_waitable_timer]
+The time point type of the clock.
 
-[endsect]
 
+ typedef clock_type::time_point time_point;
 
 
-[section:overload26 buffer (26 of 28 overloads)]
 
+[heading Requirements]
 
-Create a new non-modifiable buffer that represents the given POD vector.
+[*Header: ][^boost/asio/basic_waitable_timer.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
- template<
- typename PodType,
- typename Allocator>
- const_buffers_1 buffer(
- const std::vector< PodType, Allocator > & data,
- std::size_t max_size_in_bytes);
 
+[endsect]
 
 
-[heading Return Value]
-
-A [link boost_asio.reference.const_buffers_1 `const_buffers_1`] value equivalent to:
 
- const_buffers_1(
- data.size() ? &data[0] : 0,
- min(data.size() * sizeof(PodType), max_size_in_bytes));
+[section:traits_type basic_waitable_timer::traits_type]
 
+[indexterm2 traits_type..basic_waitable_timer]
+The wait traits type.
 
 
+ typedef WaitTraits traits_type;
 
 
-[heading Remarks]
-
-The buffer is invalidated by any vector operation that would also invalidate iterators.
 
+[heading Requirements]
+
+[*Header: ][^boost/asio/basic_waitable_timer.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
+[section:wait basic_waitable_timer::wait]
 
-[section:overload27 buffer (27 of 28 overloads)]
+[indexterm2 wait..basic_waitable_timer]
+Perform a blocking wait on the timer.
 
 
-Create a new non-modifiable buffer that represents the given string.
+ void ``[link boost_asio.reference.basic_waitable_timer.wait.overload1 wait]``();
+ `` [''''&raquo;''' [link boost_asio.reference.basic_waitable_timer.wait.overload1 more...]]``
 
+ void ``[link boost_asio.reference.basic_waitable_timer.wait.overload2 wait]``(
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.basic_waitable_timer.wait.overload2 more...]]``
 
- template<
- typename Elem,
- typename Traits,
- typename Allocator>
- const_buffers_1 buffer(
- const std::basic_string< Elem, Traits, Allocator > & data);
 
+[section:overload1 basic_waitable_timer::wait (1 of 2 overloads)]
 
 
-[heading Return Value]
-
-`const_buffers_1(data.data(), data.size() * sizeof(Elem))`.
+Perform a blocking wait on the timer.
 
 
-[heading Remarks]
-
-The buffer is invalidated by any non-const operation called on the given string object.
+ void wait();
 
 
+This function is used to wait for the timer to expire. This function blocks and does not return until the timer has expired.
 
 
-[endsect]
+[heading Exceptions]
+
 
+[variablelist
+
+[[boost::system::system_error][Thrown on failure. ]]
 
+]
 
-[section:overload28 buffer (28 of 28 overloads)]
 
 
-Create a new non-modifiable buffer that represents the given string.
 
+[endsect]
 
- template<
- typename Elem,
- typename Traits,
- typename Allocator>
- const_buffers_1 buffer(
- const std::basic_string< Elem, Traits, Allocator > & data,
- std::size_t max_size_in_bytes);
 
 
+[section:overload2 basic_waitable_timer::wait (2 of 2 overloads)]
 
-[heading Return Value]
-
-A [link boost_asio.reference.const_buffers_1 `const_buffers_1`] value equivalent to:
 
- const_buffers_1(
- data.data(),
- min(data.size() * sizeof(Elem), max_size_in_bytes));
+Perform a blocking wait on the timer.
 
 
+ void wait(
+ boost::system::error_code & ec);
 
 
+This function is used to wait for the timer to expire. This function blocks and does not return until the timer has expired.
 
-[heading Remarks]
-
-The buffer is invalidated by any non-const operation called on the given string object.
+
+[heading Parameters]
+
+
+[variablelist
+
+[[ec][Set to indicate what error occurred, if any. ]]
+
+]
 
 
 
@@ -44216,542 +44238,508 @@
 
 [endsect]
 
-[section:buffer_cast buffer_cast]
 
-[indexterm1 buffer_cast]
-The `boost::asio::buffer_cast` function is used to obtain a pointer to the underlying memory region associated with a buffer.
+[endsect]
+
+[section:buffer buffer]
+
+[indexterm1 buffer]
+The `boost::asio::buffer` function is used to create a buffer object to represent raw memory, an array of POD elements, a vector of POD elements, or a std::string.
 
       
- template<
- typename PointerToPodType>
- PointerToPodType ``[link boost_asio.reference.buffer_cast.overload1 buffer_cast]``(
+ mutable_buffers_1 ``[link boost_asio.reference.buffer.overload1 buffer]``(
       const mutable_buffer & b);
- `` [''''&raquo;''' [link boost_asio.reference.buffer_cast.overload1 more...]]``
+ `` [''''&raquo;''' [link boost_asio.reference.buffer.overload1 more...]]``
 
- template<
- typename PointerToPodType>
- PointerToPodType ``[link boost_asio.reference.buffer_cast.overload2 buffer_cast]``(
+ mutable_buffers_1 ``[link boost_asio.reference.buffer.overload2 buffer]``(
+ const mutable_buffer & b,
+ std::size_t max_size_in_bytes);
+ `` [''''&raquo;''' [link boost_asio.reference.buffer.overload2 more...]]``
+
+ const_buffers_1 ``[link boost_asio.reference.buffer.overload3 buffer]``(
       const const_buffer & b);
- `` [''''&raquo;''' [link boost_asio.reference.buffer_cast.overload2 more...]]``
+ `` [''''&raquo;''' [link boost_asio.reference.buffer.overload3 more...]]``
 
+ const_buffers_1 ``[link boost_asio.reference.buffer.overload4 buffer]``(
+ const const_buffer & b,
+ std::size_t max_size_in_bytes);
+ `` [''''&raquo;''' [link boost_asio.reference.buffer.overload4 more...]]``
 
-[heading Examples:]
-
+ mutable_buffers_1 ``[link boost_asio.reference.buffer.overload5 buffer]``(
+ void * data,
+ std::size_t size_in_bytes);
+ `` [''''&raquo;''' [link boost_asio.reference.buffer.overload5 more...]]``
 
+ const_buffers_1 ``[link boost_asio.reference.buffer.overload6 buffer]``(
+ const void * data,
+ std::size_t size_in_bytes);
+ `` [''''&raquo;''' [link boost_asio.reference.buffer.overload6 more...]]``
 
-To access the memory of a non-modifiable buffer, use:
+ template<
+ typename PodType,
+ std::size_t N>
+ mutable_buffers_1 ``[link boost_asio.reference.buffer.overload7 buffer]``(
+ PodType (&data)[N]);
+ `` [''''&raquo;''' [link boost_asio.reference.buffer.overload7 more...]]``
 
- boost::asio::const_buffer b1 = ...;
- const unsigned char* p1 = boost::asio::buffer_cast<const unsigned char*>(b1);
+ template<
+ typename PodType,
+ std::size_t N>
+ mutable_buffers_1 ``[link boost_asio.reference.buffer.overload8 buffer]``(
+ PodType (&data)[N],
+ std::size_t max_size_in_bytes);
+ `` [''''&raquo;''' [link boost_asio.reference.buffer.overload8 more...]]``
 
+ template<
+ typename PodType,
+ std::size_t N>
+ const_buffers_1 ``[link boost_asio.reference.buffer.overload9 buffer]``(
+ const PodType (&data)[N]);
+ `` [''''&raquo;''' [link boost_asio.reference.buffer.overload9 more...]]``
 
+ template<
+ typename PodType,
+ std::size_t N>
+ const_buffers_1 ``[link boost_asio.reference.buffer.overload10 buffer]``(
+ const PodType (&data)[N],
+ std::size_t max_size_in_bytes);
+ `` [''''&raquo;''' [link boost_asio.reference.buffer.overload10 more...]]``
 
+ template<
+ typename PodType,
+ std::size_t N>
+ mutable_buffers_1 ``[link boost_asio.reference.buffer.overload11 buffer]``(
+ boost::array< PodType, N > & data);
+ `` [''''&raquo;''' [link boost_asio.reference.buffer.overload11 more...]]``
 
-To access the memory of a modifiable buffer, use:
+ template<
+ typename PodType,
+ std::size_t N>
+ mutable_buffers_1 ``[link boost_asio.reference.buffer.overload12 buffer]``(
+ boost::array< PodType, N > & data,
+ std::size_t max_size_in_bytes);
+ `` [''''&raquo;''' [link boost_asio.reference.buffer.overload12 more...]]``
 
- boost::asio::mutable_buffer b2 = ...;
- unsigned char* p2 = boost::asio::buffer_cast<unsigned char*>(b2);
+ template<
+ typename PodType,
+ std::size_t N>
+ const_buffers_1 ``[link boost_asio.reference.buffer.overload13 buffer]``(
+ boost::array< const PodType, N > & data);
+ `` [''''&raquo;''' [link boost_asio.reference.buffer.overload13 more...]]``
 
+ template<
+ typename PodType,
+ std::size_t N>
+ const_buffers_1 ``[link boost_asio.reference.buffer.overload14 buffer]``(
+ boost::array< const PodType, N > & data,
+ std::size_t max_size_in_bytes);
+ `` [''''&raquo;''' [link boost_asio.reference.buffer.overload14 more...]]``
 
+ template<
+ typename PodType,
+ std::size_t N>
+ const_buffers_1 ``[link boost_asio.reference.buffer.overload15 buffer]``(
+ const boost::array< PodType, N > & data);
+ `` [''''&raquo;''' [link boost_asio.reference.buffer.overload15 more...]]``
 
+ template<
+ typename PodType,
+ std::size_t N>
+ const_buffers_1 ``[link boost_asio.reference.buffer.overload16 buffer]``(
+ const boost::array< PodType, N > & data,
+ std::size_t max_size_in_bytes);
+ `` [''''&raquo;''' [link boost_asio.reference.buffer.overload16 more...]]``
 
-The `boost::asio::buffer_cast` function permits violations of type safety, so uses of it in application code should be carefully considered.
+ template<
+ typename PodType,
+ std::size_t N>
+ mutable_buffers_1 ``[link boost_asio.reference.buffer.overload17 buffer]``(
+ std::array< PodType, N > & data);
+ `` [''''&raquo;''' [link boost_asio.reference.buffer.overload17 more...]]``
 
-[heading Requirements]
+ template<
+ typename PodType,
+ std::size_t N>
+ mutable_buffers_1 ``[link boost_asio.reference.buffer.overload18 buffer]``(
+ std::array< PodType, N > & data,
+ std::size_t max_size_in_bytes);
+ `` [''''&raquo;''' [link boost_asio.reference.buffer.overload18 more...]]``
 
-[*Header: ][^boost/asio/buffer.hpp]
+ template<
+ typename PodType,
+ std::size_t N>
+ const_buffers_1 ``[link boost_asio.reference.buffer.overload19 buffer]``(
+ std::array< const PodType, N > & data);
+ `` [''''&raquo;''' [link boost_asio.reference.buffer.overload19 more...]]``
 
-[*Convenience header: ][^boost/asio.hpp]
+ template<
+ typename PodType,
+ std::size_t N>
+ const_buffers_1 ``[link boost_asio.reference.buffer.overload20 buffer]``(
+ std::array< const PodType, N > & data,
+ std::size_t max_size_in_bytes);
+ `` [''''&raquo;''' [link boost_asio.reference.buffer.overload20 more...]]``
 
+ template<
+ typename PodType,
+ std::size_t N>
+ const_buffers_1 ``[link boost_asio.reference.buffer.overload21 buffer]``(
+ const std::array< PodType, N > & data);
+ `` [''''&raquo;''' [link boost_asio.reference.buffer.overload21 more...]]``
 
-[section:overload1 buffer_cast (1 of 2 overloads)]
+ template<
+ typename PodType,
+ std::size_t N>
+ const_buffers_1 ``[link boost_asio.reference.buffer.overload22 buffer]``(
+ const std::array< PodType, N > & data,
+ std::size_t max_size_in_bytes);
+ `` [''''&raquo;''' [link boost_asio.reference.buffer.overload22 more...]]``
 
+ template<
+ typename PodType,
+ typename Allocator>
+ mutable_buffers_1 ``[link boost_asio.reference.buffer.overload23 buffer]``(
+ std::vector< PodType, Allocator > & data);
+ `` [''''&raquo;''' [link boost_asio.reference.buffer.overload23 more...]]``
 
-Cast a non-modifiable buffer to a specified pointer to POD type.
+ template<
+ typename PodType,
+ typename Allocator>
+ mutable_buffers_1 ``[link boost_asio.reference.buffer.overload24 buffer]``(
+ std::vector< PodType, Allocator > & data,
+ std::size_t max_size_in_bytes);
+ `` [''''&raquo;''' [link boost_asio.reference.buffer.overload24 more...]]``
 
+ template<
+ typename PodType,
+ typename Allocator>
+ const_buffers_1 ``[link boost_asio.reference.buffer.overload25 buffer]``(
+ const std::vector< PodType, Allocator > & data);
+ `` [''''&raquo;''' [link boost_asio.reference.buffer.overload25 more...]]``
 
   template<
- typename PointerToPodType>
- PointerToPodType buffer_cast(
- const mutable_buffer & b);
+ typename PodType,
+ typename Allocator>
+ const_buffers_1 ``[link boost_asio.reference.buffer.overload26 buffer]``(
+ const std::vector< PodType, Allocator > & data,
+ std::size_t max_size_in_bytes);
+ `` [''''&raquo;''' [link boost_asio.reference.buffer.overload26 more...]]``
 
+ template<
+ typename Elem,
+ typename Traits,
+ typename Allocator>
+ const_buffers_1 ``[link boost_asio.reference.buffer.overload27 buffer]``(
+ const std::basic_string< Elem, Traits, Allocator > & data);
+ `` [''''&raquo;''' [link boost_asio.reference.buffer.overload27 more...]]``
 
+ template<
+ typename Elem,
+ typename Traits,
+ typename Allocator>
+ const_buffers_1 ``[link boost_asio.reference.buffer.overload28 buffer]``(
+ const std::basic_string< Elem, Traits, Allocator > & data,
+ std::size_t max_size_in_bytes);
+ `` [''''&raquo;''' [link boost_asio.reference.buffer.overload28 more...]]``
 
-[endsect]
+A buffer object represents a contiguous region of memory as a 2-tuple consisting of a pointer and size in bytes. A tuple of the form `{void*, size_t}` specifies a mutable (modifiable) region of memory. Similarly, a tuple of the form `{const void*, size_t}` specifies a const (non-modifiable) region of memory. These two forms correspond to the classes [link boost_asio.reference.mutable_buffer `mutable_buffer`] and [link boost_asio.reference.const_buffer `const_buffer`], respectively. To mirror C++'s conversion rules, a [link boost_asio.reference.mutable_buffer `mutable_buffer`] is implicitly convertible to a [link boost_asio.reference.const_buffer `const_buffer`], and the opposite conversion is not permitted.
 
+The simplest use case involves reading or writing a single buffer of a specified size:
 
 
-[section:overload2 buffer_cast (2 of 2 overloads)]
 
+ sock.send(boost::asio::buffer(data, size));
 
-Cast a non-modifiable buffer to a specified pointer to POD type.
 
 
- template<
- typename PointerToPodType>
- PointerToPodType buffer_cast(
- const const_buffer & b);
 
+In the above example, the return value of `boost::asio::buffer` meets the requirements of the ConstBufferSequence concept so that it may be directly passed to the socket's write function. A buffer created for modifiable memory also meets the requirements of the MutableBufferSequence concept.
 
+An individual buffer may be created from a builtin array, std::vector, std::array or boost::array of POD elements. This helps prevent buffer overruns by automatically determining the size of the buffer:
 
-[endsect]
 
 
-[endsect]
+ char d1[128];
+ size_t bytes_transferred = sock.receive(boost::asio::buffer(d1));
 
-[section:buffer_copy buffer_copy]
+ std::vector<char> d2(128);
+ bytes_transferred = sock.receive(boost::asio::buffer(d2));
 
-[indexterm1 buffer_copy]
-The `boost::asio::buffer_copy` function is used to copy bytes from a source buffer (or buffer sequence) to a target buffer (or buffer sequence).
+ std::array<char, 128> d3;
+ bytes_transferred = sock.receive(boost::asio::buffer(d3));
 
-
- std::size_t ``[link boost_asio.reference.buffer_copy.overload1 buffer_copy]``(
- const mutable_buffer & target,
- const const_buffer & source);
- `` [''''&raquo;''' [link boost_asio.reference.buffer_copy.overload1 more...]]``
+ boost::array<char, 128> d4;
+ bytes_transferred = sock.receive(boost::asio::buffer(d4));
 
- std::size_t ``[link boost_asio.reference.buffer_copy.overload2 buffer_copy]``(
- const mutable_buffer & target,
- const const_buffers_1 & source);
- `` [''''&raquo;''' [link boost_asio.reference.buffer_copy.overload2 more...]]``
 
- std::size_t ``[link boost_asio.reference.buffer_copy.overload3 buffer_copy]``(
- const mutable_buffer & target,
- const mutable_buffer & source);
- `` [''''&raquo;''' [link boost_asio.reference.buffer_copy.overload3 more...]]``
 
- std::size_t ``[link boost_asio.reference.buffer_copy.overload4 buffer_copy]``(
- const mutable_buffer & target,
- const mutable_buffers_1 & source);
- `` [''''&raquo;''' [link boost_asio.reference.buffer_copy.overload4 more...]]``
 
- template<
- typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
- std::size_t ``[link boost_asio.reference.buffer_copy.overload5 buffer_copy]``(
- const mutable_buffer & target,
- const ConstBufferSequence & source);
- `` [''''&raquo;''' [link boost_asio.reference.buffer_copy.overload5 more...]]``
+In all three cases above, the buffers created are exactly 128 bytes long. Note that a vector is [*never] automatically resized when creating or using a buffer. The buffer size is determined using the vector's `size()` member function, and not its capacity.
 
- std::size_t ``[link boost_asio.reference.buffer_copy.overload6 buffer_copy]``(
- const mutable_buffers_1 & target,
- const const_buffer & source);
- `` [''''&raquo;''' [link boost_asio.reference.buffer_copy.overload6 more...]]``
 
- std::size_t ``[link boost_asio.reference.buffer_copy.overload7 buffer_copy]``(
- const mutable_buffers_1 & target,
- const const_buffers_1 & source);
- `` [''''&raquo;''' [link boost_asio.reference.buffer_copy.overload7 more...]]``
+[heading Accessing Buffer Contents]
+
 
- std::size_t ``[link boost_asio.reference.buffer_copy.overload8 buffer_copy]``(
- const mutable_buffers_1 & target,
- const mutable_buffer & source);
- `` [''''&raquo;''' [link boost_asio.reference.buffer_copy.overload8 more...]]``
 
- std::size_t ``[link boost_asio.reference.buffer_copy.overload9 buffer_copy]``(
- const mutable_buffers_1 & target,
- const mutable_buffers_1 & source);
- `` [''''&raquo;''' [link boost_asio.reference.buffer_copy.overload9 more...]]``
+The contents of a buffer may be accessed using the [link boost_asio.reference.buffer_size `buffer_size`] and [link boost_asio.reference.buffer_cast `buffer_cast`] functions:
 
- template<
- typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
- std::size_t ``[link boost_asio.reference.buffer_copy.overload10 buffer_copy]``(
- const mutable_buffers_1 & target,
- const ConstBufferSequence & source);
- `` [''''&raquo;''' [link boost_asio.reference.buffer_copy.overload10 more...]]``
 
- template<
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
- std::size_t ``[link boost_asio.reference.buffer_copy.overload11 buffer_copy]``(
- const MutableBufferSequence & target,
- const const_buffer & source);
- `` [''''&raquo;''' [link boost_asio.reference.buffer_copy.overload11 more...]]``
 
- template<
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
- std::size_t ``[link boost_asio.reference.buffer_copy.overload12 buffer_copy]``(
- const MutableBufferSequence & target,
- const const_buffers_1 & source);
- `` [''''&raquo;''' [link boost_asio.reference.buffer_copy.overload12 more...]]``
+ boost::asio::mutable_buffer b1 = ...;
+ std::size_t s1 = boost::asio::buffer_size(b1);
+ unsigned char* p1 = boost::asio::buffer_cast<unsigned char*>(b1);
 
- template<
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
- std::size_t ``[link boost_asio.reference.buffer_copy.overload13 buffer_copy]``(
- const MutableBufferSequence & target,
- const mutable_buffer & source);
- `` [''''&raquo;''' [link boost_asio.reference.buffer_copy.overload13 more...]]``
+ boost::asio::const_buffer b2 = ...;
+ std::size_t s2 = boost::asio::buffer_size(b2);
+ const void* p2 = boost::asio::buffer_cast<const void*>(b2);
 
- template<
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
- std::size_t ``[link boost_asio.reference.buffer_copy.overload14 buffer_copy]``(
- const MutableBufferSequence & target,
- const mutable_buffers_1 & source);
- `` [''''&raquo;''' [link boost_asio.reference.buffer_copy.overload14 more...]]``
 
- template<
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
- typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
- std::size_t ``[link boost_asio.reference.buffer_copy.overload15 buffer_copy]``(
- const MutableBufferSequence & target,
- const ConstBufferSequence & source);
- `` [''''&raquo;''' [link boost_asio.reference.buffer_copy.overload15 more...]]``
 
- std::size_t ``[link boost_asio.reference.buffer_copy.overload16 buffer_copy]``(
- const mutable_buffer & target,
- const const_buffer & source,
- std::size_t max_bytes_to_copy);
- `` [''''&raquo;''' [link boost_asio.reference.buffer_copy.overload16 more...]]``
 
- std::size_t ``[link boost_asio.reference.buffer_copy.overload17 buffer_copy]``(
- const mutable_buffer & target,
- const const_buffers_1 & source,
- std::size_t max_bytes_to_copy);
- `` [''''&raquo;''' [link boost_asio.reference.buffer_copy.overload17 more...]]``
+The `boost::asio::buffer_cast` function permits violations of type safety, so uses of it in application code should be carefully considered.
 
- std::size_t ``[link boost_asio.reference.buffer_copy.overload18 buffer_copy]``(
- const mutable_buffer & target,
- const mutable_buffer & source,
- std::size_t max_bytes_to_copy);
- `` [''''&raquo;''' [link boost_asio.reference.buffer_copy.overload18 more...]]``
+For convenience, the [link boost_asio.reference.buffer_size `buffer_size`] function also works on buffer sequences (that is, types meeting the ConstBufferSequence or MutableBufferSequence type requirements). In this case, the function returns the total size of all buffers in the sequence.
 
- std::size_t ``[link boost_asio.reference.buffer_copy.overload19 buffer_copy]``(
- const mutable_buffer & target,
- const mutable_buffers_1 & source,
- std::size_t max_bytes_to_copy);
- `` [''''&raquo;''' [link boost_asio.reference.buffer_copy.overload19 more...]]``
 
- template<
- typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
- std::size_t ``[link boost_asio.reference.buffer_copy.overload20 buffer_copy]``(
- const mutable_buffer & target,
- const ConstBufferSequence & source,
- std::size_t max_bytes_to_copy);
- `` [''''&raquo;''' [link boost_asio.reference.buffer_copy.overload20 more...]]``
+[heading Buffer Copying]
+
 
- std::size_t ``[link boost_asio.reference.buffer_copy.overload21 buffer_copy]``(
- const mutable_buffers_1 & target,
- const const_buffer & source,
- std::size_t max_bytes_to_copy);
- `` [''''&raquo;''' [link boost_asio.reference.buffer_copy.overload21 more...]]``
 
- std::size_t ``[link boost_asio.reference.buffer_copy.overload22 buffer_copy]``(
- const mutable_buffers_1 & target,
- const const_buffers_1 & source,
- std::size_t max_bytes_to_copy);
- `` [''''&raquo;''' [link boost_asio.reference.buffer_copy.overload22 more...]]``
+The [link boost_asio.reference.buffer_copy `buffer_copy`] function may be used to copy raw bytes between individual buffers and buffer sequences.
 
- std::size_t ``[link boost_asio.reference.buffer_copy.overload23 buffer_copy]``(
- const mutable_buffers_1 & target,
- const mutable_buffer & source,
- std::size_t max_bytes_to_copy);
- `` [''''&raquo;''' [link boost_asio.reference.buffer_copy.overload23 more...]]``
+In particular, when used with the [link boost_asio.reference.buffer_size `buffer_size`] , the [link boost_asio.reference.buffer_copy `buffer_copy`] function can be used to linearise a sequence of buffers. For example:
 
- std::size_t ``[link boost_asio.reference.buffer_copy.overload24 buffer_copy]``(
- const mutable_buffers_1 & target,
- const mutable_buffers_1 & source,
- std::size_t max_bytes_to_copy);
- `` [''''&raquo;''' [link boost_asio.reference.buffer_copy.overload24 more...]]``
 
- template<
- typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
- std::size_t ``[link boost_asio.reference.buffer_copy.overload25 buffer_copy]``(
- const mutable_buffers_1 & target,
- const ConstBufferSequence & source,
- std::size_t max_bytes_to_copy);
- `` [''''&raquo;''' [link boost_asio.reference.buffer_copy.overload25 more...]]``
 
- template<
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
- std::size_t ``[link boost_asio.reference.buffer_copy.overload26 buffer_copy]``(
- const MutableBufferSequence & target,
- const const_buffer & source,
- std::size_t max_bytes_to_copy);
- `` [''''&raquo;''' [link boost_asio.reference.buffer_copy.overload26 more...]]``
+ vector<const_buffer> buffers = ...;
 
- template<
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
- std::size_t ``[link boost_asio.reference.buffer_copy.overload27 buffer_copy]``(
- const MutableBufferSequence & target,
- const const_buffers_1 & source,
- std::size_t max_bytes_to_copy);
- `` [''''&raquo;''' [link boost_asio.reference.buffer_copy.overload27 more...]]``
+ vector<unsigned char> data(boost::asio::buffer_size(buffers));
+ boost::asio::buffer_copy(boost::asio::buffer(data), buffers);
 
- template<
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
- std::size_t ``[link boost_asio.reference.buffer_copy.overload28 buffer_copy]``(
- const MutableBufferSequence & target,
- const mutable_buffer & source,
- std::size_t max_bytes_to_copy);
- `` [''''&raquo;''' [link boost_asio.reference.buffer_copy.overload28 more...]]``
 
- template<
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
- std::size_t ``[link boost_asio.reference.buffer_copy.overload29 buffer_copy]``(
- const MutableBufferSequence & target,
- const mutable_buffers_1 & source,
- std::size_t max_bytes_to_copy);
- `` [''''&raquo;''' [link boost_asio.reference.buffer_copy.overload29 more...]]``
 
- template<
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
- typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
- std::size_t ``[link boost_asio.reference.buffer_copy.overload30 buffer_copy]``(
- const MutableBufferSequence & target,
- const ConstBufferSequence & source,
- std::size_t max_bytes_to_copy);
- `` [''''&raquo;''' [link boost_asio.reference.buffer_copy.overload30 more...]]``
 
-The `buffer_copy` function is available in two forms:
 
+[heading Buffer Invalidation]
+
 
-* A 2-argument form: `buffer_copy(target, source)`
 
+A buffer object does not have any ownership of the memory it refers to. It is the responsibility of the application to ensure the memory region remains valid until it is no longer required for an I/O operation. When the memory is no longer available, the buffer is said to have been invalidated.
 
-* A 3-argument form: `buffer_copy(target, source, max_bytes_to_copy)`
+For the `boost::asio::buffer` overloads that accept an argument of type std::vector, the buffer objects returned are invalidated by any vector operation that also invalidates all references, pointers and iterators referring to the elements in the sequence (C++ Std, 23.2.4)
 
-Both forms return the number of bytes actually copied. The number of bytes copied is the lesser of:
+For the `boost::asio::buffer` overloads that accept an argument of type std::basic\_string, the buffer objects returned are invalidated according to the rules defined for invalidation of references, pointers and iterators referring to elements of the sequence (C++ Std, 21.3).
 
 
-* `buffer_size(target)`
+[heading Buffer Arithmetic]
+
 
 
-* `buffer_size(source)`
+Buffer objects may be manipulated using simple arithmetic in a safe way which helps prevent buffer overruns. Consider an array initialised as follows:
 
 
-* `If` specified, `max_bytes_to_copy`.
 
-This prevents buffer overflow, regardless of the buffer sizes used in the copy operation.
+ boost::array<char, 6> a = { 'a', 'b', 'c', 'd', 'e' };
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/buffer.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
 
+A buffer object `b1` created using:
 
-[section:overload1 buffer_copy (1 of 30 overloads)]
 
 
-Copies bytes from a source buffer to a target buffer.
+ b1 = boost::asio::buffer(a);
 
 
- std::size_t buffer_copy(
- const mutable_buffer & target,
- const const_buffer & source);
 
 
+represents the entire array, `{ 'a', 'b', 'c', 'd', 'e' }`. An optional second argument to the `boost::asio::buffer` function may be used to limit the size, in bytes, of the buffer:
 
-[heading Parameters]
-
-
-[variablelist
-
-[[target][A modifiable buffer representing the memory region to which the bytes will be copied.]]
-
-[[source][A non-modifiable buffer representing the memory region from which the bytes will be copied.]]
 
-]
 
+ b2 = boost::asio::buffer(a, 3);
 
-[heading Return Value]
-
-The number of bytes copied.
 
 
-[heading Remarks]
-
-The number of bytes copied is the lesser of:
 
+such that `b2` represents the data `{ 'a', 'b', 'c' }`. Even if the size argument exceeds the actual size of the array, the size of the buffer object created will be limited to the array size.
 
-* `buffer_size(target)`
+An offset may be applied to an existing buffer to create a new one:
 
 
-* `buffer_size(source)`
 
+ b3 = b1 + 2;
 
 
 
-[endsect]
 
+where `b3` will set to represent `{ 'c', 'd', 'e' }`. If the offset exceeds the size of the existing buffer, the newly created buffer will be empty.
 
+Both an offset and size may be specified to create a buffer that corresponds to a specific range of bytes within an existing buffer:
 
-[section:overload2 buffer_copy (2 of 30 overloads)]
 
 
-Copies bytes from a source buffer to a target buffer.
+ b4 = boost::asio::buffer(b1 + 1, 3);
 
 
- std::size_t buffer_copy(
- const mutable_buffer & target,
- const const_buffers_1 & source);
 
 
+so that `b4` will refer to the bytes `{ 'b', 'c', 'd' }`.
 
-[heading Parameters]
-
 
-[variablelist
+[heading Buffers and Scatter-Gather I/O]
   
-[[target][A modifiable buffer representing the memory region to which the bytes will be copied.]]
 
-[[source][A non-modifiable buffer representing the memory region from which the bytes will be copied.]]
 
-]
+To read or write using multiple buffers (i.e. scatter-gather I/O), multiple buffer objects may be assigned into a container that supports the MutableBufferSequence (for read) or ConstBufferSequence (for write) concepts:
 
 
-[heading Return Value]
-
-The number of bytes copied.
 
+ char d1[128];
+ std::vector<char> d2(128);
+ boost::array<char, 128> d3;
 
-[heading Remarks]
-
-The number of bytes copied is the lesser of:
+ boost::array<mutable_buffer, 3> bufs1 = {
+ boost::asio::buffer(d1),
+ boost::asio::buffer(d2),
+ boost::asio::buffer(d3) };
+ bytes_transferred = sock.receive(bufs1);
 
+ std::vector<const_buffer> bufs2;
+ bufs2.push_back(boost::asio::buffer(d1));
+ bufs2.push_back(boost::asio::buffer(d2));
+ bufs2.push_back(boost::asio::buffer(d3));
+ bytes_transferred = sock.send(bufs2);
 
-* `buffer_size(target)`
 
 
-* `buffer_size(source)`
 
+[heading Requirements]
 
+[*Header: ][^boost/asio/buffer.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
-[endsect]
 
+[section:overload1 buffer (1 of 28 overloads)]
 
 
-[section:overload3 buffer_copy (3 of 30 overloads)]
+Create a new modifiable buffer from an existing buffer.
 
 
-Copies bytes from a source buffer to a target buffer.
+ mutable_buffers_1 buffer(
+ const mutable_buffer & b);
 
 
- std::size_t buffer_copy(
- const mutable_buffer & target,
- const mutable_buffer & source);
 
+[heading Return Value]
+
+`mutable_buffers_1(b)`.
 
 
-[heading Parameters]
-
 
-[variablelist
-
-[[target][A modifiable buffer representing the memory region to which the bytes will be copied.]]
 
-[[source][A modifiable buffer representing the memory region from which the bytes will be copied. The contents of the source buffer will not be modified.]]
+[endsect]
 
-]
 
 
-[heading Return Value]
-
-The number of bytes copied.
+[section:overload2 buffer (2 of 28 overloads)]
 
 
-[heading Remarks]
-
-The number of bytes copied is the lesser of:
+Create a new modifiable buffer from an existing buffer.
 
 
-* `buffer_size(target)`
+ mutable_buffers_1 buffer(
+ const mutable_buffer & b,
+ std::size_t max_size_in_bytes);
 
 
-* `buffer_size(source)`
 
+[heading Return Value]
+
+A [link boost_asio.reference.mutable_buffers_1 `mutable_buffers_1`] value equivalent to:
 
+ mutable_buffers_1(
+ buffer_cast<void*>(b),
+ min(buffer_size(b), max_size_in_bytes));
 
 
-[endsect]
 
 
 
-[section:overload4 buffer_copy (4 of 30 overloads)]
 
 
-Copies bytes from a source buffer to a target buffer.
+[endsect]
 
 
- std::size_t buffer_copy(
- const mutable_buffer & target,
- const mutable_buffers_1 & source);
 
+[section:overload3 buffer (3 of 28 overloads)]
 
 
-[heading Parameters]
-
+Create a new non-modifiable buffer from an existing buffer.
 
-[variablelist
-
-[[target][A modifiable buffer representing the memory region to which the bytes will be copied.]]
 
-[[source][A modifiable buffer representing the memory region from which the bytes will be copied. The contents of the source buffer will not be modified.]]
+ const_buffers_1 buffer(
+ const const_buffer & b);
 
-]
 
 
 [heading Return Value]
       
-The number of bytes copied.
+`const_buffers_1(b)`.
 
 
-[heading Remarks]
-
-The number of bytes copied is the lesser of:
 
 
-* `buffer_size(target)`
+[endsect]
 
 
-* `buffer_size(source)`
 
+[section:overload4 buffer (4 of 28 overloads)]
 
 
+Create a new non-modifiable buffer from an existing buffer.
 
-[endsect]
 
+ const_buffers_1 buffer(
+ const const_buffer & b,
+ std::size_t max_size_in_bytes);
 
 
-[section:overload5 buffer_copy (5 of 30 overloads)]
 
+[heading Return Value]
+
+A [link boost_asio.reference.const_buffers_1 `const_buffers_1`] value equivalent to:
 
-Copies bytes from a source buffer sequence to a target buffer.
+ const_buffers_1(
+ buffer_cast<const void*>(b),
+ min(buffer_size(b), max_size_in_bytes));
 
 
- template<
- typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
- std::size_t buffer_copy(
- const mutable_buffer & target,
- const ConstBufferSequence & source);
 
 
 
-[heading Parameters]
-
 
-[variablelist
-
-[[target][A modifiable buffer representing the memory region to which the bytes will be copied.]]
 
-[[source][A non-modifiable buffer sequence representing the memory regions from which the bytes will be copied.]]
+[endsect]
 
-]
 
 
-[heading Return Value]
-
-The number of bytes copied.
+[section:overload5 buffer (5 of 28 overloads)]
 
 
-[heading Remarks]
-
-The number of bytes copied is the lesser of:
+Create a new modifiable buffer that represents the given memory range.
 
 
-* `buffer_size(target)`
+ mutable_buffers_1 buffer(
+ void * data,
+ std::size_t size_in_bytes);
 
 
-* `buffer_size(source)`
+
+[heading Return Value]
+
+`mutable_buffers_1(data, size_in_bytes)`.
 
 
 
@@ -44760,90 +44748,86 @@
 
 
 
-[section:overload6 buffer_copy (6 of 30 overloads)]
+[section:overload6 buffer (6 of 28 overloads)]
 
 
-Copies bytes from a source buffer to a target buffer.
+Create a new non-modifiable buffer that represents the given memory range.
 
 
- std::size_t buffer_copy(
- const mutable_buffers_1 & target,
- const const_buffer & source);
+ const_buffers_1 buffer(
+ const void * data,
+ std::size_t size_in_bytes);
 
 
 
-[heading Parameters]
-
+[heading Return Value]
+
+`const_buffers_1(data, size_in_bytes)`.
 
-[variablelist
-
-[[target][A modifiable buffer representing the memory region to which the bytes will be copied.]]
 
-[[source][A non-modifiable buffer representing the memory region from which the bytes will be copied.]]
 
-]
 
+[endsect]
 
-[heading Return Value]
-
-The number of bytes copied.
 
 
-[heading Remarks]
-
-The number of bytes copied is the lesser of:
+[section:overload7 buffer (7 of 28 overloads)]
 
 
-* `buffer_size(target)`
+Create a new modifiable buffer that represents the given POD array.
 
 
-* `buffer_size(source)`
+ template<
+ typename PodType,
+ std::size_t N>
+ mutable_buffers_1 buffer(
+ PodType (&data)[N]);
 
 
 
+[heading Return Value]
+
+A [link boost_asio.reference.mutable_buffers_1 `mutable_buffers_1`] value equivalent to:
 
-[endsect]
+ mutable_buffers_1(
+ static_cast<void*>(data),
+ N * sizeof(PodType));
 
 
 
-[section:overload7 buffer_copy (7 of 30 overloads)]
 
 
-Copies bytes from a source buffer to a target buffer.
 
 
- std::size_t buffer_copy(
- const mutable_buffers_1 & target,
- const const_buffers_1 & source);
+[endsect]
 
 
 
-[heading Parameters]
-
+[section:overload8 buffer (8 of 28 overloads)]
 
-[variablelist
-
-[[target][A modifiable buffer representing the memory region to which the bytes will be copied.]]
 
-[[source][A non-modifiable buffer representing the memory region from which the bytes will be copied.]]
+Create a new modifiable buffer that represents the given POD array.
 
-]
 
+ template<
+ typename PodType,
+ std::size_t N>
+ mutable_buffers_1 buffer(
+ PodType (&data)[N],
+ std::size_t max_size_in_bytes);
 
-[heading Return Value]
-
-The number of bytes copied.
 
 
-[heading Remarks]
+[heading Return Value]
       
-The number of bytes copied is the lesser of:
+A [link boost_asio.reference.mutable_buffers_1 `mutable_buffers_1`] value equivalent to:
 
+ mutable_buffers_1(
+ static_cast<void*>(data),
+ min(N * sizeof(PodType), max_size_in_bytes));
 
-* `buffer_size(target)`
 
 
-* `buffer_size(source)`
 
 
 
@@ -44852,138 +44836,128 @@
 
 
 
-[section:overload8 buffer_copy (8 of 30 overloads)]
-
+[section:overload9 buffer (9 of 28 overloads)]
 
-Copies bytes from a source buffer to a target buffer.
 
+Create a new non-modifiable buffer that represents the given POD array.
 
- std::size_t buffer_copy(
- const mutable_buffers_1 & target,
- const mutable_buffer & source);
 
+ template<
+ typename PodType,
+ std::size_t N>
+ const_buffers_1 buffer(
+ const PodType (&data)[N]);
 
 
-[heading Parameters]
-
 
-[variablelist
-
-[[target][A modifiable buffer representing the memory region to which the bytes will be copied.]]
+[heading Return Value]
+
+A [link boost_asio.reference.const_buffers_1 `const_buffers_1`] value equivalent to:
 
-[[source][A modifiable buffer representing the memory region from which the bytes will be copied. The contents of the source buffer will not be modified.]]
+ const_buffers_1(
+ static_cast<const void*>(data),
+ N * sizeof(PodType));
 
-]
 
 
-[heading Return Value]
-
-The number of bytes copied.
 
 
-[heading Remarks]
-
-The number of bytes copied is the lesser of:
 
 
-* `buffer_size(target)`
+[endsect]
 
 
-* `buffer_size(source)`
 
+[section:overload10 buffer (10 of 28 overloads)]
 
 
+Create a new non-modifiable buffer that represents the given POD array.
 
-[endsect]
 
+ template<
+ typename PodType,
+ std::size_t N>
+ const_buffers_1 buffer(
+ const PodType (&data)[N],
+ std::size_t max_size_in_bytes);
 
 
-[section:overload9 buffer_copy (9 of 30 overloads)]
 
+[heading Return Value]
+
+A [link boost_asio.reference.const_buffers_1 `const_buffers_1`] value equivalent to:
 
-Copies bytes from a source buffer to a target buffer.
+ const_buffers_1(
+ static_cast<const void*>(data),
+ min(N * sizeof(PodType), max_size_in_bytes));
 
 
- std::size_t buffer_copy(
- const mutable_buffers_1 & target,
- const mutable_buffers_1 & source);
 
 
 
-[heading Parameters]
-
 
-[variablelist
-
-[[target][A modifiable buffer representing the memory region to which the bytes will be copied.]]
 
-[[source][A modifiable buffer representing the memory region from which the bytes will be copied. The contents of the source buffer will not be modified.]]
+[endsect]
 
-]
 
 
-[heading Return Value]
-
-The number of bytes copied.
+[section:overload11 buffer (11 of 28 overloads)]
 
 
-[heading Remarks]
-
-The number of bytes copied is the lesser of:
+Create a new modifiable buffer that represents the given POD array.
 
 
-* `buffer_size(target)`
+ template<
+ typename PodType,
+ std::size_t N>
+ mutable_buffers_1 buffer(
+ boost::array< PodType, N > & data);
 
 
-* `buffer_size(source)`
 
+[heading Return Value]
+
+A [link boost_asio.reference.mutable_buffers_1 `mutable_buffers_1`] value equivalent to:
 
+ mutable_buffers_1(
+ data.data(),
+ data.size() * sizeof(PodType));
 
 
-[endsect]
 
 
 
-[section:overload10 buffer_copy (10 of 30 overloads)]
 
 
-Copies bytes from a source buffer sequence to a target buffer.
+[endsect]
 
 
- template<
- typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
- std::size_t buffer_copy(
- const mutable_buffers_1 & target,
- const ConstBufferSequence & source);
 
+[section:overload12 buffer (12 of 28 overloads)]
 
 
-[heading Parameters]
-
+Create a new modifiable buffer that represents the given POD array.
 
-[variablelist
-
-[[target][A modifiable buffer representing the memory region to which the bytes will be copied.]]
 
-[[source][A non-modifiable buffer sequence representing the memory regions from which the bytes will be copied.]]
+ template<
+ typename PodType,
+ std::size_t N>
+ mutable_buffers_1 buffer(
+ boost::array< PodType, N > & data,
+ std::size_t max_size_in_bytes);
 
-]
 
 
 [heading Return Value]
       
-The number of bytes copied.
-
-
-[heading Remarks]
-
-The number of bytes copied is the lesser of:
+A [link boost_asio.reference.mutable_buffers_1 `mutable_buffers_1`] value equivalent to:
 
+ mutable_buffers_1(
+ data.data(),
+ min(data.size() * sizeof(PodType), max_size_in_bytes));
 
-* `buffer_size(target)`
 
 
-* `buffer_size(source)`
 
 
 
@@ -44992,94 +44966,95 @@
 
 
 
-[section:overload11 buffer_copy (11 of 30 overloads)]
+[section:overload13 buffer (13 of 28 overloads)]
 
 
-Copies bytes from a source buffer to a target buffer sequence.
+Create a new non-modifiable buffer that represents the given POD array.
 
 
   template<
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
- std::size_t buffer_copy(
- const MutableBufferSequence & target,
- const const_buffer & source);
+ typename PodType,
+ std::size_t N>
+ const_buffers_1 buffer(
+ boost::array< const PodType, N > & data);
 
 
 
-[heading Parameters]
-
+[heading Return Value]
+
+A [link boost_asio.reference.const_buffers_1 `const_buffers_1`] value equivalent to:
 
-[variablelist
-
-[[target][A modifiable buffer sequence representing the memory regions to which the bytes will be copied.]]
+ const_buffers_1(
+ data.data(),
+ data.size() * sizeof(PodType));
 
-[[source][A non-modifiable buffer representing the memory region from which the bytes will be copied.]]
 
-]
 
 
-[heading Return Value]
-
-The number of bytes copied.
 
 
-[heading Remarks]
-
-The number of bytes copied is the lesser of:
 
+[endsect]
 
-* `buffer_size(target)`
 
 
-* `buffer_size(source)`
+[section:overload14 buffer (14 of 28 overloads)]
 
 
+Create a new non-modifiable buffer that represents the given POD array.
 
 
-[endsect]
+ template<
+ typename PodType,
+ std::size_t N>
+ const_buffers_1 buffer(
+ boost::array< const PodType, N > & data,
+ std::size_t max_size_in_bytes);
 
 
 
-[section:overload12 buffer_copy (12 of 30 overloads)]
+[heading Return Value]
+
+A [link boost_asio.reference.const_buffers_1 `const_buffers_1`] value equivalent to:
 
+ const_buffers_1(
+ data.data(),
+ min(data.size() * sizeof(PodType), max_size_in_bytes));
 
-Copies bytes from a source buffer to a target buffer sequence.
 
 
- template<
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
- std::size_t buffer_copy(
- const MutableBufferSequence & target,
- const const_buffers_1 & source);
 
 
 
-[heading Parameters]
-
 
-[variablelist
-
-[[target][A modifiable buffer sequence representing the memory regions to which the bytes will be copied.]]
+[endsect]
 
-[[source][A non-modifiable buffer representing the memory region from which the bytes will be copied.]]
 
-]
 
+[section:overload15 buffer (15 of 28 overloads)]
 
-[heading Return Value]
-
-The number of bytes copied.
+
+Create a new non-modifiable buffer that represents the given POD array.
 
 
-[heading Remarks]
+ template<
+ typename PodType,
+ std::size_t N>
+ const_buffers_1 buffer(
+ const boost::array< PodType, N > & data);
+
+
+
+[heading Return Value]
       
-The number of bytes copied is the lesser of:
+A [link boost_asio.reference.const_buffers_1 `const_buffers_1`] value equivalent to:
 
+ const_buffers_1(
+ data.data(),
+ data.size() * sizeof(PodType));
 
-* `buffer_size(target)`
 
 
-* `buffer_size(source)`
 
 
 
@@ -45088,143 +45063,128 @@
 
 
 
-[section:overload13 buffer_copy (13 of 30 overloads)]
+[section:overload16 buffer (16 of 28 overloads)]
 
 
-Copies bytes from a source buffer to a target buffer sequence.
+Create a new non-modifiable buffer that represents the given POD array.
 
 
   template<
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
- std::size_t buffer_copy(
- const MutableBufferSequence & target,
- const mutable_buffer & source);
+ typename PodType,
+ std::size_t N>
+ const_buffers_1 buffer(
+ const boost::array< PodType, N > & data,
+ std::size_t max_size_in_bytes);
 
 
 
-[heading Parameters]
-
+[heading Return Value]
+
+A [link boost_asio.reference.const_buffers_1 `const_buffers_1`] value equivalent to:
 
-[variablelist
-
-[[target][A modifiable buffer sequence representing the memory regions to which the bytes will be copied.]]
+ const_buffers_1(
+ data.data(),
+ min(data.size() * sizeof(PodType), max_size_in_bytes));
 
-[[source][A modifiable buffer representing the memory region from which the bytes will be copied. The contents of the source buffer will not be modified.]]
 
-]
 
 
-[heading Return Value]
-
-The number of bytes copied.
 
 
-[heading Remarks]
-
-The number of bytes copied is the lesser of:
 
+[endsect]
 
-* `buffer_size(target)`
 
 
-* `buffer_size(source)`
+[section:overload17 buffer (17 of 28 overloads)]
 
 
+Create a new modifiable buffer that represents the given POD array.
 
 
-[endsect]
+ template<
+ typename PodType,
+ std::size_t N>
+ mutable_buffers_1 buffer(
+ std::array< PodType, N > & data);
 
 
 
-[section:overload14 buffer_copy (14 of 30 overloads)]
+[heading Return Value]
+
+A [link boost_asio.reference.mutable_buffers_1 `mutable_buffers_1`] value equivalent to:
 
+ mutable_buffers_1(
+ data.data(),
+ data.size() * sizeof(PodType));
 
-Copies bytes from a source buffer to a target buffer sequence.
 
 
- template<
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
- std::size_t buffer_copy(
- const MutableBufferSequence & target,
- const mutable_buffers_1 & source);
 
 
 
-[heading Parameters]
-
-
-[variablelist
-
-[[target][A modifiable buffer sequence representing the memory regions to which the bytes will be copied.]]
 
-[[source][A modifiable buffer representing the memory region from which the bytes will be copied. The contents of the source buffer will not be modified.]]
+[endsect]
 
-]
 
 
-[heading Return Value]
-
-The number of bytes copied.
+[section:overload18 buffer (18 of 28 overloads)]
 
 
-[heading Remarks]
-
-The number of bytes copied is the lesser of:
+Create a new modifiable buffer that represents the given POD array.
 
 
-* `buffer_size(target)`
+ template<
+ typename PodType,
+ std::size_t N>
+ mutable_buffers_1 buffer(
+ std::array< PodType, N > & data,
+ std::size_t max_size_in_bytes);
 
 
-* `buffer_size(source)`
 
+[heading Return Value]
+
+A [link boost_asio.reference.mutable_buffers_1 `mutable_buffers_1`] value equivalent to:
 
+ mutable_buffers_1(
+ data.data(),
+ min(data.size() * sizeof(PodType), max_size_in_bytes));
 
 
-[endsect]
 
 
 
-[section:overload15 buffer_copy (15 of 30 overloads)]
 
 
-Copies bytes from a source buffer sequence to a target buffer sequence.
+[endsect]
 
 
- template<
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
- typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
- std::size_t buffer_copy(
- const MutableBufferSequence & target,
- const ConstBufferSequence & source);
 
+[section:overload19 buffer (19 of 28 overloads)]
 
 
-[heading Parameters]
-
+Create a new non-modifiable buffer that represents the given POD array.
 
-[variablelist
-
-[[target][A modifiable buffer sequence representing the memory regions to which the bytes will be copied.]]
 
-[[source][A non-modifiable buffer sequence representing the memory regions from which the bytes will be copied.]]
+ template<
+ typename PodType,
+ std::size_t N>
+ const_buffers_1 buffer(
+ std::array< const PodType, N > & data);
 
-]
 
 
 [heading Return Value]
       
-The number of bytes copied.
-
-
-[heading Remarks]
-
-The number of bytes copied is the lesser of:
+A [link boost_asio.reference.const_buffers_1 `const_buffers_1`] value equivalent to:
 
+ const_buffers_1(
+ data.data(),
+ data.size() * sizeof(PodType));
 
-* `buffer_size(target)`
 
 
-* `buffer_size(source)`
 
 
 
@@ -45233,50 +45193,31 @@
 
 
 
-[section:overload16 buffer_copy (16 of 30 overloads)]
-
-
-Copies a limited number of bytes from a source buffer to a target buffer.
-
-
- std::size_t buffer_copy(
- const mutable_buffer & target,
- const const_buffer & source,
- std::size_t max_bytes_to_copy);
-
-
+[section:overload20 buffer (20 of 28 overloads)]
 
-[heading Parameters]
-
 
-[variablelist
-
-[[target][A modifiable buffer representing the memory region to which the bytes will be copied.]]
+Create a new non-modifiable buffer that represents the given POD array.
 
-[[source][A non-modifiable buffer representing the memory region from which the bytes will be copied.]]
 
-[[max_bytes_to_copy][The maximum number of bytes to be copied.]]
+ template<
+ typename PodType,
+ std::size_t N>
+ const_buffers_1 buffer(
+ std::array< const PodType, N > & data,
+ std::size_t max_size_in_bytes);
 
-]
 
 
 [heading Return Value]
       
-The number of bytes copied.
-
-
-[heading Remarks]
-
-The number of bytes copied is the lesser of:
-
-
-* `buffer_size(target)`
+A [link boost_asio.reference.const_buffers_1 `const_buffers_1`] value equivalent to:
 
+ const_buffers_1(
+ data.data(),
+ min(data.size() * sizeof(PodType), max_size_in_bytes));
 
-* `buffer_size(source)`
 
 
-* `max_bytes_to_copy`
 
 
 
@@ -45285,50 +45226,30 @@
 
 
 
-[section:overload17 buffer_copy (17 of 30 overloads)]
-
-
-Copies a limited number of bytes from a source buffer to a target buffer.
-
-
- std::size_t buffer_copy(
- const mutable_buffer & target,
- const const_buffers_1 & source,
- std::size_t max_bytes_to_copy);
-
-
+[section:overload21 buffer (21 of 28 overloads)]
 
-[heading Parameters]
-
 
-[variablelist
-
-[[target][A modifiable buffer representing the memory region to which the bytes will be copied.]]
+Create a new non-modifiable buffer that represents the given POD array.
 
-[[source][A non-modifiable buffer representing the memory region from which the bytes will be copied.]]
 
-[[max_bytes_to_copy][The maximum number of bytes to be copied.]]
+ template<
+ typename PodType,
+ std::size_t N>
+ const_buffers_1 buffer(
+ const std::array< PodType, N > & data);
 
-]
 
 
 [heading Return Value]
       
-The number of bytes copied.
-
-
-[heading Remarks]
-
-The number of bytes copied is the lesser of:
-
-
-* `buffer_size(target)`
+A [link boost_asio.reference.const_buffers_1 `const_buffers_1`] value equivalent to:
 
+ const_buffers_1(
+ data.data(),
+ data.size() * sizeof(PodType));
 
-* `buffer_size(source)`
 
 
-* `max_bytes_to_copy`
 
 
 
@@ -45337,50 +45258,31 @@
 
 
 
-[section:overload18 buffer_copy (18 of 30 overloads)]
-
-
-Copies a limited number of bytes from a source buffer to a target buffer.
-
-
- std::size_t buffer_copy(
- const mutable_buffer & target,
- const mutable_buffer & source,
- std::size_t max_bytes_to_copy);
-
-
+[section:overload22 buffer (22 of 28 overloads)]
 
-[heading Parameters]
-
 
-[variablelist
-
-[[target][A modifiable buffer representing the memory region to which the bytes will be copied.]]
+Create a new non-modifiable buffer that represents the given POD array.
 
-[[source][A modifiable buffer representing the memory region from which the bytes will be copied. The contents of the source buffer will not be modified.]]
 
-[[max_bytes_to_copy][The maximum number of bytes to be copied.]]
+ template<
+ typename PodType,
+ std::size_t N>
+ const_buffers_1 buffer(
+ const std::array< PodType, N > & data,
+ std::size_t max_size_in_bytes);
 
-]
 
 
 [heading Return Value]
       
-The number of bytes copied.
-
-
-[heading Remarks]
-
-The number of bytes copied is the lesser of:
-
-
-* `buffer_size(target)`
+A [link boost_asio.reference.const_buffers_1 `const_buffers_1`] value equivalent to:
 
+ const_buffers_1(
+ data.data(),
+ min(data.size() * sizeof(PodType), max_size_in_bytes));
 
-* `buffer_size(source)`
 
 
-* `max_bytes_to_copy`
 
 
 
@@ -45389,50 +45291,35 @@
 
 
 
-[section:overload19 buffer_copy (19 of 30 overloads)]
-
-
-Copies a limited number of bytes from a source buffer to a target buffer.
-
-
- std::size_t buffer_copy(
- const mutable_buffer & target,
- const mutable_buffers_1 & source,
- std::size_t max_bytes_to_copy);
-
-
+[section:overload23 buffer (23 of 28 overloads)]
 
-[heading Parameters]
-
 
-[variablelist
-
-[[target][A modifiable buffer representing the memory region to which the bytes will be copied.]]
+Create a new modifiable buffer that represents the given POD vector.
 
-[[source][A modifiable buffer representing the memory region from which the bytes will be copied. The contents of the source buffer will not be modified.]]
 
-[[max_bytes_to_copy][The maximum number of bytes to be copied.]]
+ template<
+ typename PodType,
+ typename Allocator>
+ mutable_buffers_1 buffer(
+ std::vector< PodType, Allocator > & data);
 
-]
 
 
 [heading Return Value]
       
-The number of bytes copied.
-
-
-[heading Remarks]
-
-The number of bytes copied is the lesser of:
+A [link boost_asio.reference.mutable_buffers_1 `mutable_buffers_1`] value equivalent to:
 
+ mutable_buffers_1(
+ data.size() ? &data[0] : 0,
+ data.size() * sizeof(PodType));
 
-* `buffer_size(target)`
 
 
-* `buffer_size(source)`
 
 
-* `max_bytes_to_copy`
+[heading Remarks]
+
+The buffer is invalidated by any vector operation that would also invalidate iterators.
 
 
 
@@ -45441,305 +45328,483 @@
 
 
 
-[section:overload20 buffer_copy (20 of 30 overloads)]
+[section:overload24 buffer (24 of 28 overloads)]
 
 
-Copies a limited number of bytes from a source buffer sequence to a target buffer.
+Create a new modifiable buffer that represents the given POD vector.
 
 
   template<
- typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
- std::size_t buffer_copy(
- const mutable_buffer & target,
- const ConstBufferSequence & source,
- std::size_t max_bytes_to_copy);
-
-
+ typename PodType,
+ typename Allocator>
+ mutable_buffers_1 buffer(
+ std::vector< PodType, Allocator > & data,
+ std::size_t max_size_in_bytes);
 
-[heading Parameters]
-
 
-[variablelist
-
-[[target][A modifiable buffer representing the memory region to which the bytes will be copied.]]
 
-[[source][A non-modifiable buffer sequence representing the memory regions from which the bytes will be copied.]]
+[heading Return Value]
+
+A [link boost_asio.reference.mutable_buffers_1 `mutable_buffers_1`] value equivalent to:
 
-[[max_bytes_to_copy][The maximum number of bytes to be copied.]]
+ mutable_buffers_1(
+ data.size() ? &data[0] : 0,
+ min(data.size() * sizeof(PodType), max_size_in_bytes));
 
-]
 
 
-[heading Return Value]
-
-The number of bytes copied.
 
 
 [heading Remarks]
       
-The number of bytes copied is the lesser of:
+The buffer is invalidated by any vector operation that would also invalidate iterators.
 
 
-* `buffer_size(target)`
 
 
-* `buffer_size(source)`
+[endsect]
 
 
-* `max_bytes_to_copy`
 
+[section:overload25 buffer (25 of 28 overloads)]
 
 
+Create a new non-modifiable buffer that represents the given POD vector.
 
-[endsect]
 
+ template<
+ typename PodType,
+ typename Allocator>
+ const_buffers_1 buffer(
+ const std::vector< PodType, Allocator > & data);
 
 
-[section:overload21 buffer_copy (21 of 30 overloads)]
 
+[heading Return Value]
+
+A [link boost_asio.reference.const_buffers_1 `const_buffers_1`] value equivalent to:
 
-Copies a limited number of bytes from a source buffer to a target buffer.
+ const_buffers_1(
+ data.size() ? &data[0] : 0,
+ data.size() * sizeof(PodType));
 
 
- std::size_t buffer_copy(
- const mutable_buffers_1 & target,
- const const_buffer & source,
- std::size_t max_bytes_to_copy);
 
 
 
-[heading Parameters]
-
+[heading Remarks]
+
+The buffer is invalidated by any vector operation that would also invalidate iterators.
 
-[variablelist
-
-[[target][A modifiable buffer representing the memory region to which the bytes will be copied.]]
 
-[[source][A non-modifiable buffer representing the memory region from which the bytes will be copied.]]
 
-[[max_bytes_to_copy][The maximum number of bytes to be copied.]]
 
-]
+[endsect]
 
 
-[heading Return Value]
-
-The number of bytes copied.
 
+[section:overload26 buffer (26 of 28 overloads)]
 
-[heading Remarks]
-
-The number of bytes copied is the lesser of:
 
+Create a new non-modifiable buffer that represents the given POD vector.
 
-* `buffer_size(target)`
 
+ template<
+ typename PodType,
+ typename Allocator>
+ const_buffers_1 buffer(
+ const std::vector< PodType, Allocator > & data,
+ std::size_t max_size_in_bytes);
 
-* `buffer_size(source)`
 
 
-* `max_bytes_to_copy`
+[heading Return Value]
+
+A [link boost_asio.reference.const_buffers_1 `const_buffers_1`] value equivalent to:
 
+ const_buffers_1(
+ data.size() ? &data[0] : 0,
+ min(data.size() * sizeof(PodType), max_size_in_bytes));
 
 
 
-[endsect]
 
 
+[heading Remarks]
+
+The buffer is invalidated by any vector operation that would also invalidate iterators.
 
-[section:overload22 buffer_copy (22 of 30 overloads)]
 
 
-Copies a limited number of bytes from a source buffer to a target buffer.
 
+[endsect]
 
- std::size_t buffer_copy(
- const mutable_buffers_1 & target,
- const const_buffers_1 & source,
- std::size_t max_bytes_to_copy);
 
 
+[section:overload27 buffer (27 of 28 overloads)]
 
-[heading Parameters]
-
 
-[variablelist
-
-[[target][A modifiable buffer representing the memory region to which the bytes will be copied.]]
+Create a new non-modifiable buffer that represents the given string.
 
-[[source][A non-modifiable buffer representing the memory region from which the bytes will be copied.]]
 
-[[max_bytes_to_copy][The maximum number of bytes to be copied.]]
+ template<
+ typename Elem,
+ typename Traits,
+ typename Allocator>
+ const_buffers_1 buffer(
+ const std::basic_string< Elem, Traits, Allocator > & data);
 
-]
 
 
 [heading Return Value]
       
-The number of bytes copied.
+`const_buffers_1(data.data(), data.size() * sizeof(Elem))`.
 
 
 [heading Remarks]
       
-The number of bytes copied is the lesser of:
+The buffer is invalidated by any non-const operation called on the given string object.
 
 
-* `buffer_size(target)`
 
 
-* `buffer_size(source)`
+[endsect]
 
 
-* `max_bytes_to_copy`
 
+[section:overload28 buffer (28 of 28 overloads)]
 
 
+Create a new non-modifiable buffer that represents the given string.
 
-[endsect]
 
+ template<
+ typename Elem,
+ typename Traits,
+ typename Allocator>
+ const_buffers_1 buffer(
+ const std::basic_string< Elem, Traits, Allocator > & data,
+ std::size_t max_size_in_bytes);
 
 
-[section:overload23 buffer_copy (23 of 30 overloads)]
 
+[heading Return Value]
+
+A [link boost_asio.reference.const_buffers_1 `const_buffers_1`] value equivalent to:
 
-Copies a limited number of bytes from a source buffer to a target buffer.
+ const_buffers_1(
+ data.data(),
+ min(data.size() * sizeof(Elem), max_size_in_bytes));
 
 
- std::size_t buffer_copy(
- const mutable_buffers_1 & target,
- const mutable_buffer & source,
- std::size_t max_bytes_to_copy);
 
 
 
-[heading Parameters]
-
+[heading Remarks]
+
+The buffer is invalidated by any non-const operation called on the given string object.
 
-[variablelist
-
-[[target][A modifiable buffer representing the memory region to which the bytes will be copied.]]
 
-[[source][A modifiable buffer representing the memory region from which the bytes will be copied. The contents of the source buffer will not be modified.]]
 
-[[max_bytes_to_copy][The maximum number of bytes to be copied.]]
 
-]
+[endsect]
 
 
-[heading Return Value]
-
-The number of bytes copied.
+[endsect]
 
+[section:buffer_cast buffer_cast]
+
+[indexterm1 buffer_cast]
+The `boost::asio::buffer_cast` function is used to obtain a pointer to the underlying memory region associated with a buffer.
 
-[heading Remarks]
       
-The number of bytes copied is the lesser of:
+ template<
+ typename PointerToPodType>
+ PointerToPodType ``[link boost_asio.reference.buffer_cast.overload1 buffer_cast]``(
+ const mutable_buffer & b);
+ `` [''''&raquo;''' [link boost_asio.reference.buffer_cast.overload1 more...]]``
 
+ template<
+ typename PointerToPodType>
+ PointerToPodType ``[link boost_asio.reference.buffer_cast.overload2 buffer_cast]``(
+ const const_buffer & b);
+ `` [''''&raquo;''' [link boost_asio.reference.buffer_cast.overload2 more...]]``
 
-* `buffer_size(target)`
 
+[heading Examples:]
+
 
-* `buffer_size(source)`
 
+To access the memory of a non-modifiable buffer, use:
 
-* `max_bytes_to_copy`
+ boost::asio::const_buffer b1 = ...;
+ const unsigned char* p1 = boost::asio::buffer_cast<const unsigned char*>(b1);
 
 
 
 
-[endsect]
+To access the memory of a modifiable buffer, use:
 
+ boost::asio::mutable_buffer b2 = ...;
+ unsigned char* p2 = boost::asio::buffer_cast<unsigned char*>(b2);
 
 
-[section:overload24 buffer_copy (24 of 30 overloads)]
 
 
-Copies a limited number of bytes from a source buffer to a target buffer.
+The `boost::asio::buffer_cast` function permits violations of type safety, so uses of it in application code should be carefully considered.
 
+[heading Requirements]
 
- std::size_t buffer_copy(
- const mutable_buffers_1 & target,
- const mutable_buffers_1 & source,
- std::size_t max_bytes_to_copy);
+[*Header: ][^boost/asio/buffer.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
 
-[heading Parameters]
-
+[section:overload1 buffer_cast (1 of 2 overloads)]
 
-[variablelist
-
-[[target][A modifiable buffer representing the memory region to which the bytes will be copied.]]
 
-[[source][A modifiable buffer representing the memory region from which the bytes will be copied. The contents of the source buffer will not be modified.]]
+Cast a non-modifiable buffer to a specified pointer to POD type.
 
-[[max_bytes_to_copy][The maximum number of bytes to be copied.]]
 
-]
+ template<
+ typename PointerToPodType>
+ PointerToPodType buffer_cast(
+ const mutable_buffer & b);
 
 
-[heading Return Value]
-
-The number of bytes copied.
 
+[endsect]
 
-[heading Remarks]
-
-The number of bytes copied is the lesser of:
 
 
-* `buffer_size(target)`
+[section:overload2 buffer_cast (2 of 2 overloads)]
 
 
-* `buffer_size(source)`
+Cast a non-modifiable buffer to a specified pointer to POD type.
 
 
-* `max_bytes_to_copy`
+ template<
+ typename PointerToPodType>
+ PointerToPodType buffer_cast(
+ const const_buffer & b);
+
 
 
+[endsect]
 
 
 [endsect]
 
+[section:buffer_copy buffer_copy]
 
+[indexterm1 buffer_copy]
+The `boost::asio::buffer_copy` function is used to copy bytes from a source buffer (or buffer sequence) to a target buffer (or buffer sequence).
 
-[section:overload25 buffer_copy (25 of 30 overloads)]
+
+ std::size_t ``[link boost_asio.reference.buffer_copy.overload1 buffer_copy]``(
+ const mutable_buffer & target,
+ const const_buffer & source);
+ `` [''''&raquo;''' [link boost_asio.reference.buffer_copy.overload1 more...]]``
 
+ std::size_t ``[link boost_asio.reference.buffer_copy.overload2 buffer_copy]``(
+ const mutable_buffer & target,
+ const const_buffers_1 & source);
+ `` [''''&raquo;''' [link boost_asio.reference.buffer_copy.overload2 more...]]``
 
-Copies a limited number of bytes from a source buffer sequence to a target buffer.
+ std::size_t ``[link boost_asio.reference.buffer_copy.overload3 buffer_copy]``(
+ const mutable_buffer & target,
+ const mutable_buffer & source);
+ `` [''''&raquo;''' [link boost_asio.reference.buffer_copy.overload3 more...]]``
 
+ std::size_t ``[link boost_asio.reference.buffer_copy.overload4 buffer_copy]``(
+ const mutable_buffer & target,
+ const mutable_buffers_1 & source);
+ `` [''''&raquo;''' [link boost_asio.reference.buffer_copy.overload4 more...]]``
 
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
- std::size_t buffer_copy(
+ std::size_t ``[link boost_asio.reference.buffer_copy.overload5 buffer_copy]``(
+ const mutable_buffer & target,
+ const ConstBufferSequence & source);
+ `` [''''&raquo;''' [link boost_asio.reference.buffer_copy.overload5 more...]]``
+
+ std::size_t ``[link boost_asio.reference.buffer_copy.overload6 buffer_copy]``(
       const mutable_buffers_1 & target,
- const ConstBufferSequence & source,
- std::size_t max_bytes_to_copy);
+ const const_buffer & source);
+ `` [''''&raquo;''' [link boost_asio.reference.buffer_copy.overload6 more...]]``
 
+ std::size_t ``[link boost_asio.reference.buffer_copy.overload7 buffer_copy]``(
+ const mutable_buffers_1 & target,
+ const const_buffers_1 & source);
+ `` [''''&raquo;''' [link boost_asio.reference.buffer_copy.overload7 more...]]``
 
+ std::size_t ``[link boost_asio.reference.buffer_copy.overload8 buffer_copy]``(
+ const mutable_buffers_1 & target,
+ const mutable_buffer & source);
+ `` [''''&raquo;''' [link boost_asio.reference.buffer_copy.overload8 more...]]``
 
-[heading Parameters]
-
+ std::size_t ``[link boost_asio.reference.buffer_copy.overload9 buffer_copy]``(
+ const mutable_buffers_1 & target,
+ const mutable_buffers_1 & source);
+ `` [''''&raquo;''' [link boost_asio.reference.buffer_copy.overload9 more...]]``
 
-[variablelist
-
-[[target][A modifiable buffer representing the memory region to which the bytes will be copied.]]
+ template<
+ typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
+ std::size_t ``[link boost_asio.reference.buffer_copy.overload10 buffer_copy]``(
+ const mutable_buffers_1 & target,
+ const ConstBufferSequence & source);
+ `` [''''&raquo;''' [link boost_asio.reference.buffer_copy.overload10 more...]]``
 
-[[source][A non-modifiable buffer sequence representing the memory regions from which the bytes will be copied.]]
+ template<
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
+ std::size_t ``[link boost_asio.reference.buffer_copy.overload11 buffer_copy]``(
+ const MutableBufferSequence & target,
+ const const_buffer & source);
+ `` [''''&raquo;''' [link boost_asio.reference.buffer_copy.overload11 more...]]``
 
-[[max_bytes_to_copy][The maximum number of bytes to be copied.]]
+ template<
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
+ std::size_t ``[link boost_asio.reference.buffer_copy.overload12 buffer_copy]``(
+ const MutableBufferSequence & target,
+ const const_buffers_1 & source);
+ `` [''''&raquo;''' [link boost_asio.reference.buffer_copy.overload12 more...]]``
 
-]
+ template<
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
+ std::size_t ``[link boost_asio.reference.buffer_copy.overload13 buffer_copy]``(
+ const MutableBufferSequence & target,
+ const mutable_buffer & source);
+ `` [''''&raquo;''' [link boost_asio.reference.buffer_copy.overload13 more...]]``
 
+ template<
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
+ std::size_t ``[link boost_asio.reference.buffer_copy.overload14 buffer_copy]``(
+ const MutableBufferSequence & target,
+ const mutable_buffers_1 & source);
+ `` [''''&raquo;''' [link boost_asio.reference.buffer_copy.overload14 more...]]``
 
-[heading Return Value]
-
-The number of bytes copied.
+ template<
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
+ typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
+ std::size_t ``[link boost_asio.reference.buffer_copy.overload15 buffer_copy]``(
+ const MutableBufferSequence & target,
+ const ConstBufferSequence & source);
+ `` [''''&raquo;''' [link boost_asio.reference.buffer_copy.overload15 more...]]``
 
+ std::size_t ``[link boost_asio.reference.buffer_copy.overload16 buffer_copy]``(
+ const mutable_buffer & target,
+ const const_buffer & source,
+ std::size_t max_bytes_to_copy);
+ `` [''''&raquo;''' [link boost_asio.reference.buffer_copy.overload16 more...]]``
+
+ std::size_t ``[link boost_asio.reference.buffer_copy.overload17 buffer_copy]``(
+ const mutable_buffer & target,
+ const const_buffers_1 & source,
+ std::size_t max_bytes_to_copy);
+ `` [''''&raquo;''' [link boost_asio.reference.buffer_copy.overload17 more...]]``
+
+ std::size_t ``[link boost_asio.reference.buffer_copy.overload18 buffer_copy]``(
+ const mutable_buffer & target,
+ const mutable_buffer & source,
+ std::size_t max_bytes_to_copy);
+ `` [''''&raquo;''' [link boost_asio.reference.buffer_copy.overload18 more...]]``
+
+ std::size_t ``[link boost_asio.reference.buffer_copy.overload19 buffer_copy]``(
+ const mutable_buffer & target,
+ const mutable_buffers_1 & source,
+ std::size_t max_bytes_to_copy);
+ `` [''''&raquo;''' [link boost_asio.reference.buffer_copy.overload19 more...]]``
+
+ template<
+ typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
+ std::size_t ``[link boost_asio.reference.buffer_copy.overload20 buffer_copy]``(
+ const mutable_buffer & target,
+ const ConstBufferSequence & source,
+ std::size_t max_bytes_to_copy);
+ `` [''''&raquo;''' [link boost_asio.reference.buffer_copy.overload20 more...]]``
+
+ std::size_t ``[link boost_asio.reference.buffer_copy.overload21 buffer_copy]``(
+ const mutable_buffers_1 & target,
+ const const_buffer & source,
+ std::size_t max_bytes_to_copy);
+ `` [''''&raquo;''' [link boost_asio.reference.buffer_copy.overload21 more...]]``
+
+ std::size_t ``[link boost_asio.reference.buffer_copy.overload22 buffer_copy]``(
+ const mutable_buffers_1 & target,
+ const const_buffers_1 & source,
+ std::size_t max_bytes_to_copy);
+ `` [''''&raquo;''' [link boost_asio.reference.buffer_copy.overload22 more...]]``
+
+ std::size_t ``[link boost_asio.reference.buffer_copy.overload23 buffer_copy]``(
+ const mutable_buffers_1 & target,
+ const mutable_buffer & source,
+ std::size_t max_bytes_to_copy);
+ `` [''''&raquo;''' [link boost_asio.reference.buffer_copy.overload23 more...]]``
+
+ std::size_t ``[link boost_asio.reference.buffer_copy.overload24 buffer_copy]``(
+ const mutable_buffers_1 & target,
+ const mutable_buffers_1 & source,
+ std::size_t max_bytes_to_copy);
+ `` [''''&raquo;''' [link boost_asio.reference.buffer_copy.overload24 more...]]``
+
+ template<
+ typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
+ std::size_t ``[link boost_asio.reference.buffer_copy.overload25 buffer_copy]``(
+ const mutable_buffers_1 & target,
+ const ConstBufferSequence & source,
+ std::size_t max_bytes_to_copy);
+ `` [''''&raquo;''' [link boost_asio.reference.buffer_copy.overload25 more...]]``
+
+ template<
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
+ std::size_t ``[link boost_asio.reference.buffer_copy.overload26 buffer_copy]``(
+ const MutableBufferSequence & target,
+ const const_buffer & source,
+ std::size_t max_bytes_to_copy);
+ `` [''''&raquo;''' [link boost_asio.reference.buffer_copy.overload26 more...]]``
+
+ template<
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
+ std::size_t ``[link boost_asio.reference.buffer_copy.overload27 buffer_copy]``(
+ const MutableBufferSequence & target,
+ const const_buffers_1 & source,
+ std::size_t max_bytes_to_copy);
+ `` [''''&raquo;''' [link boost_asio.reference.buffer_copy.overload27 more...]]``
+
+ template<
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
+ std::size_t ``[link boost_asio.reference.buffer_copy.overload28 buffer_copy]``(
+ const MutableBufferSequence & target,
+ const mutable_buffer & source,
+ std::size_t max_bytes_to_copy);
+ `` [''''&raquo;''' [link boost_asio.reference.buffer_copy.overload28 more...]]``
+
+ template<
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
+ std::size_t ``[link boost_asio.reference.buffer_copy.overload29 buffer_copy]``(
+ const MutableBufferSequence & target,
+ const mutable_buffers_1 & source,
+ std::size_t max_bytes_to_copy);
+ `` [''''&raquo;''' [link boost_asio.reference.buffer_copy.overload29 more...]]``
+
+ template<
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
+ typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
+ std::size_t ``[link boost_asio.reference.buffer_copy.overload30 buffer_copy]``(
+ const MutableBufferSequence & target,
+ const ConstBufferSequence & source,
+ std::size_t max_bytes_to_copy);
+ `` [''''&raquo;''' [link boost_asio.reference.buffer_copy.overload30 more...]]``
+
+The `buffer_copy` function is available in two forms:
+
+
+* A 2-argument form: `buffer_copy(target, source)`
 
-[heading Remarks]
-
-The number of bytes copied is the lesser of:
+
+* A 3-argument form: `buffer_copy(target, source, max_bytes_to_copy)`
+
+Both forms return the number of bytes actually copied. The number of bytes copied is the lesser of:
 
 
 * `buffer_size(target)`
@@ -45748,27 +45813,26 @@
 * `buffer_size(source)`
 
 
-* `max_bytes_to_copy`
-
+* `If` specified, `max_bytes_to_copy`.
 
+This prevents buffer overflow, regardless of the buffer sizes used in the copy operation.
 
+[heading Requirements]
 
-[endsect]
+[*Header: ][^boost/asio/buffer.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
 
-[section:overload26 buffer_copy (26 of 30 overloads)]
+[section:overload1 buffer_copy (1 of 30 overloads)]
 
 
-Copies a limited number of bytes from a source buffer to a target buffer sequence.
+Copies bytes from a source buffer to a target buffer.
 
 
- template<
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
   std::size_t buffer_copy(
- const MutableBufferSequence & target,
- const const_buffer & source,
- std::size_t max_bytes_to_copy);
+ const mutable_buffer & target,
+ const const_buffer & source);
 
 
 
@@ -45777,12 +45841,10 @@
 
 [variablelist
   
-[[target][A modifiable buffer sequence representing the memory regions to which the bytes will be copied.]]
+[[target][A modifiable buffer representing the memory region to which the bytes will be copied.]]
 
 [[source][A non-modifiable buffer representing the memory region from which the bytes will be copied.]]
 
-[[max_bytes_to_copy][The maximum number of bytes to be copied.]]
-
 ]
 
 
@@ -45802,27 +45864,21 @@
 * `buffer_size(source)`
 
 
-* `max_bytes_to_copy`
-
-
 
 
 [endsect]
 
 
 
-[section:overload27 buffer_copy (27 of 30 overloads)]
+[section:overload2 buffer_copy (2 of 30 overloads)]
 
 
-Copies a limited number of bytes from a source buffer to a target buffer sequence.
+Copies bytes from a source buffer to a target buffer.
 
 
- template<
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
   std::size_t buffer_copy(
- const MutableBufferSequence & target,
- const const_buffers_1 & source,
- std::size_t max_bytes_to_copy);
+ const mutable_buffer & target,
+ const const_buffers_1 & source);
 
 
 
@@ -45831,12 +45887,10 @@
 
 [variablelist
   
-[[target][A modifiable buffer sequence representing the memory regions to which the bytes will be copied.]]
+[[target][A modifiable buffer representing the memory region to which the bytes will be copied.]]
 
 [[source][A non-modifiable buffer representing the memory region from which the bytes will be copied.]]
 
-[[max_bytes_to_copy][The maximum number of bytes to be copied.]]
-
 ]
 
 
@@ -45856,27 +45910,21 @@
 * `buffer_size(source)`
 
 
-* `max_bytes_to_copy`
-
-
 
 
 [endsect]
 
 
 
-[section:overload28 buffer_copy (28 of 30 overloads)]
+[section:overload3 buffer_copy (3 of 30 overloads)]
 
 
-Copies a limited number of bytes from a source buffer to a target buffer sequence.
+Copies bytes from a source buffer to a target buffer.
 
 
- template<
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
   std::size_t buffer_copy(
- const MutableBufferSequence & target,
- const mutable_buffer & source,
- std::size_t max_bytes_to_copy);
+ const mutable_buffer & target,
+ const mutable_buffer & source);
 
 
 
@@ -45885,12 +45933,10 @@
 
 [variablelist
   
-[[target][A modifiable buffer sequence representing the memory regions to which the bytes will be copied.]]
+[[target][A modifiable buffer representing the memory region to which the bytes will be copied.]]
 
 [[source][A modifiable buffer representing the memory region from which the bytes will be copied. The contents of the source buffer will not be modified.]]
 
-[[max_bytes_to_copy][The maximum number of bytes to be copied.]]
-
 ]
 
 
@@ -45910,27 +45956,21 @@
 * `buffer_size(source)`
 
 
-* `max_bytes_to_copy`
-
-
 
 
 [endsect]
 
 
 
-[section:overload29 buffer_copy (29 of 30 overloads)]
+[section:overload4 buffer_copy (4 of 30 overloads)]
 
 
-Copies a limited number of bytes from a source buffer to a target buffer sequence.
+Copies bytes from a source buffer to a target buffer.
 
 
- template<
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
   std::size_t buffer_copy(
- const MutableBufferSequence & target,
- const mutable_buffers_1 & source,
- std::size_t max_bytes_to_copy);
+ const mutable_buffer & target,
+ const mutable_buffers_1 & source);
 
 
 
@@ -45939,12 +45979,10 @@
 
 [variablelist
   
-[[target][A modifiable buffer sequence representing the memory regions to which the bytes will be copied.]]
+[[target][A modifiable buffer representing the memory region to which the bytes will be copied.]]
 
 [[source][A modifiable buffer representing the memory region from which the bytes will be copied. The contents of the source buffer will not be modified.]]
 
-[[max_bytes_to_copy][The maximum number of bytes to be copied.]]
-
 ]
 
 
@@ -45964,28 +46002,23 @@
 * `buffer_size(source)`
 
 
-* `max_bytes_to_copy`
-
-
 
 
 [endsect]
 
 
 
-[section:overload30 buffer_copy (30 of 30 overloads)]
+[section:overload5 buffer_copy (5 of 30 overloads)]
 
 
-Copies a limited number of bytes from a source buffer sequence to a target buffer sequence.
+Copies bytes from a source buffer sequence to a target buffer.
 
 
   template<
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
   std::size_t buffer_copy(
- const MutableBufferSequence & target,
- const ConstBufferSequence & source,
- std::size_t max_bytes_to_copy);
+ const mutable_buffer & target,
+ const ConstBufferSequence & source);
 
 
 
@@ -45994,12 +46027,10 @@
 
 [variablelist
   
-[[target][A modifiable buffer sequence representing the memory regions to which the bytes will be copied.]]
+[[target][A modifiable buffer representing the memory region to which the bytes will be copied.]]
 
 [[source][A non-modifiable buffer sequence representing the memory regions from which the bytes will be copied.]]
 
-[[max_bytes_to_copy][The maximum number of bytes to be copied.]]
-
 ]
 
 
@@ -46019,59 +46050,51 @@
 * `buffer_size(source)`
 
 
-* `max_bytes_to_copy`
 
 
+[endsect]
 
 
-[endsect]
 
+[section:overload6 buffer_copy (6 of 30 overloads)]
 
-[endsect]
 
-[section:buffer_size buffer_size]
+Copies bytes from a source buffer to a target buffer.
 
-[indexterm1 buffer_size]
-The `boost::asio::buffer_size` function determines the total number of bytes in a buffer or buffer sequence.
 
-
- std::size_t ``[link boost_asio.reference.buffer_size.overload1 buffer_size]``(
- const mutable_buffer & b);
- `` [''''&raquo;''' [link boost_asio.reference.buffer_size.overload1 more...]]``
+ std::size_t buffer_copy(
+ const mutable_buffers_1 & target,
+ const const_buffer & source);
 
- std::size_t ``[link boost_asio.reference.buffer_size.overload2 buffer_size]``(
- const mutable_buffers_1 & b);
- `` [''''&raquo;''' [link boost_asio.reference.buffer_size.overload2 more...]]``
 
- std::size_t ``[link boost_asio.reference.buffer_size.overload3 buffer_size]``(
- const const_buffer & b);
- `` [''''&raquo;''' [link boost_asio.reference.buffer_size.overload3 more...]]``
 
- std::size_t ``[link boost_asio.reference.buffer_size.overload4 buffer_size]``(
- const const_buffers_1 & b);
- `` [''''&raquo;''' [link boost_asio.reference.buffer_size.overload4 more...]]``
+[heading Parameters]
+
 
- template<
- typename BufferSequence>
- std::size_t ``[link boost_asio.reference.buffer_size.overload5 buffer_size]``(
- const BufferSequence & b);
- `` [''''&raquo;''' [link boost_asio.reference.buffer_size.overload5 more...]]``
+[variablelist
+
+[[target][A modifiable buffer representing the memory region to which the bytes will be copied.]]
 
-[heading Requirements]
+[[source][A non-modifiable buffer representing the memory region from which the bytes will be copied.]]
 
-[*Header: ][^boost/asio/buffer.hpp]
+]
 
-[*Convenience header: ][^boost/asio.hpp]
+
+[heading Return Value]
+
+The number of bytes copied.
 
 
-[section:overload1 buffer_size (1 of 5 overloads)]
+[heading Remarks]
+
+The number of bytes copied is the lesser of:
 
 
-Get the number of bytes in a modifiable buffer.
+* `buffer_size(target)`
 
 
- std::size_t buffer_size(
- const mutable_buffer & b);
+* `buffer_size(source)`
+
 
 
 
@@ -46079,963 +46102,792 @@
 
 
 
-[section:overload2 buffer_size (2 of 5 overloads)]
+[section:overload7 buffer_copy (7 of 30 overloads)]
 
 
-Get the number of bytes in a modifiable buffer.
+Copies bytes from a source buffer to a target buffer.
 
 
- std::size_t buffer_size(
- const mutable_buffers_1 & b);
+ std::size_t buffer_copy(
+ const mutable_buffers_1 & target,
+ const const_buffers_1 & source);
 
 
 
-[endsect]
+[heading Parameters]
+
 
+[variablelist
+
+[[target][A modifiable buffer representing the memory region to which the bytes will be copied.]]
 
+[[source][A non-modifiable buffer representing the memory region from which the bytes will be copied.]]
 
-[section:overload3 buffer_size (3 of 5 overloads)]
+]
 
 
-Get the number of bytes in a non-modifiable buffer.
+[heading Return Value]
+
+The number of bytes copied.
 
 
- std::size_t buffer_size(
- const const_buffer & b);
+[heading Remarks]
+
+The number of bytes copied is the lesser of:
 
 
+* `buffer_size(target)`
 
-[endsect]
 
+* `buffer_size(source)`
 
 
-[section:overload4 buffer_size (4 of 5 overloads)]
 
 
-Get the number of bytes in a non-modifiable buffer.
+[endsect]
 
 
- std::size_t buffer_size(
- const const_buffers_1 & b);
 
+[section:overload8 buffer_copy (8 of 30 overloads)]
 
 
-[endsect]
+Copies bytes from a source buffer to a target buffer.
 
 
+ std::size_t buffer_copy(
+ const mutable_buffers_1 & target,
+ const mutable_buffer & source);
 
-[section:overload5 buffer_size (5 of 5 overloads)]
 
 
-Get the total number of bytes in a buffer sequence.
+[heading Parameters]
+
 
+[variablelist
+
+[[target][A modifiable buffer representing the memory region to which the bytes will be copied.]]
 
- template<
- typename BufferSequence>
- std::size_t buffer_size(
- const BufferSequence & b);
+[[source][A modifiable buffer representing the memory region from which the bytes will be copied. The contents of the source buffer will not be modified.]]
 
+]
 
-The `BufferSequence` template parameter may meet either of the `ConstBufferSequence` or `MutableBufferSequence` type requirements.
 
+[heading Return Value]
+
+The number of bytes copied.
 
-[endsect]
 
+[heading Remarks]
+
+The number of bytes copied is the lesser of:
 
-[endsect]
 
-[section:buffered_read_stream buffered_read_stream]
+* `buffer_size(target)`
 
 
-Adds buffering to the read-related operations of a stream.
+* `buffer_size(source)`
 
 
- template<
- typename Stream>
- class buffered_read_stream :
- noncopyable
 
 
-[heading Types]
-[table
- [[Name][Description]]
+[endsect]
 
- [
 
- [[link boost_asio.reference.buffered_read_stream.lowest_layer_type [*lowest_layer_type]]]
- [The type of the lowest layer. ]
-
- ]
 
- [
+[section:overload9 buffer_copy (9 of 30 overloads)]
 
- [[link boost_asio.reference.buffered_read_stream.next_layer_type [*next_layer_type]]]
- [The type of the next layer. ]
-
- ]
 
-]
+Copies bytes from a source buffer to a target buffer.
 
-[heading Member Functions]
-[table
- [[Name][Description]]
 
- [
- [[link boost_asio.reference.buffered_read_stream.async_fill [*async_fill]]]
- [Start an asynchronous fill. ]
- ]
-
- [
- [[link boost_asio.reference.buffered_read_stream.async_read_some [*async_read_some]]]
- [Start an asynchronous read. The buffer into which the data will be read must be valid for the lifetime of the asynchronous operation. ]
- ]
-
- [
- [[link boost_asio.reference.buffered_read_stream.async_write_some [*async_write_some]]]
- [Start an asynchronous write. The data being written must be valid for the lifetime of the asynchronous operation. ]
- ]
-
- [
- [[link boost_asio.reference.buffered_read_stream.buffered_read_stream [*buffered_read_stream]]]
- [Construct, passing the specified argument to initialise the next layer. ]
- ]
-
- [
- [[link boost_asio.reference.buffered_read_stream.close [*close]]]
- [Close the stream. ]
- ]
-
- [
- [[link boost_asio.reference.buffered_read_stream.fill [*fill]]]
- [Fill the buffer with some data. Returns the number of bytes placed in the buffer as a result of the operation. Throws an exception on failure.
+ std::size_t buffer_copy(
+ const mutable_buffers_1 & target,
+ const mutable_buffers_1 & source);
 
- Fill the buffer with some data. Returns the number of bytes placed in the buffer as a result of the operation, or 0 if an error occurred. ]
- ]
-
- [
- [[link boost_asio.reference.buffered_read_stream.get_io_service [*get_io_service]]]
- [Get the io_service associated with the object. ]
- ]
-
- [
- [[link boost_asio.reference.buffered_read_stream.in_avail [*in_avail]]]
- [Determine the amount of data that may be read without blocking. ]
- ]
-
- [
- [[link boost_asio.reference.buffered_read_stream.lowest_layer [*lowest_layer]]]
- [Get a reference to the lowest layer.
 
- Get a const reference to the lowest layer. ]
- ]
-
- [
- [[link boost_asio.reference.buffered_read_stream.next_layer [*next_layer]]]
- [Get a reference to the next layer. ]
- ]
-
- [
- [[link boost_asio.reference.buffered_read_stream.peek [*peek]]]
- [Peek at the incoming data on the stream. Returns the number of bytes read. Throws an exception on failure.
 
- Peek at the incoming data on the stream. Returns the number of bytes read, or 0 if an error occurred. ]
- ]
-
- [
- [[link boost_asio.reference.buffered_read_stream.read_some [*read_some]]]
- [Read some data from the stream. Returns the number of bytes read. Throws an exception on failure.
+[heading Parameters]
+
 
- Read some data from the stream. Returns the number of bytes read or 0 if an error occurred. ]
- ]
+[variablelist
   
- [
- [[link boost_asio.reference.buffered_read_stream.write_some [*write_some]]]
- [Write the given data to the stream. Returns the number of bytes written. Throws an exception on failure.
+[[target][A modifiable buffer representing the memory region to which the bytes will be copied.]]
+
+[[source][A modifiable buffer representing the memory region from which the bytes will be copied. The contents of the source buffer will not be modified.]]
 
- Write the given data to the stream. Returns the number of bytes written, or 0 if an error occurred. ]
- ]
-
 ]
 
-[heading Data Members]
-[table
- [[Name][Description]]
 
- [
- [[link boost_asio.reference.buffered_read_stream.default_buffer_size [*default_buffer_size]]]
- [The default buffer size. ]
- ]
+[heading Return Value]
+
+The number of bytes copied.
 
-]
 
-The [link boost_asio.reference.buffered_read_stream `buffered_read_stream`] class template can be used to add buffering to the synchronous and asynchronous read operations of a stream.
+[heading Remarks]
+
+The number of bytes copied is the lesser of:
 
 
-[heading Thread Safety]
-
-[*Distinct] [*objects:] Safe.
+* `buffer_size(target)`
 
-[*Shared] [*objects:] Unsafe.
 
+* `buffer_size(source)`
 
 
 
-[heading Requirements]
-
-[*Header: ][^boost/asio/buffered_read_stream.hpp]
-
-[*Convenience header: ][^boost/asio.hpp]
 
+[endsect]
 
-[section:async_fill buffered_read_stream::async_fill]
 
-[indexterm2 async_fill..buffered_read_stream]
-Start an asynchronous fill.
 
+[section:overload10 buffer_copy (10 of 30 overloads)]
 
- template<
- typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void async_fill(
- ReadHandler handler);
 
+Copies bytes from a source buffer sequence to a target buffer.
 
 
-[endsect]
+ template<
+ typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
+ std::size_t buffer_copy(
+ const mutable_buffers_1 & target,
+ const ConstBufferSequence & source);
 
 
 
-[section:async_read_some buffered_read_stream::async_read_some]
+[heading Parameters]
+
 
-[indexterm2 async_read_some..buffered_read_stream]
-Start an asynchronous read. The buffer into which the data will be read must be valid for the lifetime of the asynchronous operation.
+[variablelist
+
+[[target][A modifiable buffer representing the memory region to which the bytes will be copied.]]
 
+[[source][A non-modifiable buffer sequence representing the memory regions from which the bytes will be copied.]]
 
- template<
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
- typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void async_read_some(
- const MutableBufferSequence & buffers,
- ReadHandler handler);
+]
 
 
+[heading Return Value]
+
+The number of bytes copied.
 
-[endsect]
 
+[heading Remarks]
+
+The number of bytes copied is the lesser of:
 
 
-[section:async_write_some buffered_read_stream::async_write_some]
+* `buffer_size(target)`
 
-[indexterm2 async_write_some..buffered_read_stream]
-Start an asynchronous write. The data being written must be valid for the lifetime of the asynchronous operation.
 
+* `buffer_size(source)`
 
- template<
- typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
- typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
- void async_write_some(
- const ConstBufferSequence & buffers,
- WriteHandler handler);
 
 
 
 [endsect]
 
 
-[section:buffered_read_stream buffered_read_stream::buffered_read_stream]
 
-[indexterm2 buffered_read_stream..buffered_read_stream]
-Construct, passing the specified argument to initialise the next layer.
+[section:overload11 buffer_copy (11 of 30 overloads)]
 
 
- template<
- typename Arg>
- explicit ``[link boost_asio.reference.buffered_read_stream.buffered_read_stream.overload1 buffered_read_stream]``(
- Arg & a);
- `` [''''&raquo;''' [link boost_asio.reference.buffered_read_stream.buffered_read_stream.overload1 more...]]``
+Copies bytes from a source buffer to a target buffer sequence.
 
- template<
- typename Arg>
- ``[link boost_asio.reference.buffered_read_stream.buffered_read_stream.overload2 buffered_read_stream]``(
- Arg & a,
- std::size_t buffer_size);
- `` [''''&raquo;''' [link boost_asio.reference.buffered_read_stream.buffered_read_stream.overload2 more...]]``
 
+ template<
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
+ std::size_t buffer_copy(
+ const MutableBufferSequence & target,
+ const const_buffer & source);
 
-[section:overload1 buffered_read_stream::buffered_read_stream (1 of 2 overloads)]
 
 
-Construct, passing the specified argument to initialise the next layer.
+[heading Parameters]
+
 
+[variablelist
+
+[[target][A modifiable buffer sequence representing the memory regions to which the bytes will be copied.]]
 
- template<
- typename Arg>
- buffered_read_stream(
- Arg & a);
+[[source][A non-modifiable buffer representing the memory region from which the bytes will be copied.]]
 
+]
 
 
-[endsect]
+[heading Return Value]
+
+The number of bytes copied.
 
 
+[heading Remarks]
+
+The number of bytes copied is the lesser of:
 
-[section:overload2 buffered_read_stream::buffered_read_stream (2 of 2 overloads)]
 
+* `buffer_size(target)`
 
-Construct, passing the specified argument to initialise the next layer.
 
+* `buffer_size(source)`
 
- template<
- typename Arg>
- buffered_read_stream(
- Arg & a,
- std::size_t buffer_size);
 
 
 
 [endsect]
 
 
-[endsect]
-
-[section:close buffered_read_stream::close]
 
-[indexterm2 close..buffered_read_stream]
-Close the stream.
+[section:overload12 buffer_copy (12 of 30 overloads)]
 
 
- void ``[link boost_asio.reference.buffered_read_stream.close.overload1 close]``();
- `` [''''&raquo;''' [link boost_asio.reference.buffered_read_stream.close.overload1 more...]]``
+Copies bytes from a source buffer to a target buffer sequence.
 
- boost::system::error_code ``[link boost_asio.reference.buffered_read_stream.close.overload2 close]``(
- boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.buffered_read_stream.close.overload2 more...]]``
 
+ template<
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
+ std::size_t buffer_copy(
+ const MutableBufferSequence & target,
+ const const_buffers_1 & source);
 
-[section:overload1 buffered_read_stream::close (1 of 2 overloads)]
 
 
-Close the stream.
+[heading Parameters]
+
 
+[variablelist
+
+[[target][A modifiable buffer sequence representing the memory regions to which the bytes will be copied.]]
 
- void close();
+[[source][A non-modifiable buffer representing the memory region from which the bytes will be copied.]]
 
+]
 
 
-[endsect]
+[heading Return Value]
+
+The number of bytes copied.
 
 
+[heading Remarks]
+
+The number of bytes copied is the lesser of:
 
-[section:overload2 buffered_read_stream::close (2 of 2 overloads)]
 
+* `buffer_size(target)`
 
-Close the stream.
 
+* `buffer_size(source)`
 
- boost::system::error_code close(
- boost::system::error_code & ec);
 
 
 
 [endsect]
 
 
-[endsect]
 
+[section:overload13 buffer_copy (13 of 30 overloads)]
 
-[section:default_buffer_size buffered_read_stream::default_buffer_size]
 
-[indexterm2 default_buffer_size..buffered_read_stream]
-The default buffer size.
+Copies bytes from a source buffer to a target buffer sequence.
 
 
- static const std::size_t default_buffer_size = implementation_defined;
+ template<
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
+ std::size_t buffer_copy(
+ const MutableBufferSequence & target,
+ const mutable_buffer & source);
 
 
 
-[endsect]
+[heading Parameters]
+
 
+[variablelist
+
+[[target][A modifiable buffer sequence representing the memory regions to which the bytes will be copied.]]
 
-[section:fill buffered_read_stream::fill]
+[[source][A modifiable buffer representing the memory region from which the bytes will be copied. The contents of the source buffer will not be modified.]]
 
-[indexterm2 fill..buffered_read_stream]
-Fill the buffer with some data. Returns the number of bytes placed in the buffer as a result of the operation. Throws an exception on failure.
+]
 
 
- std::size_t ``[link boost_asio.reference.buffered_read_stream.fill.overload1 fill]``();
- `` [''''&raquo;''' [link boost_asio.reference.buffered_read_stream.fill.overload1 more...]]``
+[heading Return Value]
+
+The number of bytes copied.
 
 
-Fill the buffer with some data. Returns the number of bytes placed in the buffer as a result of the operation, or 0 if an error occurred.
+[heading Remarks]
+
+The number of bytes copied is the lesser of:
 
 
- std::size_t ``[link boost_asio.reference.buffered_read_stream.fill.overload2 fill]``(
- boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.buffered_read_stream.fill.overload2 more...]]``
+* `buffer_size(target)`
 
 
-[section:overload1 buffered_read_stream::fill (1 of 2 overloads)]
+* `buffer_size(source)`
 
 
-Fill the buffer with some data. Returns the number of bytes placed in the buffer as a result of the operation. Throws an exception on failure.
 
 
- std::size_t fill();
+[endsect]
 
 
 
-[endsect]
+[section:overload14 buffer_copy (14 of 30 overloads)]
 
 
+Copies bytes from a source buffer to a target buffer sequence.
 
-[section:overload2 buffered_read_stream::fill (2 of 2 overloads)]
 
+ template<
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
+ std::size_t buffer_copy(
+ const MutableBufferSequence & target,
+ const mutable_buffers_1 & source);
 
-Fill the buffer with some data. Returns the number of bytes placed in the buffer as a result of the operation, or 0 if an error occurred.
 
 
- std::size_t fill(
- boost::system::error_code & ec);
+[heading Parameters]
+
 
+[variablelist
+
+[[target][A modifiable buffer sequence representing the memory regions to which the bytes will be copied.]]
 
+[[source][A modifiable buffer representing the memory region from which the bytes will be copied. The contents of the source buffer will not be modified.]]
 
-[endsect]
+]
 
 
-[endsect]
+[heading Return Value]
+
+The number of bytes copied.
 
 
-[section:get_io_service buffered_read_stream::get_io_service]
+[heading Remarks]
+
+The number of bytes copied is the lesser of:
 
-[indexterm2 get_io_service..buffered_read_stream]
-Get the [link boost_asio.reference.io_service `io_service`] associated with the object.
 
+* `buffer_size(target)`
 
- boost::asio::io_service & get_io_service();
 
+* `buffer_size(source)`
 
 
-[endsect]
 
 
-[section:in_avail buffered_read_stream::in_avail]
+[endsect]
 
-[indexterm2 in_avail..buffered_read_stream]
-Determine the amount of data that may be read without blocking.
 
 
- std::size_t ``[link boost_asio.reference.buffered_read_stream.in_avail.overload1 in_avail]``();
- `` [''''&raquo;''' [link boost_asio.reference.buffered_read_stream.in_avail.overload1 more...]]``
+[section:overload15 buffer_copy (15 of 30 overloads)]
 
- std::size_t ``[link boost_asio.reference.buffered_read_stream.in_avail.overload2 in_avail]``(
- boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.buffered_read_stream.in_avail.overload2 more...]]``
 
+Copies bytes from a source buffer sequence to a target buffer sequence.
 
-[section:overload1 buffered_read_stream::in_avail (1 of 2 overloads)]
 
+ template<
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
+ typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
+ std::size_t buffer_copy(
+ const MutableBufferSequence & target,
+ const ConstBufferSequence & source);
 
-Determine the amount of data that may be read without blocking.
 
 
- std::size_t in_avail();
+[heading Parameters]
+
 
+[variablelist
+
+[[target][A modifiable buffer sequence representing the memory regions to which the bytes will be copied.]]
 
+[[source][A non-modifiable buffer sequence representing the memory regions from which the bytes will be copied.]]
 
-[endsect]
+]
 
 
+[heading Return Value]
+
+The number of bytes copied.
 
-[section:overload2 buffered_read_stream::in_avail (2 of 2 overloads)]
 
+[heading Remarks]
+
+The number of bytes copied is the lesser of:
 
-Determine the amount of data that may be read without blocking.
 
+* `buffer_size(target)`
 
- std::size_t in_avail(
- boost::system::error_code & ec);
 
+* `buffer_size(source)`
 
 
-[endsect]
 
 
 [endsect]
 
-[section:lowest_layer buffered_read_stream::lowest_layer]
-
-[indexterm2 lowest_layer..buffered_read_stream]
-Get a reference to the lowest layer.
 
 
- lowest_layer_type & ``[link boost_asio.reference.buffered_read_stream.lowest_layer.overload1 lowest_layer]``();
- `` [''''&raquo;''' [link boost_asio.reference.buffered_read_stream.lowest_layer.overload1 more...]]``
+[section:overload16 buffer_copy (16 of 30 overloads)]
 
 
-Get a const reference to the lowest layer.
+Copies a limited number of bytes from a source buffer to a target buffer.
 
 
- const lowest_layer_type & ``[link boost_asio.reference.buffered_read_stream.lowest_layer.overload2 lowest_layer]``() const;
- `` [''''&raquo;''' [link boost_asio.reference.buffered_read_stream.lowest_layer.overload2 more...]]``
+ std::size_t buffer_copy(
+ const mutable_buffer & target,
+ const const_buffer & source,
+ std::size_t max_bytes_to_copy);
 
 
-[section:overload1 buffered_read_stream::lowest_layer (1 of 2 overloads)]
 
+[heading Parameters]
+
 
-Get a reference to the lowest layer.
+[variablelist
+
+[[target][A modifiable buffer representing the memory region to which the bytes will be copied.]]
 
+[[source][A non-modifiable buffer representing the memory region from which the bytes will be copied.]]
 
- lowest_layer_type & lowest_layer();
+[[max_bytes_to_copy][The maximum number of bytes to be copied.]]
 
+]
 
 
-[endsect]
+[heading Return Value]
+
+The number of bytes copied.
 
 
+[heading Remarks]
+
+The number of bytes copied is the lesser of:
 
-[section:overload2 buffered_read_stream::lowest_layer (2 of 2 overloads)]
 
+* `buffer_size(target)`
 
-Get a const reference to the lowest layer.
 
+* `buffer_size(source)`
 
- const lowest_layer_type & lowest_layer() const;
 
+* `max_bytes_to_copy`
 
 
-[endsect]
 
 
 [endsect]
 
 
-[section:lowest_layer_type buffered_read_stream::lowest_layer_type]
-
-[indexterm2 lowest_layer_type..buffered_read_stream]
-The type of the lowest layer.
-
-
- typedef next_layer_type::lowest_layer_type lowest_layer_type;
-
-
 
-[heading Requirements]
-
-[*Header: ][^boost/asio/buffered_read_stream.hpp]
+[section:overload17 buffer_copy (17 of 30 overloads)]
 
-[*Convenience header: ][^boost/asio.hpp]
 
+Copies a limited number of bytes from a source buffer to a target buffer.
 
-[endsect]
 
+ std::size_t buffer_copy(
+ const mutable_buffer & target,
+ const const_buffers_1 & source,
+ std::size_t max_bytes_to_copy);
 
 
-[section:next_layer buffered_read_stream::next_layer]
 
-[indexterm2 next_layer..buffered_read_stream]
-Get a reference to the next layer.
+[heading Parameters]
+
 
+[variablelist
+
+[[target][A modifiable buffer representing the memory region to which the bytes will be copied.]]
 
- next_layer_type & next_layer();
+[[source][A non-modifiable buffer representing the memory region from which the bytes will be copied.]]
 
+[[max_bytes_to_copy][The maximum number of bytes to be copied.]]
 
+]
 
-[endsect]
 
+[heading Return Value]
+
+The number of bytes copied.
 
 
-[section:next_layer_type buffered_read_stream::next_layer_type]
+[heading Remarks]
+
+The number of bytes copied is the lesser of:
 
-[indexterm2 next_layer_type..buffered_read_stream]
-The type of the next layer.
 
+* `buffer_size(target)`
 
- typedef boost::remove_reference< Stream >::type next_layer_type;
 
+* `buffer_size(source)`
 
 
-[heading Requirements]
+* `max_bytes_to_copy`
 
-[*Header: ][^boost/asio/buffered_read_stream.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
-[section:peek buffered_read_stream::peek]
-
-[indexterm2 peek..buffered_read_stream]
-Peek at the incoming data on the stream. Returns the number of bytes read. Throws an exception on failure.
-
 
- template<
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
- std::size_t ``[link boost_asio.reference.buffered_read_stream.peek.overload1 peek]``(
- const MutableBufferSequence & buffers);
- `` [''''&raquo;''' [link boost_asio.reference.buffered_read_stream.peek.overload1 more...]]``
+[section:overload18 buffer_copy (18 of 30 overloads)]
 
 
-Peek at the incoming data on the stream. Returns the number of bytes read, or 0 if an error occurred.
+Copies a limited number of bytes from a source buffer to a target buffer.
 
 
- template<
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
- std::size_t ``[link boost_asio.reference.buffered_read_stream.peek.overload2 peek]``(
- const MutableBufferSequence & buffers,
- boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.buffered_read_stream.peek.overload2 more...]]``
+ std::size_t buffer_copy(
+ const mutable_buffer & target,
+ const mutable_buffer & source,
+ std::size_t max_bytes_to_copy);
 
 
-[section:overload1 buffered_read_stream::peek (1 of 2 overloads)]
 
+[heading Parameters]
+
 
-Peek at the incoming data on the stream. Returns the number of bytes read. Throws an exception on failure.
+[variablelist
+
+[[target][A modifiable buffer representing the memory region to which the bytes will be copied.]]
 
+[[source][A modifiable buffer representing the memory region from which the bytes will be copied. The contents of the source buffer will not be modified.]]
 
- template<
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
- std::size_t peek(
- const MutableBufferSequence & buffers);
+[[max_bytes_to_copy][The maximum number of bytes to be copied.]]
 
+]
 
 
-[endsect]
+[heading Return Value]
+
+The number of bytes copied.
 
 
+[heading Remarks]
+
+The number of bytes copied is the lesser of:
 
-[section:overload2 buffered_read_stream::peek (2 of 2 overloads)]
 
+* `buffer_size(target)`
 
-Peek at the incoming data on the stream. Returns the number of bytes read, or 0 if an error occurred.
 
+* `buffer_size(source)`
 
- template<
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
- std::size_t peek(
- const MutableBufferSequence & buffers,
- boost::system::error_code & ec);
 
+* `max_bytes_to_copy`
 
 
-[endsect]
 
 
 [endsect]
 
-[section:read_some buffered_read_stream::read_some]
-
-[indexterm2 read_some..buffered_read_stream]
-Read some data from the stream. Returns the number of bytes read. Throws an exception on failure.
 
 
- template<
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
- std::size_t ``[link boost_asio.reference.buffered_read_stream.read_some.overload1 read_some]``(
- const MutableBufferSequence & buffers);
- `` [''''&raquo;''' [link boost_asio.reference.buffered_read_stream.read_some.overload1 more...]]``
+[section:overload19 buffer_copy (19 of 30 overloads)]
 
 
-Read some data from the stream. Returns the number of bytes read or 0 if an error occurred.
+Copies a limited number of bytes from a source buffer to a target buffer.
 
 
- template<
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
- std::size_t ``[link boost_asio.reference.buffered_read_stream.read_some.overload2 read_some]``(
- const MutableBufferSequence & buffers,
- boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.buffered_read_stream.read_some.overload2 more...]]``
+ std::size_t buffer_copy(
+ const mutable_buffer & target,
+ const mutable_buffers_1 & source,
+ std::size_t max_bytes_to_copy);
 
 
-[section:overload1 buffered_read_stream::read_some (1 of 2 overloads)]
 
+[heading Parameters]
+
 
-Read some data from the stream. Returns the number of bytes read. Throws an exception on failure.
+[variablelist
+
+[[target][A modifiable buffer representing the memory region to which the bytes will be copied.]]
 
+[[source][A modifiable buffer representing the memory region from which the bytes will be copied. The contents of the source buffer will not be modified.]]
 
- template<
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
- std::size_t read_some(
- const MutableBufferSequence & buffers);
+[[max_bytes_to_copy][The maximum number of bytes to be copied.]]
 
+]
 
 
-[endsect]
+[heading Return Value]
+
+The number of bytes copied.
 
 
+[heading Remarks]
+
+The number of bytes copied is the lesser of:
 
-[section:overload2 buffered_read_stream::read_some (2 of 2 overloads)]
 
+* `buffer_size(target)`
 
-Read some data from the stream. Returns the number of bytes read or 0 if an error occurred.
 
+* `buffer_size(source)`
 
- template<
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
- std::size_t read_some(
- const MutableBufferSequence & buffers,
- boost::system::error_code & ec);
 
+* `max_bytes_to_copy`
 
 
-[endsect]
 
 
 [endsect]
 
-[section:write_some buffered_read_stream::write_some]
-
-[indexterm2 write_some..buffered_read_stream]
-Write the given data to the stream. Returns the number of bytes written. Throws an exception on failure.
 
 
- template<
- typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
- std::size_t ``[link boost_asio.reference.buffered_read_stream.write_some.overload1 write_some]``(
- const ConstBufferSequence & buffers);
- `` [''''&raquo;''' [link boost_asio.reference.buffered_read_stream.write_some.overload1 more...]]``
+[section:overload20 buffer_copy (20 of 30 overloads)]
 
 
-Write the given data to the stream. Returns the number of bytes written, or 0 if an error occurred.
+Copies a limited number of bytes from a source buffer sequence to a target buffer.
 
 
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
- std::size_t ``[link boost_asio.reference.buffered_read_stream.write_some.overload2 write_some]``(
- const ConstBufferSequence & buffers,
- boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.buffered_read_stream.write_some.overload2 more...]]``
+ std::size_t buffer_copy(
+ const mutable_buffer & target,
+ const ConstBufferSequence & source,
+ std::size_t max_bytes_to_copy);
 
 
-[section:overload1 buffered_read_stream::write_some (1 of 2 overloads)]
 
+[heading Parameters]
+
 
-Write the given data to the stream. Returns the number of bytes written. Throws an exception on failure.
+[variablelist
+
+[[target][A modifiable buffer representing the memory region to which the bytes will be copied.]]
 
+[[source][A non-modifiable buffer sequence representing the memory regions from which the bytes will be copied.]]
 
- template<
- typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
- std::size_t write_some(
- const ConstBufferSequence & buffers);
+[[max_bytes_to_copy][The maximum number of bytes to be copied.]]
 
+]
 
 
-[endsect]
+[heading Return Value]
+
+The number of bytes copied.
 
 
+[heading Remarks]
+
+The number of bytes copied is the lesser of:
 
-[section:overload2 buffered_read_stream::write_some (2 of 2 overloads)]
 
+* `buffer_size(target)`
 
-Write the given data to the stream. Returns the number of bytes written, or 0 if an error occurred.
 
+* `buffer_size(source)`
 
- template<
- typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
- std::size_t write_some(
- const ConstBufferSequence & buffers,
- boost::system::error_code & ec);
 
+* `max_bytes_to_copy`
 
 
-[endsect]
 
 
 [endsect]
 
 
-[endsect]
 
-[section:buffered_stream buffered_stream]
+[section:overload21 buffer_copy (21 of 30 overloads)]
 
 
-Adds buffering to the read- and write-related operations of a stream.
+Copies a limited number of bytes from a source buffer to a target buffer.
 
 
- template<
- typename Stream>
- class buffered_stream :
- noncopyable
+ std::size_t buffer_copy(
+ const mutable_buffers_1 & target,
+ const const_buffer & source,
+ std::size_t max_bytes_to_copy);
 
 
-[heading Types]
-[table
- [[Name][Description]]
 
- [
+[heading Parameters]
+
 
- [[link boost_asio.reference.buffered_stream.lowest_layer_type [*lowest_layer_type]]]
- [The type of the lowest layer. ]
+[variablelist
   
- ]
+[[target][A modifiable buffer representing the memory region to which the bytes will be copied.]]
 
- [
+[[source][A non-modifiable buffer representing the memory region from which the bytes will be copied.]]
 
- [[link boost_asio.reference.buffered_stream.next_layer_type [*next_layer_type]]]
- [The type of the next layer. ]
-
- ]
+[[max_bytes_to_copy][The maximum number of bytes to be copied.]]
 
 ]
 
-[heading Member Functions]
-[table
- [[Name][Description]]
-
- [
- [[link boost_asio.reference.buffered_stream.async_fill [*async_fill]]]
- [Start an asynchronous fill. ]
- ]
-
- [
- [[link boost_asio.reference.buffered_stream.async_flush [*async_flush]]]
- [Start an asynchronous flush. ]
- ]
-
- [
- [[link boost_asio.reference.buffered_stream.async_read_some [*async_read_some]]]
- [Start an asynchronous read. The buffer into which the data will be read must be valid for the lifetime of the asynchronous operation. ]
- ]
-
- [
- [[link boost_asio.reference.buffered_stream.async_write_some [*async_write_some]]]
- [Start an asynchronous write. The data being written must be valid for the lifetime of the asynchronous operation. ]
- ]
-
- [
- [[link boost_asio.reference.buffered_stream.buffered_stream [*buffered_stream]]]
- [Construct, passing the specified argument to initialise the next layer. ]
- ]
-
- [
- [[link boost_asio.reference.buffered_stream.close [*close]]]
- [Close the stream. ]
- ]
-
- [
- [[link boost_asio.reference.buffered_stream.fill [*fill]]]
- [Fill the buffer with some data. Returns the number of bytes placed in the buffer as a result of the operation. Throws an exception on failure.
-
- Fill the buffer with some data. Returns the number of bytes placed in the buffer as a result of the operation, or 0 if an error occurred. ]
- ]
-
- [
- [[link boost_asio.reference.buffered_stream.flush [*flush]]]
- [Flush all data from the buffer to the next layer. Returns the number of bytes written to the next layer on the last write operation. Throws an exception on failure.
 
- Flush all data from the buffer to the next layer. Returns the number of bytes written to the next layer on the last write operation, or 0 if an error occurred. ]
- ]
-
- [
- [[link boost_asio.reference.buffered_stream.get_io_service [*get_io_service]]]
- [Get the io_service associated with the object. ]
- ]
-
- [
- [[link boost_asio.reference.buffered_stream.in_avail [*in_avail]]]
- [Determine the amount of data that may be read without blocking. ]
- ]
-
- [
- [[link boost_asio.reference.buffered_stream.lowest_layer [*lowest_layer]]]
- [Get a reference to the lowest layer.
+[heading Return Value]
+
+The number of bytes copied.
 
- Get a const reference to the lowest layer. ]
- ]
-
- [
- [[link boost_asio.reference.buffered_stream.next_layer [*next_layer]]]
- [Get a reference to the next layer. ]
- ]
-
- [
- [[link boost_asio.reference.buffered_stream.peek [*peek]]]
- [Peek at the incoming data on the stream. Returns the number of bytes read. Throws an exception on failure.
 
- Peek at the incoming data on the stream. Returns the number of bytes read, or 0 if an error occurred. ]
- ]
-
- [
- [[link boost_asio.reference.buffered_stream.read_some [*read_some]]]
- [Read some data from the stream. Returns the number of bytes read. Throws an exception on failure.
+[heading Remarks]
+
+The number of bytes copied is the lesser of:
 
- Read some data from the stream. Returns the number of bytes read or 0 if an error occurred. ]
- ]
-
- [
- [[link boost_asio.reference.buffered_stream.write_some [*write_some]]]
- [Write the given data to the stream. Returns the number of bytes written. Throws an exception on failure.
 
- Write the given data to the stream. Returns the number of bytes written, or 0 if an error occurred. ]
- ]
-
-]
+* `buffer_size(target)`
 
-The [link boost_asio.reference.buffered_stream `buffered_stream`] class template can be used to add buffering to the synchronous and asynchronous read and write operations of a stream.
 
+* `buffer_size(source)`
 
-[heading Thread Safety]
-
-[*Distinct] [*objects:] Safe.
 
-[*Shared] [*objects:] Unsafe.
+* `max_bytes_to_copy`
 
 
 
 
-[heading Requirements]
+[endsect]
 
-[*Header: ][^boost/asio/buffered_stream.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
 
+[section:overload22 buffer_copy (22 of 30 overloads)]
 
-[section:async_fill buffered_stream::async_fill]
 
-[indexterm2 async_fill..buffered_stream]
-Start an asynchronous fill.
+Copies a limited number of bytes from a source buffer to a target buffer.
 
 
- template<
- typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void async_fill(
- ReadHandler handler);
+ std::size_t buffer_copy(
+ const mutable_buffers_1 & target,
+ const const_buffers_1 & source,
+ std::size_t max_bytes_to_copy);
 
 
 
-[endsect]
+[heading Parameters]
+
 
+[variablelist
+
+[[target][A modifiable buffer representing the memory region to which the bytes will be copied.]]
 
+[[source][A non-modifiable buffer representing the memory region from which the bytes will be copied.]]
 
-[section:async_flush buffered_stream::async_flush]
+[[max_bytes_to_copy][The maximum number of bytes to be copied.]]
 
-[indexterm2 async_flush..buffered_stream]
-Start an asynchronous flush.
+]
 
 
- template<
- typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
- void async_flush(
- WriteHandler handler);
+[heading Return Value]
+
+The number of bytes copied.
 
 
+[heading Remarks]
+
+The number of bytes copied is the lesser of:
 
-[endsect]
 
+* `buffer_size(target)`
 
 
-[section:async_read_some buffered_stream::async_read_some]
+* `buffer_size(source)`
 
-[indexterm2 async_read_some..buffered_stream]
-Start an asynchronous read. The buffer into which the data will be read must be valid for the lifetime of the asynchronous operation.
 
+* `max_bytes_to_copy`
 
- template<
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
- typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void async_read_some(
- const MutableBufferSequence & buffers,
- ReadHandler handler);
 
 
 
@@ -47043,355 +46895,373 @@
 
 
 
-[section:async_write_some buffered_stream::async_write_some]
-
-[indexterm2 async_write_some..buffered_stream]
-Start an asynchronous write. The data being written must be valid for the lifetime of the asynchronous operation.
-
-
- template<
- typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
- typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
- void async_write_some(
- const ConstBufferSequence & buffers,
- WriteHandler handler);
-
-
-
-[endsect]
+[section:overload23 buffer_copy (23 of 30 overloads)]
 
 
-[section:buffered_stream buffered_stream::buffered_stream]
+Copies a limited number of bytes from a source buffer to a target buffer.
 
-[indexterm2 buffered_stream..buffered_stream]
-Construct, passing the specified argument to initialise the next layer.
 
+ std::size_t buffer_copy(
+ const mutable_buffers_1 & target,
+ const mutable_buffer & source,
+ std::size_t max_bytes_to_copy);
 
- template<
- typename Arg>
- explicit ``[link boost_asio.reference.buffered_stream.buffered_stream.overload1 buffered_stream]``(
- Arg & a);
- `` [''''&raquo;''' [link boost_asio.reference.buffered_stream.buffered_stream.overload1 more...]]``
 
- template<
- typename Arg>
- explicit ``[link boost_asio.reference.buffered_stream.buffered_stream.overload2 buffered_stream]``(
- Arg & a,
- std::size_t read_buffer_size,
- std::size_t write_buffer_size);
- `` [''''&raquo;''' [link boost_asio.reference.buffered_stream.buffered_stream.overload2 more...]]``
 
+[heading Parameters]
+
 
-[section:overload1 buffered_stream::buffered_stream (1 of 2 overloads)]
+[variablelist
+
+[[target][A modifiable buffer representing the memory region to which the bytes will be copied.]]
 
+[[source][A modifiable buffer representing the memory region from which the bytes will be copied. The contents of the source buffer will not be modified.]]
 
-Construct, passing the specified argument to initialise the next layer.
+[[max_bytes_to_copy][The maximum number of bytes to be copied.]]
 
+]
 
- template<
- typename Arg>
- buffered_stream(
- Arg & a);
 
+[heading Return Value]
+
+The number of bytes copied.
 
 
-[endsect]
+[heading Remarks]
+
+The number of bytes copied is the lesser of:
 
 
+* `buffer_size(target)`
 
-[section:overload2 buffered_stream::buffered_stream (2 of 2 overloads)]
 
+* `buffer_size(source)`
 
-Construct, passing the specified argument to initialise the next layer.
 
+* `max_bytes_to_copy`
 
- template<
- typename Arg>
- buffered_stream(
- Arg & a,
- std::size_t read_buffer_size,
- std::size_t write_buffer_size);
 
 
 
 [endsect]
 
 
-[endsect]
 
-[section:close buffered_stream::close]
+[section:overload24 buffer_copy (24 of 30 overloads)]
 
-[indexterm2 close..buffered_stream]
-Close the stream.
 
+Copies a limited number of bytes from a source buffer to a target buffer.
 
- void ``[link boost_asio.reference.buffered_stream.close.overload1 close]``();
- `` [''''&raquo;''' [link boost_asio.reference.buffered_stream.close.overload1 more...]]``
 
- boost::system::error_code ``[link boost_asio.reference.buffered_stream.close.overload2 close]``(
- boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.buffered_stream.close.overload2 more...]]``
+ std::size_t buffer_copy(
+ const mutable_buffers_1 & target,
+ const mutable_buffers_1 & source,
+ std::size_t max_bytes_to_copy);
 
 
-[section:overload1 buffered_stream::close (1 of 2 overloads)]
 
+[heading Parameters]
+
 
-Close the stream.
+[variablelist
+
+[[target][A modifiable buffer representing the memory region to which the bytes will be copied.]]
 
+[[source][A modifiable buffer representing the memory region from which the bytes will be copied. The contents of the source buffer will not be modified.]]
 
- void close();
+[[max_bytes_to_copy][The maximum number of bytes to be copied.]]
 
+]
 
 
-[endsect]
+[heading Return Value]
+
+The number of bytes copied.
 
 
+[heading Remarks]
+
+The number of bytes copied is the lesser of:
 
-[section:overload2 buffered_stream::close (2 of 2 overloads)]
 
+* `buffer_size(target)`
 
-Close the stream.
 
+* `buffer_size(source)`
 
- boost::system::error_code close(
- boost::system::error_code & ec);
 
+* `max_bytes_to_copy`
 
 
-[endsect]
 
 
 [endsect]
 
-[section:fill buffered_stream::fill]
-
-[indexterm2 fill..buffered_stream]
-Fill the buffer with some data. Returns the number of bytes placed in the buffer as a result of the operation. Throws an exception on failure.
 
 
- std::size_t ``[link boost_asio.reference.buffered_stream.fill.overload1 fill]``();
- `` [''''&raquo;''' [link boost_asio.reference.buffered_stream.fill.overload1 more...]]``
+[section:overload25 buffer_copy (25 of 30 overloads)]
 
 
-Fill the buffer with some data. Returns the number of bytes placed in the buffer as a result of the operation, or 0 if an error occurred.
+Copies a limited number of bytes from a source buffer sequence to a target buffer.
 
 
- std::size_t ``[link boost_asio.reference.buffered_stream.fill.overload2 fill]``(
- boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.buffered_stream.fill.overload2 more...]]``
+ template<
+ typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
+ std::size_t buffer_copy(
+ const mutable_buffers_1 & target,
+ const ConstBufferSequence & source,
+ std::size_t max_bytes_to_copy);
 
 
-[section:overload1 buffered_stream::fill (1 of 2 overloads)]
 
+[heading Parameters]
+
 
-Fill the buffer with some data. Returns the number of bytes placed in the buffer as a result of the operation. Throws an exception on failure.
+[variablelist
+
+[[target][A modifiable buffer representing the memory region to which the bytes will be copied.]]
 
+[[source][A non-modifiable buffer sequence representing the memory regions from which the bytes will be copied.]]
 
- std::size_t fill();
+[[max_bytes_to_copy][The maximum number of bytes to be copied.]]
 
+]
 
 
-[endsect]
+[heading Return Value]
+
+The number of bytes copied.
 
 
+[heading Remarks]
+
+The number of bytes copied is the lesser of:
 
-[section:overload2 buffered_stream::fill (2 of 2 overloads)]
 
+* `buffer_size(target)`
 
-Fill the buffer with some data. Returns the number of bytes placed in the buffer as a result of the operation, or 0 if an error occurred.
 
+* `buffer_size(source)`
 
- std::size_t fill(
- boost::system::error_code & ec);
 
+* `max_bytes_to_copy`
 
 
-[endsect]
 
 
 [endsect]
 
-[section:flush buffered_stream::flush]
-
-[indexterm2 flush..buffered_stream]
-Flush all data from the buffer to the next layer. Returns the number of bytes written to the next layer on the last write operation. Throws an exception on failure.
 
 
- std::size_t ``[link boost_asio.reference.buffered_stream.flush.overload1 flush]``();
- `` [''''&raquo;''' [link boost_asio.reference.buffered_stream.flush.overload1 more...]]``
+[section:overload26 buffer_copy (26 of 30 overloads)]
 
 
-Flush all data from the buffer to the next layer. Returns the number of bytes written to the next layer on the last write operation, or 0 if an error occurred.
+Copies a limited number of bytes from a source buffer to a target buffer sequence.
 
 
- std::size_t ``[link boost_asio.reference.buffered_stream.flush.overload2 flush]``(
- boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.buffered_stream.flush.overload2 more...]]``
+ template<
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
+ std::size_t buffer_copy(
+ const MutableBufferSequence & target,
+ const const_buffer & source,
+ std::size_t max_bytes_to_copy);
 
 
-[section:overload1 buffered_stream::flush (1 of 2 overloads)]
 
+[heading Parameters]
+
 
-Flush all data from the buffer to the next layer. Returns the number of bytes written to the next layer on the last write operation. Throws an exception on failure.
+[variablelist
+
+[[target][A modifiable buffer sequence representing the memory regions to which the bytes will be copied.]]
 
+[[source][A non-modifiable buffer representing the memory region from which the bytes will be copied.]]
 
- std::size_t flush();
+[[max_bytes_to_copy][The maximum number of bytes to be copied.]]
 
+]
 
 
-[endsect]
+[heading Return Value]
+
+The number of bytes copied.
 
 
+[heading Remarks]
+
+The number of bytes copied is the lesser of:
 
-[section:overload2 buffered_stream::flush (2 of 2 overloads)]
 
+* `buffer_size(target)`
 
-Flush all data from the buffer to the next layer. Returns the number of bytes written to the next layer on the last write operation, or 0 if an error occurred.
 
+* `buffer_size(source)`
 
- std::size_t flush(
- boost::system::error_code & ec);
 
+* `max_bytes_to_copy`
 
 
-[endsect]
 
 
 [endsect]
 
 
-[section:get_io_service buffered_stream::get_io_service]
-
-[indexterm2 get_io_service..buffered_stream]
-Get the [link boost_asio.reference.io_service `io_service`] associated with the object.
 
+[section:overload27 buffer_copy (27 of 30 overloads)]
 
- boost::asio::io_service & get_io_service();
 
+Copies a limited number of bytes from a source buffer to a target buffer sequence.
 
 
-[endsect]
+ template<
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
+ std::size_t buffer_copy(
+ const MutableBufferSequence & target,
+ const const_buffers_1 & source,
+ std::size_t max_bytes_to_copy);
 
 
-[section:in_avail buffered_stream::in_avail]
 
-[indexterm2 in_avail..buffered_stream]
-Determine the amount of data that may be read without blocking.
+[heading Parameters]
+
 
+[variablelist
+
+[[target][A modifiable buffer sequence representing the memory regions to which the bytes will be copied.]]
 
- std::size_t ``[link boost_asio.reference.buffered_stream.in_avail.overload1 in_avail]``();
- `` [''''&raquo;''' [link boost_asio.reference.buffered_stream.in_avail.overload1 more...]]``
+[[source][A non-modifiable buffer representing the memory region from which the bytes will be copied.]]
 
- std::size_t ``[link boost_asio.reference.buffered_stream.in_avail.overload2 in_avail]``(
- boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.buffered_stream.in_avail.overload2 more...]]``
+[[max_bytes_to_copy][The maximum number of bytes to be copied.]]
 
+]
 
-[section:overload1 buffered_stream::in_avail (1 of 2 overloads)]
 
+[heading Return Value]
+
+The number of bytes copied.
 
-Determine the amount of data that may be read without blocking.
 
+[heading Remarks]
+
+The number of bytes copied is the lesser of:
 
- std::size_t in_avail();
 
+* `buffer_size(target)`
 
 
-[endsect]
+* `buffer_size(source)`
 
 
+* `max_bytes_to_copy`
 
-[section:overload2 buffered_stream::in_avail (2 of 2 overloads)]
 
 
-Determine the amount of data that may be read without blocking.
 
+[endsect]
 
- std::size_t in_avail(
- boost::system::error_code & ec);
 
 
+[section:overload28 buffer_copy (28 of 30 overloads)]
 
-[endsect]
 
+Copies a limited number of bytes from a source buffer to a target buffer sequence.
 
-[endsect]
 
-[section:lowest_layer buffered_stream::lowest_layer]
+ template<
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
+ std::size_t buffer_copy(
+ const MutableBufferSequence & target,
+ const mutable_buffer & source,
+ std::size_t max_bytes_to_copy);
 
-[indexterm2 lowest_layer..buffered_stream]
-Get a reference to the lowest layer.
 
 
- lowest_layer_type & ``[link boost_asio.reference.buffered_stream.lowest_layer.overload1 lowest_layer]``();
- `` [''''&raquo;''' [link boost_asio.reference.buffered_stream.lowest_layer.overload1 more...]]``
+[heading Parameters]
+
 
+[variablelist
+
+[[target][A modifiable buffer sequence representing the memory regions to which the bytes will be copied.]]
 
-Get a const reference to the lowest layer.
+[[source][A modifiable buffer representing the memory region from which the bytes will be copied. The contents of the source buffer will not be modified.]]
 
+[[max_bytes_to_copy][The maximum number of bytes to be copied.]]
 
- const lowest_layer_type & ``[link boost_asio.reference.buffered_stream.lowest_layer.overload2 lowest_layer]``() const;
- `` [''''&raquo;''' [link boost_asio.reference.buffered_stream.lowest_layer.overload2 more...]]``
+]
 
 
-[section:overload1 buffered_stream::lowest_layer (1 of 2 overloads)]
+[heading Return Value]
+
+The number of bytes copied.
 
 
-Get a reference to the lowest layer.
+[heading Remarks]
+
+The number of bytes copied is the lesser of:
 
 
- lowest_layer_type & lowest_layer();
+* `buffer_size(target)`
 
 
+* `buffer_size(source)`
 
-[endsect]
 
+* `max_bytes_to_copy`
 
 
-[section:overload2 buffered_stream::lowest_layer (2 of 2 overloads)]
 
 
-Get a const reference to the lowest layer.
+[endsect]
 
 
- const lowest_layer_type & lowest_layer() const;
 
+[section:overload29 buffer_copy (29 of 30 overloads)]
 
 
-[endsect]
+Copies a limited number of bytes from a source buffer to a target buffer sequence.
 
 
-[endsect]
+ template<
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
+ std::size_t buffer_copy(
+ const MutableBufferSequence & target,
+ const mutable_buffers_1 & source,
+ std::size_t max_bytes_to_copy);
 
 
-[section:lowest_layer_type buffered_stream::lowest_layer_type]
 
-[indexterm2 lowest_layer_type..buffered_stream]
-The type of the lowest layer.
+[heading Parameters]
+
 
+[variablelist
+
+[[target][A modifiable buffer sequence representing the memory regions to which the bytes will be copied.]]
 
- typedef next_layer_type::lowest_layer_type lowest_layer_type;
+[[source][A modifiable buffer representing the memory region from which the bytes will be copied. The contents of the source buffer will not be modified.]]
 
+[[max_bytes_to_copy][The maximum number of bytes to be copied.]]
 
+]
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/buffered_stream.hpp]
+[heading Return Value]
+
+The number of bytes copied.
 
-[*Convenience header: ][^boost/asio.hpp]
 
+[heading Remarks]
+
+The number of bytes copied is the lesser of:
 
-[endsect]
 
+* `buffer_size(target)`
 
 
-[section:next_layer buffered_stream::next_layer]
+* `buffer_size(source)`
 
-[indexterm2 next_layer..buffered_stream]
-Get a reference to the next layer.
 
+* `max_bytes_to_copy`
 
- next_layer_type & next_layer();
 
 
 
@@ -47399,120 +47269,120 @@
 
 
 
-[section:next_layer_type buffered_stream::next_layer_type]
-
-[indexterm2 next_layer_type..buffered_stream]
-The type of the next layer.
+[section:overload30 buffer_copy (30 of 30 overloads)]
 
 
- typedef boost::remove_reference< Stream >::type next_layer_type;
+Copies a limited number of bytes from a source buffer sequence to a target buffer sequence.
 
 
+ template<
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
+ typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
+ std::size_t buffer_copy(
+ const MutableBufferSequence & target,
+ const ConstBufferSequence & source,
+ std::size_t max_bytes_to_copy);
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/buffered_stream.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
+[heading Parameters]
+
 
+[variablelist
+
+[[target][A modifiable buffer sequence representing the memory regions to which the bytes will be copied.]]
 
-[endsect]
+[[source][A non-modifiable buffer sequence representing the memory regions from which the bytes will be copied.]]
 
+[[max_bytes_to_copy][The maximum number of bytes to be copied.]]
 
-[section:peek buffered_stream::peek]
+]
 
-[indexterm2 peek..buffered_stream]
-Peek at the incoming data on the stream. Returns the number of bytes read. Throws an exception on failure.
 
+[heading Return Value]
+
+The number of bytes copied.
 
- template<
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
- std::size_t ``[link boost_asio.reference.buffered_stream.peek.overload1 peek]``(
- const MutableBufferSequence & buffers);
- `` [''''&raquo;''' [link boost_asio.reference.buffered_stream.peek.overload1 more...]]``
 
+[heading Remarks]
+
+The number of bytes copied is the lesser of:
 
-Peek at the incoming data on the stream. Returns the number of bytes read, or 0 if an error occurred.
 
+* `buffer_size(target)`
 
- template<
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
- std::size_t ``[link boost_asio.reference.buffered_stream.peek.overload2 peek]``(
- const MutableBufferSequence & buffers,
- boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.buffered_stream.peek.overload2 more...]]``
 
+* `buffer_size(source)`
 
-[section:overload1 buffered_stream::peek (1 of 2 overloads)]
 
+* `max_bytes_to_copy`
 
-Peek at the incoming data on the stream. Returns the number of bytes read. Throws an exception on failure.
 
 
- template<
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
- std::size_t peek(
- const MutableBufferSequence & buffers);
 
+[endsect]
 
 
 [endsect]
 
+[section:buffer_size buffer_size]
 
+[indexterm1 buffer_size]
+The `boost::asio::buffer_size` function determines the total number of bytes in a buffer or buffer sequence.
 
-[section:overload2 buffered_stream::peek (2 of 2 overloads)]
+
+ std::size_t ``[link boost_asio.reference.buffer_size.overload1 buffer_size]``(
+ const mutable_buffer & b);
+ `` [''''&raquo;''' [link boost_asio.reference.buffer_size.overload1 more...]]``
 
+ std::size_t ``[link boost_asio.reference.buffer_size.overload2 buffer_size]``(
+ const mutable_buffers_1 & b);
+ `` [''''&raquo;''' [link boost_asio.reference.buffer_size.overload2 more...]]``
 
-Peek at the incoming data on the stream. Returns the number of bytes read, or 0 if an error occurred.
+ std::size_t ``[link boost_asio.reference.buffer_size.overload3 buffer_size]``(
+ const const_buffer & b);
+ `` [''''&raquo;''' [link boost_asio.reference.buffer_size.overload3 more...]]``
 
+ std::size_t ``[link boost_asio.reference.buffer_size.overload4 buffer_size]``(
+ const const_buffers_1 & b);
+ `` [''''&raquo;''' [link boost_asio.reference.buffer_size.overload4 more...]]``
 
   template<
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
- std::size_t peek(
- const MutableBufferSequence & buffers,
- boost::system::error_code & ec);
+ typename BufferSequence>
+ std::size_t ``[link boost_asio.reference.buffer_size.overload5 buffer_size]``(
+ const BufferSequence & b);
+ `` [''''&raquo;''' [link boost_asio.reference.buffer_size.overload5 more...]]``
 
+[heading Requirements]
 
+[*Header: ][^boost/asio/buffer.hpp]
 
-[endsect]
+[*Convenience header: ][^boost/asio.hpp]
 
 
-[endsect]
+[section:overload1 buffer_size (1 of 5 overloads)]
 
-[section:read_some buffered_stream::read_some]
 
-[indexterm2 read_some..buffered_stream]
-Read some data from the stream. Returns the number of bytes read. Throws an exception on failure.
+Get the number of bytes in a modifiable buffer.
 
 
- template<
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
- std::size_t ``[link boost_asio.reference.buffered_stream.read_some.overload1 read_some]``(
- const MutableBufferSequence & buffers);
- `` [''''&raquo;''' [link boost_asio.reference.buffered_stream.read_some.overload1 more...]]``
+ std::size_t buffer_size(
+ const mutable_buffer & b);
 
 
-Read some data from the stream. Returns the number of bytes read or 0 if an error occurred.
 
+[endsect]
 
- template<
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
- std::size_t ``[link boost_asio.reference.buffered_stream.read_some.overload2 read_some]``(
- const MutableBufferSequence & buffers,
- boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.buffered_stream.read_some.overload2 more...]]``
 
 
-[section:overload1 buffered_stream::read_some (1 of 2 overloads)]
+[section:overload2 buffer_size (2 of 5 overloads)]
 
 
-Read some data from the stream. Returns the number of bytes read. Throws an exception on failure.
+Get the number of bytes in a modifiable buffer.
 
 
- template<
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
- std::size_t read_some(
- const MutableBufferSequence & buffers);
+ std::size_t buffer_size(
+ const mutable_buffers_1 & b);
 
 
 
@@ -47520,59 +47390,29 @@
 
 
 
-[section:overload2 buffered_stream::read_some (2 of 2 overloads)]
-
-
-Read some data from the stream. Returns the number of bytes read or 0 if an error occurred.
+[section:overload3 buffer_size (3 of 5 overloads)]
 
 
- template<
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
- std::size_t read_some(
- const MutableBufferSequence & buffers,
- boost::system::error_code & ec);
+Get the number of bytes in a non-modifiable buffer.
 
 
+ std::size_t buffer_size(
+ const const_buffer & b);
 
-[endsect]
 
 
 [endsect]
 
-[section:write_some buffered_stream::write_some]
-
-[indexterm2 write_some..buffered_stream]
-Write the given data to the stream. Returns the number of bytes written. Throws an exception on failure.
-
-
- template<
- typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
- std::size_t ``[link boost_asio.reference.buffered_stream.write_some.overload1 write_some]``(
- const ConstBufferSequence & buffers);
- `` [''''&raquo;''' [link boost_asio.reference.buffered_stream.write_some.overload1 more...]]``
-
-
-Write the given data to the stream. Returns the number of bytes written, or 0 if an error occurred.
-
 
- template<
- typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
- std::size_t ``[link boost_asio.reference.buffered_stream.write_some.overload2 write_some]``(
- const ConstBufferSequence & buffers,
- boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.buffered_stream.write_some.overload2 more...]]``
 
-
-[section:overload1 buffered_stream::write_some (1 of 2 overloads)]
+[section:overload4 buffer_size (4 of 5 overloads)]
 
 
-Write the given data to the stream. Returns the number of bytes written. Throws an exception on failure.
+Get the number of bytes in a non-modifiable buffer.
 
 
- template<
- typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
- std::size_t write_some(
- const ConstBufferSequence & buffers);
+ std::size_t buffer_size(
+ const const_buffers_1 & b);
 
 
 
@@ -47580,21 +47420,19 @@
 
 
 
-[section:overload2 buffered_stream::write_some (2 of 2 overloads)]
+[section:overload5 buffer_size (5 of 5 overloads)]
 
 
-Write the given data to the stream. Returns the number of bytes written, or 0 if an error occurred.
+Get the total number of bytes in a buffer sequence.
 
 
   template<
- typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
- std::size_t write_some(
- const ConstBufferSequence & buffers,
- boost::system::error_code & ec);
-
+ typename BufferSequence>
+ std::size_t buffer_size(
+ const BufferSequence & b);
 
 
-[endsect]
+The `BufferSequence` template parameter may meet either of the `ConstBufferSequence` or `MutableBufferSequence` type requirements.
 
 
 [endsect]
@@ -47602,15 +47440,15 @@
 
 [endsect]
 
-[section:buffered_write_stream buffered_write_stream]
+[section:buffered_read_stream buffered_read_stream]
 
 
-Adds buffering to the write-related operations of a stream.
+Adds buffering to the read-related operations of a stream.
 
 
   template<
       typename Stream>
- class buffered_write_stream :
+ class buffered_read_stream :
     noncopyable
 
 
@@ -47620,14 +47458,14 @@
 
   [
 
- [[link boost_asio.reference.buffered_write_stream.lowest_layer_type [*lowest_layer_type]]]
+ [[link boost_asio.reference.buffered_read_stream.lowest_layer_type [*lowest_layer_type]]]
     [The type of the lowest layer. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.buffered_write_stream.next_layer_type [*next_layer_type]]]
+ [[link boost_asio.reference.buffered_read_stream.next_layer_type [*next_layer_type]]]
     [The type of the next layer. ]
   
   ]
@@ -47639,78 +47477,78 @@
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.buffered_write_stream.async_flush [*async_flush]]]
- [Start an asynchronous flush. ]
+ [[link boost_asio.reference.buffered_read_stream.async_fill [*async_fill]]]
+ [Start an asynchronous fill. ]
   ]
   
   [
- [[link boost_asio.reference.buffered_write_stream.async_read_some [*async_read_some]]]
+ [[link boost_asio.reference.buffered_read_stream.async_read_some [*async_read_some]]]
     [Start an asynchronous read. The buffer into which the data will be read must be valid for the lifetime of the asynchronous operation. ]
   ]
   
   [
- [[link boost_asio.reference.buffered_write_stream.async_write_some [*async_write_some]]]
+ [[link boost_asio.reference.buffered_read_stream.async_write_some [*async_write_some]]]
     [Start an asynchronous write. The data being written must be valid for the lifetime of the asynchronous operation. ]
   ]
   
   [
- [[link boost_asio.reference.buffered_write_stream.buffered_write_stream [*buffered_write_stream]]]
+ [[link boost_asio.reference.buffered_read_stream.buffered_read_stream [*buffered_read_stream]]]
     [Construct, passing the specified argument to initialise the next layer. ]
   ]
   
   [
- [[link boost_asio.reference.buffered_write_stream.close [*close]]]
+ [[link boost_asio.reference.buffered_read_stream.close [*close]]]
     [Close the stream. ]
   ]
   
   [
- [[link boost_asio.reference.buffered_write_stream.flush [*flush]]]
- [Flush all data from the buffer to the next layer. Returns the number of bytes written to the next layer on the last write operation. Throws an exception on failure.
+ [[link boost_asio.reference.buffered_read_stream.fill [*fill]]]
+ [Fill the buffer with some data. Returns the number of bytes placed in the buffer as a result of the operation. Throws an exception on failure.
 
- Flush all data from the buffer to the next layer. Returns the number of bytes written to the next layer on the last write operation, or 0 if an error occurred. ]
+ Fill the buffer with some data. Returns the number of bytes placed in the buffer as a result of the operation, or 0 if an error occurred. ]
   ]
   
   [
- [[link boost_asio.reference.buffered_write_stream.get_io_service [*get_io_service]]]
+ [[link boost_asio.reference.buffered_read_stream.get_io_service [*get_io_service]]]
     [Get the io_service associated with the object. ]
   ]
   
   [
- [[link boost_asio.reference.buffered_write_stream.in_avail [*in_avail]]]
+ [[link boost_asio.reference.buffered_read_stream.in_avail [*in_avail]]]
     [Determine the amount of data that may be read without blocking. ]
   ]
   
   [
- [[link boost_asio.reference.buffered_write_stream.lowest_layer [*lowest_layer]]]
+ [[link boost_asio.reference.buffered_read_stream.lowest_layer [*lowest_layer]]]
     [Get a reference to the lowest layer.
 
      Get a const reference to the lowest layer. ]
   ]
   
   [
- [[link boost_asio.reference.buffered_write_stream.next_layer [*next_layer]]]
+ [[link boost_asio.reference.buffered_read_stream.next_layer [*next_layer]]]
     [Get a reference to the next layer. ]
   ]
   
   [
- [[link boost_asio.reference.buffered_write_stream.peek [*peek]]]
+ [[link boost_asio.reference.buffered_read_stream.peek [*peek]]]
     [Peek at the incoming data on the stream. Returns the number of bytes read. Throws an exception on failure.
 
      Peek at the incoming data on the stream. Returns the number of bytes read, or 0 if an error occurred. ]
   ]
   
   [
- [[link boost_asio.reference.buffered_write_stream.read_some [*read_some]]]
+ [[link boost_asio.reference.buffered_read_stream.read_some [*read_some]]]
     [Read some data from the stream. Returns the number of bytes read. Throws an exception on failure.
 
      Read some data from the stream. Returns the number of bytes read or 0 if an error occurred. ]
   ]
   
   [
- [[link boost_asio.reference.buffered_write_stream.write_some [*write_some]]]
+ [[link boost_asio.reference.buffered_read_stream.write_some [*write_some]]]
     [Write the given data to the stream. Returns the number of bytes written. Throws an exception on failure.
 
- Write the given data to the stream. Returns the number of bytes written, or 0 if an error occurred and the error handler did not throw. ]
+ Write the given data to the stream. Returns the number of bytes written, or 0 if an error occurred. ]
   ]
   
 ]
@@ -47720,13 +47558,13 @@
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.buffered_write_stream.default_buffer_size [*default_buffer_size]]]
+ [[link boost_asio.reference.buffered_read_stream.default_buffer_size [*default_buffer_size]]]
     [The default buffer size. ]
   ]
 
 ]
 
-The [link boost_asio.reference.buffered_write_stream `buffered_write_stream`] class template can be used to add buffering to the synchronous and asynchronous write operations of a stream.
+The [link boost_asio.reference.buffered_read_stream `buffered_read_stream`] class template can be used to add buffering to the synchronous and asynchronous read operations of a stream.
 
 
 [heading Thread Safety]
@@ -47740,21 +47578,21 @@
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/buffered_write_stream.hpp]
+[*Header: ][^boost/asio/buffered_read_stream.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
 
-[section:async_flush buffered_write_stream::async_flush]
+[section:async_fill buffered_read_stream::async_fill]
 
-[indexterm2 async_flush..buffered_write_stream]
-Start an asynchronous flush.
+[indexterm2 async_fill..buffered_read_stream]
+Start an asynchronous fill.
 
 
   template<
- typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
- void async_flush(
- WriteHandler handler);
+ typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
+ void async_fill(
+ ReadHandler handler);
 
 
 
@@ -47762,9 +47600,9 @@
 
 
 
-[section:async_read_some buffered_write_stream::async_read_some]
+[section:async_read_some buffered_read_stream::async_read_some]
 
-[indexterm2 async_read_some..buffered_write_stream]
+[indexterm2 async_read_some..buffered_read_stream]
 Start an asynchronous read. The buffer into which the data will be read must be valid for the lifetime of the asynchronous operation.
 
 
@@ -47781,9 +47619,9 @@
 
 
 
-[section:async_write_some buffered_write_stream::async_write_some]
+[section:async_write_some buffered_read_stream::async_write_some]
 
-[indexterm2 async_write_some..buffered_write_stream]
+[indexterm2 async_write_some..buffered_read_stream]
 Start an asynchronous write. The data being written must be valid for the lifetime of the asynchronous operation.
 
 
@@ -47799,27 +47637,27 @@
 [endsect]
 
 
-[section:buffered_write_stream buffered_write_stream::buffered_write_stream]
+[section:buffered_read_stream buffered_read_stream::buffered_read_stream]
 
-[indexterm2 buffered_write_stream..buffered_write_stream]
+[indexterm2 buffered_read_stream..buffered_read_stream]
 Construct, passing the specified argument to initialise the next layer.
 
 
   template<
       typename Arg>
- explicit ``[link boost_asio.reference.buffered_write_stream.buffered_write_stream.overload1 buffered_write_stream]``(
+ explicit ``[link boost_asio.reference.buffered_read_stream.buffered_read_stream.overload1 buffered_read_stream]``(
       Arg & a);
- `` [''''&raquo;''' [link boost_asio.reference.buffered_write_stream.buffered_write_stream.overload1 more...]]``
+ `` [''''&raquo;''' [link boost_asio.reference.buffered_read_stream.buffered_read_stream.overload1 more...]]``
 
   template<
       typename Arg>
- ``[link boost_asio.reference.buffered_write_stream.buffered_write_stream.overload2 buffered_write_stream]``(
+ ``[link boost_asio.reference.buffered_read_stream.buffered_read_stream.overload2 buffered_read_stream]``(
       Arg & a,
       std::size_t buffer_size);
- `` [''''&raquo;''' [link boost_asio.reference.buffered_write_stream.buffered_write_stream.overload2 more...]]``
+ `` [''''&raquo;''' [link boost_asio.reference.buffered_read_stream.buffered_read_stream.overload2 more...]]``
 
 
-[section:overload1 buffered_write_stream::buffered_write_stream (1 of 2 overloads)]
+[section:overload1 buffered_read_stream::buffered_read_stream (1 of 2 overloads)]
 
 
 Construct, passing the specified argument to initialise the next layer.
@@ -47827,7 +47665,7 @@
 
   template<
       typename Arg>
- buffered_write_stream(
+ buffered_read_stream(
       Arg & a);
 
 
@@ -47836,7 +47674,7 @@
 
 
 
-[section:overload2 buffered_write_stream::buffered_write_stream (2 of 2 overloads)]
+[section:overload2 buffered_read_stream::buffered_read_stream (2 of 2 overloads)]
 
 
 Construct, passing the specified argument to initialise the next layer.
@@ -47844,7 +47682,7 @@
 
   template<
       typename Arg>
- buffered_write_stream(
+ buffered_read_stream(
       Arg & a,
       std::size_t buffer_size);
 
@@ -47855,21 +47693,21 @@
 
 [endsect]
 
-[section:close buffered_write_stream::close]
+[section:close buffered_read_stream::close]
 
-[indexterm2 close..buffered_write_stream]
+[indexterm2 close..buffered_read_stream]
 Close the stream.
 
 
- void ``[link boost_asio.reference.buffered_write_stream.close.overload1 close]``();
- `` [''''&raquo;''' [link boost_asio.reference.buffered_write_stream.close.overload1 more...]]``
+ void ``[link boost_asio.reference.buffered_read_stream.close.overload1 close]``();
+ `` [''''&raquo;''' [link boost_asio.reference.buffered_read_stream.close.overload1 more...]]``
 
- boost::system::error_code ``[link boost_asio.reference.buffered_write_stream.close.overload2 close]``(
+ boost::system::error_code ``[link boost_asio.reference.buffered_read_stream.close.overload2 close]``(
       boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.buffered_write_stream.close.overload2 more...]]``
+ `` [''''&raquo;''' [link boost_asio.reference.buffered_read_stream.close.overload2 more...]]``
 
 
-[section:overload1 buffered_write_stream::close (1 of 2 overloads)]
+[section:overload1 buffered_read_stream::close (1 of 2 overloads)]
 
 
 Close the stream.
@@ -47883,7 +47721,7 @@
 
 
 
-[section:overload2 buffered_write_stream::close (2 of 2 overloads)]
+[section:overload2 buffered_read_stream::close (2 of 2 overloads)]
 
 
 Close the stream.
@@ -47900,9 +47738,9 @@
 [endsect]
 
 
-[section:default_buffer_size buffered_write_stream::default_buffer_size]
+[section:default_buffer_size buffered_read_stream::default_buffer_size]
 
-[indexterm2 default_buffer_size..buffered_write_stream]
+[indexterm2 default_buffer_size..buffered_read_stream]
 The default buffer size.
 
 
@@ -47913,31 +47751,31 @@
 [endsect]
 
 
-[section:flush buffered_write_stream::flush]
+[section:fill buffered_read_stream::fill]
 
-[indexterm2 flush..buffered_write_stream]
-Flush all data from the buffer to the next layer. Returns the number of bytes written to the next layer on the last write operation. Throws an exception on failure.
+[indexterm2 fill..buffered_read_stream]
+Fill the buffer with some data. Returns the number of bytes placed in the buffer as a result of the operation. Throws an exception on failure.
 
 
- std::size_t ``[link boost_asio.reference.buffered_write_stream.flush.overload1 flush]``();
- `` [''''&raquo;''' [link boost_asio.reference.buffered_write_stream.flush.overload1 more...]]``
+ std::size_t ``[link boost_asio.reference.buffered_read_stream.fill.overload1 fill]``();
+ `` [''''&raquo;''' [link boost_asio.reference.buffered_read_stream.fill.overload1 more...]]``
 
 
-Flush all data from the buffer to the next layer. Returns the number of bytes written to the next layer on the last write operation, or 0 if an error occurred.
+Fill the buffer with some data. Returns the number of bytes placed in the buffer as a result of the operation, or 0 if an error occurred.
 
 
- std::size_t ``[link boost_asio.reference.buffered_write_stream.flush.overload2 flush]``(
+ std::size_t ``[link boost_asio.reference.buffered_read_stream.fill.overload2 fill]``(
       boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.buffered_write_stream.flush.overload2 more...]]``
+ `` [''''&raquo;''' [link boost_asio.reference.buffered_read_stream.fill.overload2 more...]]``
 
 
-[section:overload1 buffered_write_stream::flush (1 of 2 overloads)]
+[section:overload1 buffered_read_stream::fill (1 of 2 overloads)]
 
 
-Flush all data from the buffer to the next layer. Returns the number of bytes written to the next layer on the last write operation. Throws an exception on failure.
+Fill the buffer with some data. Returns the number of bytes placed in the buffer as a result of the operation. Throws an exception on failure.
 
 
- std::size_t flush();
+ std::size_t fill();
 
 
 
@@ -47945,13 +47783,13 @@
 
 
 
-[section:overload2 buffered_write_stream::flush (2 of 2 overloads)]
+[section:overload2 buffered_read_stream::fill (2 of 2 overloads)]
 
 
-Flush all data from the buffer to the next layer. Returns the number of bytes written to the next layer on the last write operation, or 0 if an error occurred.
+Fill the buffer with some data. Returns the number of bytes placed in the buffer as a result of the operation, or 0 if an error occurred.
 
 
- std::size_t flush(
+ std::size_t fill(
       boost::system::error_code & ec);
 
 
@@ -47962,9 +47800,9 @@
 [endsect]
 
 
-[section:get_io_service buffered_write_stream::get_io_service]
+[section:get_io_service buffered_read_stream::get_io_service]
 
-[indexterm2 get_io_service..buffered_write_stream]
+[indexterm2 get_io_service..buffered_read_stream]
 Get the [link boost_asio.reference.io_service `io_service`] associated with the object.
 
 
@@ -47975,21 +47813,21 @@
 [endsect]
 
 
-[section:in_avail buffered_write_stream::in_avail]
+[section:in_avail buffered_read_stream::in_avail]
 
-[indexterm2 in_avail..buffered_write_stream]
+[indexterm2 in_avail..buffered_read_stream]
 Determine the amount of data that may be read without blocking.
 
 
- std::size_t ``[link boost_asio.reference.buffered_write_stream.in_avail.overload1 in_avail]``();
- `` [''''&raquo;''' [link boost_asio.reference.buffered_write_stream.in_avail.overload1 more...]]``
+ std::size_t ``[link boost_asio.reference.buffered_read_stream.in_avail.overload1 in_avail]``();
+ `` [''''&raquo;''' [link boost_asio.reference.buffered_read_stream.in_avail.overload1 more...]]``
 
- std::size_t ``[link boost_asio.reference.buffered_write_stream.in_avail.overload2 in_avail]``(
+ std::size_t ``[link boost_asio.reference.buffered_read_stream.in_avail.overload2 in_avail]``(
       boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.buffered_write_stream.in_avail.overload2 more...]]``
+ `` [''''&raquo;''' [link boost_asio.reference.buffered_read_stream.in_avail.overload2 more...]]``
 
 
-[section:overload1 buffered_write_stream::in_avail (1 of 2 overloads)]
+[section:overload1 buffered_read_stream::in_avail (1 of 2 overloads)]
 
 
 Determine the amount of data that may be read without blocking.
@@ -48003,7 +47841,7 @@
 
 
 
-[section:overload2 buffered_write_stream::in_avail (2 of 2 overloads)]
+[section:overload2 buffered_read_stream::in_avail (2 of 2 overloads)]
 
 
 Determine the amount of data that may be read without blocking.
@@ -48019,24 +47857,24 @@
 
 [endsect]
 
-[section:lowest_layer buffered_write_stream::lowest_layer]
+[section:lowest_layer buffered_read_stream::lowest_layer]
 
-[indexterm2 lowest_layer..buffered_write_stream]
+[indexterm2 lowest_layer..buffered_read_stream]
 Get a reference to the lowest layer.
 
 
- lowest_layer_type & ``[link boost_asio.reference.buffered_write_stream.lowest_layer.overload1 lowest_layer]``();
- `` [''''&raquo;''' [link boost_asio.reference.buffered_write_stream.lowest_layer.overload1 more...]]``
+ lowest_layer_type & ``[link boost_asio.reference.buffered_read_stream.lowest_layer.overload1 lowest_layer]``();
+ `` [''''&raquo;''' [link boost_asio.reference.buffered_read_stream.lowest_layer.overload1 more...]]``
 
 
 Get a const reference to the lowest layer.
 
 
- const lowest_layer_type & ``[link boost_asio.reference.buffered_write_stream.lowest_layer.overload2 lowest_layer]``() const;
- `` [''''&raquo;''' [link boost_asio.reference.buffered_write_stream.lowest_layer.overload2 more...]]``
+ const lowest_layer_type & ``[link boost_asio.reference.buffered_read_stream.lowest_layer.overload2 lowest_layer]``() const;
+ `` [''''&raquo;''' [link boost_asio.reference.buffered_read_stream.lowest_layer.overload2 more...]]``
 
 
-[section:overload1 buffered_write_stream::lowest_layer (1 of 2 overloads)]
+[section:overload1 buffered_read_stream::lowest_layer (1 of 2 overloads)]
 
 
 Get a reference to the lowest layer.
@@ -48050,7 +47888,7 @@
 
 
 
-[section:overload2 buffered_write_stream::lowest_layer (2 of 2 overloads)]
+[section:overload2 buffered_read_stream::lowest_layer (2 of 2 overloads)]
 
 
 Get a const reference to the lowest layer.
@@ -48066,9 +47904,9 @@
 [endsect]
 
 
-[section:lowest_layer_type buffered_write_stream::lowest_layer_type]
+[section:lowest_layer_type buffered_read_stream::lowest_layer_type]
 
-[indexterm2 lowest_layer_type..buffered_write_stream]
+[indexterm2 lowest_layer_type..buffered_read_stream]
 The type of the lowest layer.
 
 
@@ -48078,7 +47916,7 @@
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/buffered_write_stream.hpp]
+[*Header: ][^boost/asio/buffered_read_stream.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
@@ -48087,9 +47925,9 @@
 
 
 
-[section:next_layer buffered_write_stream::next_layer]
+[section:next_layer buffered_read_stream::next_layer]
 
-[indexterm2 next_layer..buffered_write_stream]
+[indexterm2 next_layer..buffered_read_stream]
 Get a reference to the next layer.
 
 
@@ -48101,9 +47939,9 @@
 
 
 
-[section:next_layer_type buffered_write_stream::next_layer_type]
+[section:next_layer_type buffered_read_stream::next_layer_type]
 
-[indexterm2 next_layer_type..buffered_write_stream]
+[indexterm2 next_layer_type..buffered_read_stream]
 The type of the next layer.
 
 
@@ -48113,7 +47951,7 @@
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/buffered_write_stream.hpp]
+[*Header: ][^boost/asio/buffered_read_stream.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
@@ -48121,17 +47959,17 @@
 [endsect]
 
 
-[section:peek buffered_write_stream::peek]
+[section:peek buffered_read_stream::peek]
 
-[indexterm2 peek..buffered_write_stream]
+[indexterm2 peek..buffered_read_stream]
 Peek at the incoming data on the stream. Returns the number of bytes read. Throws an exception on failure.
 
 
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
- std::size_t ``[link boost_asio.reference.buffered_write_stream.peek.overload1 peek]``(
+ std::size_t ``[link boost_asio.reference.buffered_read_stream.peek.overload1 peek]``(
       const MutableBufferSequence & buffers);
- `` [''''&raquo;''' [link boost_asio.reference.buffered_write_stream.peek.overload1 more...]]``
+ `` [''''&raquo;''' [link boost_asio.reference.buffered_read_stream.peek.overload1 more...]]``
 
 
 Peek at the incoming data on the stream. Returns the number of bytes read, or 0 if an error occurred.
@@ -48139,13 +47977,13 @@
 
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
- std::size_t ``[link boost_asio.reference.buffered_write_stream.peek.overload2 peek]``(
+ std::size_t ``[link boost_asio.reference.buffered_read_stream.peek.overload2 peek]``(
       const MutableBufferSequence & buffers,
       boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.buffered_write_stream.peek.overload2 more...]]``
+ `` [''''&raquo;''' [link boost_asio.reference.buffered_read_stream.peek.overload2 more...]]``
 
 
-[section:overload1 buffered_write_stream::peek (1 of 2 overloads)]
+[section:overload1 buffered_read_stream::peek (1 of 2 overloads)]
 
 
 Peek at the incoming data on the stream. Returns the number of bytes read. Throws an exception on failure.
@@ -48162,7 +48000,7 @@
 
 
 
-[section:overload2 buffered_write_stream::peek (2 of 2 overloads)]
+[section:overload2 buffered_read_stream::peek (2 of 2 overloads)]
 
 
 Peek at the incoming data on the stream. Returns the number of bytes read, or 0 if an error occurred.
@@ -48181,17 +48019,17 @@
 
 [endsect]
 
-[section:read_some buffered_write_stream::read_some]
+[section:read_some buffered_read_stream::read_some]
 
-[indexterm2 read_some..buffered_write_stream]
+[indexterm2 read_some..buffered_read_stream]
 Read some data from the stream. Returns the number of bytes read. Throws an exception on failure.
 
 
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
- std::size_t ``[link boost_asio.reference.buffered_write_stream.read_some.overload1 read_some]``(
+ std::size_t ``[link boost_asio.reference.buffered_read_stream.read_some.overload1 read_some]``(
       const MutableBufferSequence & buffers);
- `` [''''&raquo;''' [link boost_asio.reference.buffered_write_stream.read_some.overload1 more...]]``
+ `` [''''&raquo;''' [link boost_asio.reference.buffered_read_stream.read_some.overload1 more...]]``
 
 
 Read some data from the stream. Returns the number of bytes read or 0 if an error occurred.
@@ -48199,13 +48037,13 @@
 
   template<
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
- std::size_t ``[link boost_asio.reference.buffered_write_stream.read_some.overload2 read_some]``(
+ std::size_t ``[link boost_asio.reference.buffered_read_stream.read_some.overload2 read_some]``(
       const MutableBufferSequence & buffers,
       boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.buffered_write_stream.read_some.overload2 more...]]``
+ `` [''''&raquo;''' [link boost_asio.reference.buffered_read_stream.read_some.overload2 more...]]``
 
 
-[section:overload1 buffered_write_stream::read_some (1 of 2 overloads)]
+[section:overload1 buffered_read_stream::read_some (1 of 2 overloads)]
 
 
 Read some data from the stream. Returns the number of bytes read. Throws an exception on failure.
@@ -48222,7 +48060,7 @@
 
 
 
-[section:overload2 buffered_write_stream::read_some (2 of 2 overloads)]
+[section:overload2 buffered_read_stream::read_some (2 of 2 overloads)]
 
 
 Read some data from the stream. Returns the number of bytes read or 0 if an error occurred.
@@ -48241,31 +48079,31 @@
 
 [endsect]
 
-[section:write_some buffered_write_stream::write_some]
+[section:write_some buffered_read_stream::write_some]
 
-[indexterm2 write_some..buffered_write_stream]
+[indexterm2 write_some..buffered_read_stream]
 Write the given data to the stream. Returns the number of bytes written. Throws an exception on failure.
 
 
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
- std::size_t ``[link boost_asio.reference.buffered_write_stream.write_some.overload1 write_some]``(
+ std::size_t ``[link boost_asio.reference.buffered_read_stream.write_some.overload1 write_some]``(
       const ConstBufferSequence & buffers);
- `` [''''&raquo;''' [link boost_asio.reference.buffered_write_stream.write_some.overload1 more...]]``
+ `` [''''&raquo;''' [link boost_asio.reference.buffered_read_stream.write_some.overload1 more...]]``
 
 
-Write the given data to the stream. Returns the number of bytes written, or 0 if an error occurred and the error handler did not throw.
+Write the given data to the stream. Returns the number of bytes written, or 0 if an error occurred.
 
 
   template<
       typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
- std::size_t ``[link boost_asio.reference.buffered_write_stream.write_some.overload2 write_some]``(
+ std::size_t ``[link boost_asio.reference.buffered_read_stream.write_some.overload2 write_some]``(
       const ConstBufferSequence & buffers,
       boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.buffered_write_stream.write_some.overload2 more...]]``
+ `` [''''&raquo;''' [link boost_asio.reference.buffered_read_stream.write_some.overload2 more...]]``
 
 
-[section:overload1 buffered_write_stream::write_some (1 of 2 overloads)]
+[section:overload1 buffered_read_stream::write_some (1 of 2 overloads)]
 
 
 Write the given data to the stream. Returns the number of bytes written. Throws an exception on failure.
@@ -48282,10 +48120,10 @@
 
 
 
-[section:overload2 buffered_write_stream::write_some (2 of 2 overloads)]
+[section:overload2 buffered_read_stream::write_some (2 of 2 overloads)]
 
 
-Write the given data to the stream. Returns the number of bytes written, or 0 if an error occurred and the error handler did not throw.
+Write the given data to the stream. Returns the number of bytes written, or 0 if an error occurred.
 
 
   template<
@@ -48304,62 +48142,16 @@
 
 [endsect]
 
-
-[section:buffers_begin buffers_begin]
-
-[indexterm1 buffers_begin]
-Construct an iterator representing the beginning of the buffers' data.
-
-
- template<
- typename BufferSequence>
- buffers_iterator< BufferSequence > buffers_begin(
- const BufferSequence & buffers);
-
-
-[heading Requirements]
-
-[*Header: ][^boost/asio/buffers_iterator.hpp]
-
-[*Convenience header: ][^boost/asio.hpp]
-
-
-[endsect]
-
-
-
-[section:buffers_end buffers_end]
-
-[indexterm1 buffers_end]
-Construct an iterator representing the end of the buffers' data.
-
-
- template<
- typename BufferSequence>
- buffers_iterator< BufferSequence > buffers_end(
- const BufferSequence & buffers);
-
-
-[heading Requirements]
-
-[*Header: ][^boost/asio/buffers_iterator.hpp]
-
-[*Convenience header: ][^boost/asio.hpp]
-
-
-[endsect]
-
-
-[section:buffers_iterator buffers_iterator]
+[section:buffered_stream buffered_stream]
 
 
-A random access iterator over the bytes in a buffer sequence.
+Adds buffering to the read- and write-related operations of a stream.
 
 
   template<
- typename BufferSequence,
- typename ByteType = char>
- class buffers_iterator
+ typename Stream>
+ class buffered_stream :
+ noncopyable
 
 
 [heading Types]
@@ -48368,36 +48160,15 @@
 
   [
 
- [[link boost_asio.reference.buffers_iterator.difference_type [*difference_type]]]
- [The type used for the distance between two iterators. ]
-
- ]
-
- [
-
- [[link boost_asio.reference.buffers_iterator.iterator_category [*iterator_category]]]
- [The iterator category. ]
-
- ]
-
- [
-
- [[link boost_asio.reference.buffers_iterator.pointer [*pointer]]]
- [The type of the result of applying operator->() to the iterator. ]
-
- ]
-
- [
-
- [[link boost_asio.reference.buffers_iterator.reference [*reference]]]
- [The type of the result of applying operator*() to the iterator. ]
+ [[link boost_asio.reference.buffered_stream.lowest_layer_type [*lowest_layer_type]]]
+ [The type of the lowest layer. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.buffers_iterator.value_type [*value_type]]]
- [The type of the value pointed to by the iterator. ]
+ [[link boost_asio.reference.buffered_stream.next_layer_type [*next_layer_type]]]
+ [The type of the next layer. ]
   
   ]
 
@@ -48408,136 +48179,123 @@
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.buffers_iterator.begin [*begin]]]
- [Construct an iterator representing the beginning of the buffers' data. ]
+ [[link boost_asio.reference.buffered_stream.async_fill [*async_fill]]]
+ [Start an asynchronous fill. ]
   ]
   
   [
- [[link boost_asio.reference.buffers_iterator.buffers_iterator [*buffers_iterator]]]
- [Default constructor. Creates an iterator in an undefined state. ]
+ [[link boost_asio.reference.buffered_stream.async_flush [*async_flush]]]
+ [Start an asynchronous flush. ]
   ]
   
   [
- [[link boost_asio.reference.buffers_iterator.end [*end]]]
- [Construct an iterator representing the end of the buffers' data. ]
+ [[link boost_asio.reference.buffered_stream.async_read_some [*async_read_some]]]
+ [Start an asynchronous read. The buffer into which the data will be read must be valid for the lifetime of the asynchronous operation. ]
   ]
   
   [
- [[link boost_asio.reference.buffers_iterator.operator__star_ [*operator *]]]
- [Dereference an iterator. ]
+ [[link boost_asio.reference.buffered_stream.async_write_some [*async_write_some]]]
+ [Start an asynchronous write. The data being written must be valid for the lifetime of the asynchronous operation. ]
   ]
   
   [
- [[link boost_asio.reference.buffers_iterator.operator_plus__plus_ [*operator++]]]
- [Increment operator (prefix).
-
- Increment operator (postfix). ]
+ [[link boost_asio.reference.buffered_stream.buffered_stream [*buffered_stream]]]
+ [Construct, passing the specified argument to initialise the next layer. ]
   ]
   
   [
- [[link boost_asio.reference.buffers_iterator.operator_plus__eq_ [*operator+=]]]
- [Addition operator. ]
+ [[link boost_asio.reference.buffered_stream.close [*close]]]
+ [Close the stream. ]
   ]
   
   [
- [[link boost_asio.reference.buffers_iterator.operator_minus__minus_ [*operator--]]]
- [Decrement operator (prefix).
+ [[link boost_asio.reference.buffered_stream.fill [*fill]]]
+ [Fill the buffer with some data. Returns the number of bytes placed in the buffer as a result of the operation. Throws an exception on failure.
 
- Decrement operator (postfix). ]
- ]
-
- [
- [[link boost_asio.reference.buffers_iterator.operator_minus__eq_ [*operator-=]]]
- [Subtraction operator. ]
- ]
-
- [
- [[link boost_asio.reference.buffers_iterator.operator_arrow_ [*operator->]]]
- [Dereference an iterator. ]
+ Fill the buffer with some data. Returns the number of bytes placed in the buffer as a result of the operation, or 0 if an error occurred. ]
   ]
   
   [
- [[link boost_asio.reference.buffers_iterator.operator_lb__rb_ [*operator\[\]]]]
- [Access an individual element. ]
- ]
-
-]
-
-[heading Friends]
-[table
- [[Name][Description]]
+ [[link boost_asio.reference.buffered_stream.flush [*flush]]]
+ [Flush all data from the buffer to the next layer. Returns the number of bytes written to the next layer on the last write operation. Throws an exception on failure.
 
- [
- [[link boost_asio.reference.buffers_iterator.operator_not__eq_ [*operator!=]]]
- [Test two iterators for inequality. ]
+ Flush all data from the buffer to the next layer. Returns the number of bytes written to the next layer on the last write operation, or 0 if an error occurred. ]
   ]
   
   [
- [[link boost_asio.reference.buffers_iterator.operator_plus_ [*operator+]]]
- [Addition operator. ]
+ [[link boost_asio.reference.buffered_stream.get_io_service [*get_io_service]]]
+ [Get the io_service associated with the object. ]
   ]
   
   [
- [[link boost_asio.reference.buffers_iterator.operator_minus_ [*operator-]]]
- [Subtraction operator. ]
+ [[link boost_asio.reference.buffered_stream.in_avail [*in_avail]]]
+ [Determine the amount of data that may be read without blocking. ]
   ]
   
   [
- [[link boost_asio.reference.buffers_iterator.operator_lt_ [*operator<]]]
- [Compare two iterators. ]
+ [[link boost_asio.reference.buffered_stream.lowest_layer [*lowest_layer]]]
+ [Get a reference to the lowest layer.
+
+ Get a const reference to the lowest layer. ]
   ]
   
   [
- [[link boost_asio.reference.buffers_iterator.operator_lt__eq_ [*operator<=]]]
- [Compare two iterators. ]
+ [[link boost_asio.reference.buffered_stream.next_layer [*next_layer]]]
+ [Get a reference to the next layer. ]
   ]
   
   [
- [[link boost_asio.reference.buffers_iterator.operator_eq__eq_ [*operator==]]]
- [Test two iterators for equality. ]
+ [[link boost_asio.reference.buffered_stream.peek [*peek]]]
+ [Peek at the incoming data on the stream. Returns the number of bytes read. Throws an exception on failure.
+
+ Peek at the incoming data on the stream. Returns the number of bytes read, or 0 if an error occurred. ]
   ]
   
   [
- [[link boost_asio.reference.buffers_iterator.operator_gt_ [*operator>]]]
- [Compare two iterators. ]
+ [[link boost_asio.reference.buffered_stream.read_some [*read_some]]]
+ [Read some data from the stream. Returns the number of bytes read. Throws an exception on failure.
+
+ Read some data from the stream. Returns the number of bytes read or 0 if an error occurred. ]
   ]
   
   [
- [[link boost_asio.reference.buffers_iterator.operator_gt__eq_ [*operator>=]]]
- [Compare two iterators. ]
+ [[link boost_asio.reference.buffered_stream.write_some [*write_some]]]
+ [Write the given data to the stream. Returns the number of bytes written. Throws an exception on failure.
+
+ Write the given data to the stream. Returns the number of bytes written, or 0 if an error occurred. ]
   ]
   
 ]
 
-[heading Requirements]
-
-[*Header: ][^boost/asio/buffers_iterator.hpp]
-
-[*Convenience header: ][^boost/asio.hpp]
+The [link boost_asio.reference.buffered_stream `buffered_stream`] class template can be used to add buffering to the synchronous and asynchronous read and write operations of a stream.
 
 
-[section:begin buffers_iterator::begin]
+[heading Thread Safety]
+
+[*Distinct] [*objects:] Safe.
 
-[indexterm2 begin..buffers_iterator]
-Construct an iterator representing the beginning of the buffers' data.
+[*Shared] [*objects:] Unsafe.
 
 
- static buffers_iterator begin(
- const BufferSequence & buffers);
 
 
+[heading Requirements]
 
-[endsect]
+[*Header: ][^boost/asio/buffered_stream.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
 
-[section:buffers_iterator buffers_iterator::buffers_iterator]
+[section:async_fill buffered_stream::async_fill]
 
-[indexterm2 buffers_iterator..buffers_iterator]
-Default constructor. Creates an iterator in an undefined state.
+[indexterm2 async_fill..buffered_stream]
+Start an asynchronous fill.
 
 
- buffers_iterator();
+ template<
+ typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
+ void async_fill(
+ ReadHandler handler);
 
 
 
@@ -48545,35 +48303,35 @@
 
 
 
-[section:difference_type buffers_iterator::difference_type]
-
-[indexterm2 difference_type..buffers_iterator]
-The type used for the distance between two iterators.
-
-
- typedef std::ptrdiff_t difference_type;
-
+[section:async_flush buffered_stream::async_flush]
 
+[indexterm2 async_flush..buffered_stream]
+Start an asynchronous flush.
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/buffers_iterator.hpp]
+ template<
+ typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
+ void async_flush(
+ WriteHandler handler);
 
-[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
 
-[section:end buffers_iterator::end]
+[section:async_read_some buffered_stream::async_read_some]
 
-[indexterm2 end..buffers_iterator]
-Construct an iterator representing the end of the buffers' data.
+[indexterm2 async_read_some..buffered_stream]
+Start an asynchronous read. The buffer into which the data will be read must be valid for the lifetime of the asynchronous operation.
 
 
- static buffers_iterator end(
- const BufferSequence & buffers);
+ template<
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
+ typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
+ void async_read_some(
+ const MutableBufferSequence & buffers,
+ ReadHandler handler);
 
 
 
@@ -48581,117 +48339,119 @@
 
 
 
-[section:iterator_category buffers_iterator::iterator_category]
+[section:async_write_some buffered_stream::async_write_some]
 
-[indexterm2 iterator_category..buffers_iterator]
-The iterator category.
+[indexterm2 async_write_some..buffered_stream]
+Start an asynchronous write. The data being written must be valid for the lifetime of the asynchronous operation.
 
 
- typedef std::random_access_iterator_tag iterator_category;
+ template<
+ typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
+ typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
+ void async_write_some(
+ const ConstBufferSequence & buffers,
+ WriteHandler handler);
 
 
 
-[heading Requirements]
+[endsect]
 
-[*Header: ][^boost/asio/buffers_iterator.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
+[section:buffered_stream buffered_stream::buffered_stream]
 
+[indexterm2 buffered_stream..buffered_stream]
+Construct, passing the specified argument to initialise the next layer.
 
-[endsect]
 
+ template<
+ typename Arg>
+ explicit ``[link boost_asio.reference.buffered_stream.buffered_stream.overload1 buffered_stream]``(
+ Arg & a);
+ `` [''''&raquo;''' [link boost_asio.reference.buffered_stream.buffered_stream.overload1 more...]]``
 
+ template<
+ typename Arg>
+ explicit ``[link boost_asio.reference.buffered_stream.buffered_stream.overload2 buffered_stream]``(
+ Arg & a,
+ std::size_t read_buffer_size,
+ std::size_t write_buffer_size);
+ `` [''''&raquo;''' [link boost_asio.reference.buffered_stream.buffered_stream.overload2 more...]]``
 
-[section:operator__star_ buffers_iterator::operator *]
 
-[indexterm2 operator *..buffers_iterator]
-Dereference an iterator.
+[section:overload1 buffered_stream::buffered_stream (1 of 2 overloads)]
 
 
- reference operator *() const;
+Construct, passing the specified argument to initialise the next layer.
 
 
+ template<
+ typename Arg>
+ buffered_stream(
+ Arg & a);
 
-[endsect]
 
 
+[endsect]
 
-[section:operator_not__eq_ buffers_iterator::operator!=]
 
-[indexterm2 operator!=..buffers_iterator]
-Test two iterators for inequality.
 
+[section:overload2 buffered_stream::buffered_stream (2 of 2 overloads)]
 
- friend bool operator!=(
- const buffers_iterator & a,
- const buffers_iterator & b);
 
+Construct, passing the specified argument to initialise the next layer.
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/buffers_iterator.hpp]
+ template<
+ typename Arg>
+ buffered_stream(
+ Arg & a,
+ std::size_t read_buffer_size,
+ std::size_t write_buffer_size);
 
-[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
-[section:operator_plus_ buffers_iterator::operator+]
-
-[indexterm2 operator+..buffers_iterator]
-Addition operator.
-
+[endsect]
 
- friend buffers_iterator ``[link boost_asio.reference.buffers_iterator.operator_plus_.overload1 operator+]``(
- const buffers_iterator & iter,
- std::ptrdiff_t difference);
- `` [''''&raquo;''' [link boost_asio.reference.buffers_iterator.operator_plus_.overload1 more...]]``
+[section:close buffered_stream::close]
 
- friend buffers_iterator ``[link boost_asio.reference.buffers_iterator.operator_plus_.overload2 operator+]``(
- std::ptrdiff_t difference,
- const buffers_iterator & iter);
- `` [''''&raquo;''' [link boost_asio.reference.buffers_iterator.operator_plus_.overload2 more...]]``
+[indexterm2 close..buffered_stream]
+Close the stream.
 
 
-[section:overload1 buffers_iterator::operator+ (1 of 2 overloads)]
+ void ``[link boost_asio.reference.buffered_stream.close.overload1 close]``();
+ `` [''''&raquo;''' [link boost_asio.reference.buffered_stream.close.overload1 more...]]``
 
+ boost::system::error_code ``[link boost_asio.reference.buffered_stream.close.overload2 close]``(
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.buffered_stream.close.overload2 more...]]``
 
-Addition operator.
 
+[section:overload1 buffered_stream::close (1 of 2 overloads)]
 
- friend buffers_iterator operator+(
- const buffers_iterator & iter,
- std::ptrdiff_t difference);
 
+Close the stream.
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/buffers_iterator.hpp]
+ void close();
 
-[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
 
-[section:overload2 buffers_iterator::operator+ (2 of 2 overloads)]
-
-
-Addition operator.
-
+[section:overload2 buffered_stream::close (2 of 2 overloads)]
 
- friend buffers_iterator operator+(
- std::ptrdiff_t difference,
- const buffers_iterator & iter);
 
+Close the stream.
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/buffers_iterator.hpp]
+ boost::system::error_code close(
+ boost::system::error_code & ec);
 
-[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
@@ -48699,31 +48459,31 @@
 
 [endsect]
 
-[section:operator_plus__plus_ buffers_iterator::operator++]
+[section:fill buffered_stream::fill]
 
-[indexterm2 operator++..buffers_iterator]
-Increment operator (prefix).
+[indexterm2 fill..buffered_stream]
+Fill the buffer with some data. Returns the number of bytes placed in the buffer as a result of the operation. Throws an exception on failure.
 
 
- buffers_iterator & ``[link boost_asio.reference.buffers_iterator.operator_plus__plus_.overload1 operator++]``();
- `` [''''&raquo;''' [link boost_asio.reference.buffers_iterator.operator_plus__plus_.overload1 more...]]``
+ std::size_t ``[link boost_asio.reference.buffered_stream.fill.overload1 fill]``();
+ `` [''''&raquo;''' [link boost_asio.reference.buffered_stream.fill.overload1 more...]]``
 
 
-Increment operator (postfix).
+Fill the buffer with some data. Returns the number of bytes placed in the buffer as a result of the operation, or 0 if an error occurred.
 
 
- buffers_iterator ``[link boost_asio.reference.buffers_iterator.operator_plus__plus_.overload2 operator++]``(
- int );
- `` [''''&raquo;''' [link boost_asio.reference.buffers_iterator.operator_plus__plus_.overload2 more...]]``
+ std::size_t ``[link boost_asio.reference.buffered_stream.fill.overload2 fill]``(
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.buffered_stream.fill.overload2 more...]]``
 
 
-[section:overload1 buffers_iterator::operator++ (1 of 2 overloads)]
+[section:overload1 buffered_stream::fill (1 of 2 overloads)]
 
 
-Increment operator (prefix).
+Fill the buffer with some data. Returns the number of bytes placed in the buffer as a result of the operation. Throws an exception on failure.
 
 
- buffers_iterator & operator++();
+ std::size_t fill();
 
 
 
@@ -48731,14 +48491,14 @@
 
 
 
-[section:overload2 buffers_iterator::operator++ (2 of 2 overloads)]
+[section:overload2 buffered_stream::fill (2 of 2 overloads)]
 
 
-Increment operator (postfix).
+Fill the buffer with some data. Returns the number of bytes placed in the buffer as a result of the operation, or 0 if an error occurred.
 
 
- buffers_iterator operator++(
- int );
+ std::size_t fill(
+ boost::system::error_code & ec);
 
 
 
@@ -48747,108 +48507,89 @@
 
 [endsect]
 
+[section:flush buffered_stream::flush]
 
-[section:operator_plus__eq_ buffers_iterator::operator+=]
-
-[indexterm2 operator+=..buffers_iterator]
-Addition operator.
-
-
- buffers_iterator & operator+=(
- std::ptrdiff_t difference);
-
+[indexterm2 flush..buffered_stream]
+Flush all data from the buffer to the next layer. Returns the number of bytes written to the next layer on the last write operation. Throws an exception on failure.
 
 
-[endsect]
+ std::size_t ``[link boost_asio.reference.buffered_stream.flush.overload1 flush]``();
+ `` [''''&raquo;''' [link boost_asio.reference.buffered_stream.flush.overload1 more...]]``
 
 
-[section:operator_minus_ buffers_iterator::operator-]
+Flush all data from the buffer to the next layer. Returns the number of bytes written to the next layer on the last write operation, or 0 if an error occurred.
 
-[indexterm2 operator-..buffers_iterator]
-Subtraction operator.
 
+ std::size_t ``[link boost_asio.reference.buffered_stream.flush.overload2 flush]``(
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.buffered_stream.flush.overload2 more...]]``
 
- friend buffers_iterator ``[link boost_asio.reference.buffers_iterator.operator_minus_.overload1 operator-]``(
- const buffers_iterator & iter,
- std::ptrdiff_t difference);
- `` [''''&raquo;''' [link boost_asio.reference.buffers_iterator.operator_minus_.overload1 more...]]``
 
- friend std::ptrdiff_t ``[link boost_asio.reference.buffers_iterator.operator_minus_.overload2 operator-]``(
- const buffers_iterator & a,
- const buffers_iterator & b);
- `` [''''&raquo;''' [link boost_asio.reference.buffers_iterator.operator_minus_.overload2 more...]]``
+[section:overload1 buffered_stream::flush (1 of 2 overloads)]
 
 
-[section:overload1 buffers_iterator::operator- (1 of 2 overloads)]
+Flush all data from the buffer to the next layer. Returns the number of bytes written to the next layer on the last write operation. Throws an exception on failure.
 
 
-Subtraction operator.
+ std::size_t flush();
 
 
- friend buffers_iterator operator-(
- const buffers_iterator & iter,
- std::ptrdiff_t difference);
 
+[endsect]
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/buffers_iterator.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
+[section:overload2 buffered_stream::flush (2 of 2 overloads)]
 
 
-[endsect]
+Flush all data from the buffer to the next layer. Returns the number of bytes written to the next layer on the last write operation, or 0 if an error occurred.
 
 
+ std::size_t flush(
+ boost::system::error_code & ec);
 
-[section:overload2 buffers_iterator::operator- (2 of 2 overloads)]
 
 
-Subtraction operator.
+[endsect]
 
 
- friend std::ptrdiff_t operator-(
- const buffers_iterator & a,
- const buffers_iterator & b);
+[endsect]
 
 
-[heading Requirements]
+[section:get_io_service buffered_stream::get_io_service]
 
-[*Header: ][^boost/asio/buffers_iterator.hpp]
+[indexterm2 get_io_service..buffered_stream]
+Get the [link boost_asio.reference.io_service `io_service`] associated with the object.
 
-[*Convenience header: ][^boost/asio.hpp]
 
+ boost::asio::io_service & get_io_service();
 
-[endsect]
 
 
 [endsect]
 
-[section:operator_minus__minus_ buffers_iterator::operator--]
-
-[indexterm2 operator--..buffers_iterator]
-Decrement operator (prefix).
-
 
- buffers_iterator & ``[link boost_asio.reference.buffers_iterator.operator_minus__minus_.overload1 operator--]``();
- `` [''''&raquo;''' [link boost_asio.reference.buffers_iterator.operator_minus__minus_.overload1 more...]]``
+[section:in_avail buffered_stream::in_avail]
 
+[indexterm2 in_avail..buffered_stream]
+Determine the amount of data that may be read without blocking.
 
-Decrement operator (postfix).
 
+ std::size_t ``[link boost_asio.reference.buffered_stream.in_avail.overload1 in_avail]``();
+ `` [''''&raquo;''' [link boost_asio.reference.buffered_stream.in_avail.overload1 more...]]``
 
- buffers_iterator ``[link boost_asio.reference.buffers_iterator.operator_minus__minus_.overload2 operator--]``(
- int );
- `` [''''&raquo;''' [link boost_asio.reference.buffers_iterator.operator_minus__minus_.overload2 more...]]``
+ std::size_t ``[link boost_asio.reference.buffered_stream.in_avail.overload2 in_avail]``(
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.buffered_stream.in_avail.overload2 more...]]``
 
 
-[section:overload1 buffers_iterator::operator-- (1 of 2 overloads)]
+[section:overload1 buffered_stream::in_avail (1 of 2 overloads)]
 
 
-Decrement operator (prefix).
+Determine the amount of data that may be read without blocking.
 
 
- buffers_iterator & operator--();
+ std::size_t in_avail();
 
 
 
@@ -48856,14 +48597,14 @@
 
 
 
-[section:overload2 buffers_iterator::operator-- (2 of 2 overloads)]
+[section:overload2 buffered_stream::in_avail (2 of 2 overloads)]
 
 
-Decrement operator (postfix).
+Determine the amount of data that may be read without blocking.
 
 
- buffers_iterator operator--(
- int );
+ std::size_t in_avail(
+ boost::system::error_code & ec);
 
 
 
@@ -48872,29 +48613,30 @@
 
 [endsect]
 
+[section:lowest_layer buffered_stream::lowest_layer]
 
-[section:operator_minus__eq_ buffers_iterator::operator-=]
+[indexterm2 lowest_layer..buffered_stream]
+Get a reference to the lowest layer.
 
-[indexterm2 operator-=..buffers_iterator]
-Subtraction operator.
 
+ lowest_layer_type & ``[link boost_asio.reference.buffered_stream.lowest_layer.overload1 lowest_layer]``();
+ `` [''''&raquo;''' [link boost_asio.reference.buffered_stream.lowest_layer.overload1 more...]]``
 
- buffers_iterator & operator-=(
- std::ptrdiff_t difference);
 
+Get a const reference to the lowest layer.
 
 
-[endsect]
+ const lowest_layer_type & ``[link boost_asio.reference.buffered_stream.lowest_layer.overload2 lowest_layer]``() const;
+ `` [''''&raquo;''' [link boost_asio.reference.buffered_stream.lowest_layer.overload2 more...]]``
 
 
+[section:overload1 buffered_stream::lowest_layer (1 of 2 overloads)]
 
-[section:operator_arrow_ buffers_iterator::operator->]
 
-[indexterm2 operator->..buffers_iterator]
-Dereference an iterator.
+Get a reference to the lowest layer.
 
 
- pointer operator->() const;
+ lowest_layer_type & lowest_layer();
 
 
 
@@ -48902,42 +48644,35 @@
 
 
 
-[section:operator_lt_ buffers_iterator::operator<]
+[section:overload2 buffered_stream::lowest_layer (2 of 2 overloads)]
 
-[indexterm2 operator<..buffers_iterator]
-Compare two iterators.
 
+Get a const reference to the lowest layer.
 
- friend bool operator<(
- const buffers_iterator & a,
- const buffers_iterator & b);
 
+ const lowest_layer_type & lowest_layer() const;
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/buffers_iterator.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
+[endsect]
 
 
 [endsect]
 
 
+[section:lowest_layer_type buffered_stream::lowest_layer_type]
 
-[section:operator_lt__eq_ buffers_iterator::operator<=]
+[indexterm2 lowest_layer_type..buffered_stream]
+The type of the lowest layer.
 
-[indexterm2 operator<=..buffers_iterator]
-Compare two iterators.
 
+ typedef next_layer_type::lowest_layer_type lowest_layer_type;
 
- friend bool operator<=(
- const buffers_iterator & a,
- const buffers_iterator & b);
 
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/buffers_iterator.hpp]
+[*Header: ][^boost/asio/buffered_stream.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
@@ -48946,42 +48681,33 @@
 
 
 
-[section:operator_eq__eq_ buffers_iterator::operator==]
-
-[indexterm2 operator==..buffers_iterator]
-Test two iterators for equality.
-
-
- friend bool operator==(
- const buffers_iterator & a,
- const buffers_iterator & b);
+[section:next_layer buffered_stream::next_layer]
 
+[indexterm2 next_layer..buffered_stream]
+Get a reference to the next layer.
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/buffers_iterator.hpp]
+ next_layer_type & next_layer();
 
-[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
 
-[section:operator_gt_ buffers_iterator::operator>]
+[section:next_layer_type buffered_stream::next_layer_type]
 
-[indexterm2 operator>..buffers_iterator]
-Compare two iterators.
+[indexterm2 next_layer_type..buffered_stream]
+The type of the next layer.
 
 
- friend bool operator>(
- const buffers_iterator & a,
- const buffers_iterator & b);
+ typedef boost::remove_reference< Stream >::type next_layer_type;
+
 
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/buffers_iterator.hpp]
+[*Header: ][^boost/asio/buffered_stream.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
@@ -48989,343 +48715,361 @@
 [endsect]
 
 
+[section:peek buffered_stream::peek]
 
-[section:operator_gt__eq_ buffers_iterator::operator>=]
+[indexterm2 peek..buffered_stream]
+Peek at the incoming data on the stream. Returns the number of bytes read. Throws an exception on failure.
 
-[indexterm2 operator>=..buffers_iterator]
-Compare two iterators.
 
+ template<
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
+ std::size_t ``[link boost_asio.reference.buffered_stream.peek.overload1 peek]``(
+ const MutableBufferSequence & buffers);
+ `` [''''&raquo;''' [link boost_asio.reference.buffered_stream.peek.overload1 more...]]``
 
- friend bool operator>=(
- const buffers_iterator & a,
- const buffers_iterator & b);
 
+Peek at the incoming data on the stream. Returns the number of bytes read, or 0 if an error occurred.
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/buffers_iterator.hpp]
+ template<
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
+ std::size_t ``[link boost_asio.reference.buffered_stream.peek.overload2 peek]``(
+ const MutableBufferSequence & buffers,
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.buffered_stream.peek.overload2 more...]]``
 
-[*Convenience header: ][^boost/asio.hpp]
 
+[section:overload1 buffered_stream::peek (1 of 2 overloads)]
 
-[endsect]
 
+Peek at the incoming data on the stream. Returns the number of bytes read. Throws an exception on failure.
 
 
-[section:operator_lb__rb_ buffers_iterator::operator\[\]]
+ template<
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
+ std::size_t peek(
+ const MutableBufferSequence & buffers);
 
-[indexterm2 operator\[\]..buffers_iterator]
-Access an individual element.
 
 
- reference operator[](
- std::ptrdiff_t difference) const;
+[endsect]
 
 
 
-[endsect]
+[section:overload2 buffered_stream::peek (2 of 2 overloads)]
 
 
+Peek at the incoming data on the stream. Returns the number of bytes read, or 0 if an error occurred.
 
-[section:pointer buffers_iterator::pointer]
 
-[indexterm2 pointer..buffers_iterator]
-The type of the result of applying `operator->()` to the iterator.
+ template<
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
+ std::size_t peek(
+ const MutableBufferSequence & buffers,
+ boost::system::error_code & ec);
 
 
- typedef const_or_non_const_ByteType * pointer;
 
+[endsect]
 
 
-If the buffer sequence stores buffer objects that are convertible to [link boost_asio.reference.mutable_buffer `mutable_buffer`], this is a pointer to a non-const ByteType. Otherwise, a pointer to a const ByteType.
+[endsect]
 
-[heading Requirements]
-
-[*Header: ][^boost/asio/buffers_iterator.hpp]
-
-[*Convenience header: ][^boost/asio.hpp]
+[section:read_some buffered_stream::read_some]
 
+[indexterm2 read_some..buffered_stream]
+Read some data from the stream. Returns the number of bytes read. Throws an exception on failure.
 
-[endsect]
 
+ template<
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
+ std::size_t ``[link boost_asio.reference.buffered_stream.read_some.overload1 read_some]``(
+ const MutableBufferSequence & buffers);
+ `` [''''&raquo;''' [link boost_asio.reference.buffered_stream.read_some.overload1 more...]]``
 
 
-[section:reference buffers_iterator::reference]
+Read some data from the stream. Returns the number of bytes read or 0 if an error occurred.
 
-[indexterm2 reference..buffers_iterator]
-The type of the result of applying `operator*()` to the iterator.
 
+ template<
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
+ std::size_t ``[link boost_asio.reference.buffered_stream.read_some.overload2 read_some]``(
+ const MutableBufferSequence & buffers,
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.buffered_stream.read_some.overload2 more...]]``
 
- typedef const_or_non_const_ByteType & reference;
 
+[section:overload1 buffered_stream::read_some (1 of 2 overloads)]
 
 
-If the buffer sequence stores buffer objects that are convertible to [link boost_asio.reference.mutable_buffer `mutable_buffer`], this is a reference to a non-const ByteType. Otherwise, a reference to a const ByteType.
+Read some data from the stream. Returns the number of bytes read. Throws an exception on failure.
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/buffers_iterator.hpp]
+ template<
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
+ std::size_t read_some(
+ const MutableBufferSequence & buffers);
 
-[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
 
-[section:value_type buffers_iterator::value_type]
-
-[indexterm2 value_type..buffers_iterator]
-The type of the value pointed to by the iterator.
+[section:overload2 buffered_stream::read_some (2 of 2 overloads)]
 
 
- typedef ByteType value_type;
+Read some data from the stream. Returns the number of bytes read or 0 if an error occurred.
 
 
+ template<
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
+ std::size_t read_some(
+ const MutableBufferSequence & buffers,
+ boost::system::error_code & ec);
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/buffers_iterator.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
+[endsect]
 
 
 [endsect]
 
+[section:write_some buffered_stream::write_some]
 
+[indexterm2 write_some..buffered_stream]
+Write the given data to the stream. Returns the number of bytes written. Throws an exception on failure.
 
-[endsect]
 
-[section:connect connect]
+ template<
+ typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
+ std::size_t ``[link boost_asio.reference.buffered_stream.write_some.overload1 write_some]``(
+ const ConstBufferSequence & buffers);
+ `` [''''&raquo;''' [link boost_asio.reference.buffered_stream.write_some.overload1 more...]]``
 
-[indexterm1 connect]
-Establishes a socket connection by trying each endpoint in a sequence.
 
-
- template<
- typename ``[link boost_asio.reference.Protocol Protocol]``,
- typename ``[link boost_asio.reference.SocketService SocketService]``,
- typename Iterator>
- Iterator ``[link boost_asio.reference.connect.overload1 connect]``(
- basic_socket< Protocol, SocketService > & s,
- Iterator begin);
- `` [''''&raquo;''' [link boost_asio.reference.connect.overload1 more...]]``
+Write the given data to the stream. Returns the number of bytes written, or 0 if an error occurred.
+
 
   template<
- typename ``[link boost_asio.reference.Protocol Protocol]``,
- typename ``[link boost_asio.reference.SocketService SocketService]``,
- typename Iterator>
- Iterator ``[link boost_asio.reference.connect.overload2 connect]``(
- basic_socket< Protocol, SocketService > & s,
- Iterator begin,
+ typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
+ std::size_t ``[link boost_asio.reference.buffered_stream.write_some.overload2 write_some]``(
+ const ConstBufferSequence & buffers,
       boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.connect.overload2 more...]]``
+ `` [''''&raquo;''' [link boost_asio.reference.buffered_stream.write_some.overload2 more...]]``
 
- template<
- typename ``[link boost_asio.reference.Protocol Protocol]``,
- typename ``[link boost_asio.reference.SocketService SocketService]``,
- typename Iterator>
- Iterator ``[link boost_asio.reference.connect.overload3 connect]``(
- basic_socket< Protocol, SocketService > & s,
- Iterator begin,
- Iterator end);
- `` [''''&raquo;''' [link boost_asio.reference.connect.overload3 more...]]``
 
- template<
- typename ``[link boost_asio.reference.Protocol Protocol]``,
- typename ``[link boost_asio.reference.SocketService SocketService]``,
- typename Iterator>
- Iterator ``[link boost_asio.reference.connect.overload4 connect]``(
- basic_socket< Protocol, SocketService > & s,
- Iterator begin,
- Iterator end,
- boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.connect.overload4 more...]]``
+[section:overload1 buffered_stream::write_some (1 of 2 overloads)]
 
- template<
- typename ``[link boost_asio.reference.Protocol Protocol]``,
- typename ``[link boost_asio.reference.SocketService SocketService]``,
- typename Iterator,
- typename ConnectCondition>
- Iterator ``[link boost_asio.reference.connect.overload5 connect]``(
- basic_socket< Protocol, SocketService > & s,
- Iterator begin,
- ConnectCondition connect_condition);
- `` [''''&raquo;''' [link boost_asio.reference.connect.overload5 more...]]``
 
- template<
- typename ``[link boost_asio.reference.Protocol Protocol]``,
- typename ``[link boost_asio.reference.SocketService SocketService]``,
- typename Iterator,
- typename ConnectCondition>
- Iterator ``[link boost_asio.reference.connect.overload6 connect]``(
- basic_socket< Protocol, SocketService > & s,
- Iterator begin,
- ConnectCondition connect_condition,
- boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.connect.overload6 more...]]``
+Write the given data to the stream. Returns the number of bytes written. Throws an exception on failure.
 
- template<
- typename ``[link boost_asio.reference.Protocol Protocol]``,
- typename ``[link boost_asio.reference.SocketService SocketService]``,
- typename Iterator,
- typename ConnectCondition>
- Iterator ``[link boost_asio.reference.connect.overload7 connect]``(
- basic_socket< Protocol, SocketService > & s,
- Iterator begin,
- Iterator end,
- ConnectCondition connect_condition);
- `` [''''&raquo;''' [link boost_asio.reference.connect.overload7 more...]]``
 
   template<
- typename ``[link boost_asio.reference.Protocol Protocol]``,
- typename ``[link boost_asio.reference.SocketService SocketService]``,
- typename Iterator,
- typename ConnectCondition>
- Iterator ``[link boost_asio.reference.connect.overload8 connect]``(
- basic_socket< Protocol, SocketService > & s,
- Iterator begin,
- Iterator end,
- ConnectCondition connect_condition,
- boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.connect.overload8 more...]]``
+ typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
+ std::size_t write_some(
+ const ConstBufferSequence & buffers);
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/connect.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
+[endsect]
 
 
-[section:overload1 connect (1 of 8 overloads)]
 
+[section:overload2 buffered_stream::write_some (2 of 2 overloads)]
 
-Establishes a socket connection by trying each endpoint in a sequence.
 
+Write the given data to the stream. Returns the number of bytes written, or 0 if an error occurred.
 
- template<
- typename ``[link boost_asio.reference.Protocol Protocol]``,
- typename ``[link boost_asio.reference.SocketService SocketService]``,
- typename Iterator>
- Iterator connect(
- basic_socket< Protocol, SocketService > & s,
- Iterator begin);
 
+ template<
+ typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
+ std::size_t write_some(
+ const ConstBufferSequence & buffers,
+ boost::system::error_code & ec);
 
-This function attempts to connect a socket to one of a sequence of endpoints. It does this by repeated calls to the socket's `connect` member function, once for each endpoint in the sequence, until a connection is successfully established.
 
 
-[heading Parameters]
-
+[endsect]
 
-[variablelist
-
-[[s][The socket to be connected. If the socket is already open, it will be closed.]]
 
-[[begin][An iterator pointing to the start of a sequence of endpoints.]]
+[endsect]
 
-]
 
+[endsect]
 
-[heading Return Value]
-
-On success, an iterator denoting the successfully connected endpoint. Otherwise, the end iterator.
+[section:buffered_write_stream buffered_write_stream]
 
 
-[heading Exceptions]
-
+Adds buffering to the write-related operations of a stream.
 
-[variablelist
-
-[[boost::system::system_error][Thrown on failure. If the sequence is empty, the associated `error_code` is `boost::asio::error::not_found`. Otherwise, contains the error from the last connection attempt.]]
 
-]
+ template<
+ typename Stream>
+ class buffered_write_stream :
+ noncopyable
 
 
-[heading Remarks]
-
-This overload assumes that a default constructed object of type `Iterator` represents the end of the sequence. This is a valid assumption for iterator types such as `boost::asio::ip::tcp::resolver::iterator`.
+[heading Types]
+[table
+ [[Name][Description]]
 
+ [
 
-[heading Example]
+ [[link boost_asio.reference.buffered_write_stream.lowest_layer_type [*lowest_layer_type]]]
+ [The type of the lowest layer. ]
   
+ ]
 
+ [
 
- tcp::resolver r(io_service);
- tcp::resolver::query q("host", "service");
- tcp::socket s(io_service);
- boost::asio::connect(s, r.resolve(q));
+ [[link boost_asio.reference.buffered_write_stream.next_layer_type [*next_layer_type]]]
+ [The type of the next layer. ]
+
+ ]
+
+]
 
+[heading Member Functions]
+[table
+ [[Name][Description]]
 
+ [
+ [[link boost_asio.reference.buffered_write_stream.async_flush [*async_flush]]]
+ [Start an asynchronous flush. ]
+ ]
+
+ [
+ [[link boost_asio.reference.buffered_write_stream.async_read_some [*async_read_some]]]
+ [Start an asynchronous read. The buffer into which the data will be read must be valid for the lifetime of the asynchronous operation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.buffered_write_stream.async_write_some [*async_write_some]]]
+ [Start an asynchronous write. The data being written must be valid for the lifetime of the asynchronous operation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.buffered_write_stream.buffered_write_stream [*buffered_write_stream]]]
+ [Construct, passing the specified argument to initialise the next layer. ]
+ ]
+
+ [
+ [[link boost_asio.reference.buffered_write_stream.close [*close]]]
+ [Close the stream. ]
+ ]
+
+ [
+ [[link boost_asio.reference.buffered_write_stream.flush [*flush]]]
+ [Flush all data from the buffer to the next layer. Returns the number of bytes written to the next layer on the last write operation. Throws an exception on failure.
 
+ Flush all data from the buffer to the next layer. Returns the number of bytes written to the next layer on the last write operation, or 0 if an error occurred. ]
+ ]
+
+ [
+ [[link boost_asio.reference.buffered_write_stream.get_io_service [*get_io_service]]]
+ [Get the io_service associated with the object. ]
+ ]
+
+ [
+ [[link boost_asio.reference.buffered_write_stream.in_avail [*in_avail]]]
+ [Determine the amount of data that may be read without blocking. ]
+ ]
+
+ [
+ [[link boost_asio.reference.buffered_write_stream.lowest_layer [*lowest_layer]]]
+ [Get a reference to the lowest layer.
 
+ Get a const reference to the lowest layer. ]
+ ]
+
+ [
+ [[link boost_asio.reference.buffered_write_stream.next_layer [*next_layer]]]
+ [Get a reference to the next layer. ]
+ ]
+
+ [
+ [[link boost_asio.reference.buffered_write_stream.peek [*peek]]]
+ [Peek at the incoming data on the stream. Returns the number of bytes read. Throws an exception on failure.
 
+ Peek at the incoming data on the stream. Returns the number of bytes read, or 0 if an error occurred. ]
+ ]
+
+ [
+ [[link boost_asio.reference.buffered_write_stream.read_some [*read_some]]]
+ [Read some data from the stream. Returns the number of bytes read. Throws an exception on failure.
 
+ Read some data from the stream. Returns the number of bytes read or 0 if an error occurred. ]
+ ]
+
+ [
+ [[link boost_asio.reference.buffered_write_stream.write_some [*write_some]]]
+ [Write the given data to the stream. Returns the number of bytes written. Throws an exception on failure.
 
-[endsect]
+ Write the given data to the stream. Returns the number of bytes written, or 0 if an error occurred and the error handler did not throw. ]
+ ]
+
+]
 
+[heading Data Members]
+[table
+ [[Name][Description]]
 
+ [
+ [[link boost_asio.reference.buffered_write_stream.default_buffer_size [*default_buffer_size]]]
+ [The default buffer size. ]
+ ]
 
-[section:overload2 connect (2 of 8 overloads)]
+]
 
+The [link boost_asio.reference.buffered_write_stream `buffered_write_stream`] class template can be used to add buffering to the synchronous and asynchronous write operations of a stream.
 
-Establishes a socket connection by trying each endpoint in a sequence.
 
+[heading Thread Safety]
+
+[*Distinct] [*objects:] Safe.
 
- template<
- typename ``[link boost_asio.reference.Protocol Protocol]``,
- typename ``[link boost_asio.reference.SocketService SocketService]``,
- typename Iterator>
- Iterator connect(
- basic_socket< Protocol, SocketService > & s,
- Iterator begin,
- boost::system::error_code & ec);
+[*Shared] [*objects:] Unsafe.
 
 
-This function attempts to connect a socket to one of a sequence of endpoints. It does this by repeated calls to the socket's `connect` member function, once for each endpoint in the sequence, until a connection is successfully established.
 
 
-[heading Parameters]
-
+[heading Requirements]
 
-[variablelist
-
-[[s][The socket to be connected. If the socket is already open, it will be closed.]]
+[*Header: ][^boost/asio/buffered_write_stream.hpp]
 
-[[begin][An iterator pointing to the start of a sequence of endpoints.]]
+[*Convenience header: ][^boost/asio.hpp]
 
-[[ec][Set to indicate what error occurred, if any. If the sequence is empty, set to `boost::asio::error::not_found`. Otherwise, contains the error from the last connection attempt.]]
 
-]
+[section:async_flush buffered_write_stream::async_flush]
 
+[indexterm2 async_flush..buffered_write_stream]
+Start an asynchronous flush.
 
-[heading Return Value]
-
-On success, an iterator denoting the successfully connected endpoint. Otherwise, the end iterator.
 
+ template<
+ typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
+ void async_flush(
+ WriteHandler handler);
 
-[heading Remarks]
-
-This overload assumes that a default constructed object of type `Iterator` represents the end of the sequence. This is a valid assumption for iterator types such as `boost::asio::ip::tcp::resolver::iterator`.
 
 
-[heading Example]
-
+[endsect]
 
 
- tcp::resolver r(io_service);
- tcp::resolver::query q("host", "service");
- tcp::socket s(io_service);
- boost::system::error_code ec;
- boost::asio::connect(s, r.resolve(q), ec);
- if (ec)
- {
- // An error occurred.
- }
 
+[section:async_read_some buffered_write_stream::async_read_some]
 
+[indexterm2 async_read_some..buffered_write_stream]
+Start an asynchronous read. The buffer into which the data will be read must be valid for the lifetime of the asynchronous operation.
 
 
+ template<
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
+ typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
+ void async_read_some(
+ const MutableBufferSequence & buffers,
+ ReadHandler handler);
 
 
 
@@ -49333,622 +49077,440 @@
 
 
 
-[section:overload3 connect (3 of 8 overloads)]
-
+[section:async_write_some buffered_write_stream::async_write_some]
 
-Establishes a socket connection by trying each endpoint in a sequence.
+[indexterm2 async_write_some..buffered_write_stream]
+Start an asynchronous write. The data being written must be valid for the lifetime of the asynchronous operation.
 
 
   template<
- typename ``[link boost_asio.reference.Protocol Protocol]``,
- typename ``[link boost_asio.reference.SocketService SocketService]``,
- typename Iterator>
- Iterator connect(
- basic_socket< Protocol, SocketService > & s,
- Iterator begin,
- Iterator end);
+ typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
+ typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
+ void async_write_some(
+ const ConstBufferSequence & buffers,
+ WriteHandler handler);
 
 
-This function attempts to connect a socket to one of a sequence of endpoints. It does this by repeated calls to the socket's `connect` member function, once for each endpoint in the sequence, until a connection is successfully established.
 
+[endsect]
 
-[heading Parameters]
-
 
-[variablelist
-
-[[s][The socket to be connected. If the socket is already open, it will be closed.]]
+[section:buffered_write_stream buffered_write_stream::buffered_write_stream]
 
-[[begin][An iterator pointing to the start of a sequence of endpoints.]]
+[indexterm2 buffered_write_stream..buffered_write_stream]
+Construct, passing the specified argument to initialise the next layer.
 
-[[end][An iterator pointing to the end of a sequence of endpoints.]]
 
-]
+ template<
+ typename Arg>
+ explicit ``[link boost_asio.reference.buffered_write_stream.buffered_write_stream.overload1 buffered_write_stream]``(
+ Arg & a);
+ `` [''''&raquo;''' [link boost_asio.reference.buffered_write_stream.buffered_write_stream.overload1 more...]]``
 
+ template<
+ typename Arg>
+ ``[link boost_asio.reference.buffered_write_stream.buffered_write_stream.overload2 buffered_write_stream]``(
+ Arg & a,
+ std::size_t buffer_size);
+ `` [''''&raquo;''' [link boost_asio.reference.buffered_write_stream.buffered_write_stream.overload2 more...]]``
 
-[heading Return Value]
-
-On success, an iterator denoting the successfully connected endpoint. Otherwise, the end iterator.
 
+[section:overload1 buffered_write_stream::buffered_write_stream (1 of 2 overloads)]
 
-[heading Exceptions]
-
 
-[variablelist
-
-[[boost::system::system_error][Thrown on failure. If the sequence is empty, the associated `error_code` is `boost::asio::error::not_found`. Otherwise, contains the error from the last connection attempt.]]
+Construct, passing the specified argument to initialise the next layer.
 
-]
 
+ template<
+ typename Arg>
+ buffered_write_stream(
+ Arg & a);
 
-[heading Example]
-
 
 
- tcp::resolver r(io_service);
- tcp::resolver::query q("host", "service");
- tcp::resolver::iterator i = r.resolve(q), end;
- tcp::socket s(io_service);
- boost::asio::connect(s, i, end);
+[endsect]
 
 
 
+[section:overload2 buffered_write_stream::buffered_write_stream (2 of 2 overloads)]
 
 
+Construct, passing the specified argument to initialise the next layer.
 
 
-[endsect]
+ template<
+ typename Arg>
+ buffered_write_stream(
+ Arg & a,
+ std::size_t buffer_size);
 
 
 
-[section:overload4 connect (4 of 8 overloads)]
+[endsect]
 
 
-Establishes a socket connection by trying each endpoint in a sequence.
+[endsect]
 
+[section:close buffered_write_stream::close]
 
- template<
- typename ``[link boost_asio.reference.Protocol Protocol]``,
- typename ``[link boost_asio.reference.SocketService SocketService]``,
- typename Iterator>
- Iterator connect(
- basic_socket< Protocol, SocketService > & s,
- Iterator begin,
- Iterator end,
- boost::system::error_code & ec);
+[indexterm2 close..buffered_write_stream]
+Close the stream.
 
 
-This function attempts to connect a socket to one of a sequence of endpoints. It does this by repeated calls to the socket's `connect` member function, once for each endpoint in the sequence, until a connection is successfully established.
+ void ``[link boost_asio.reference.buffered_write_stream.close.overload1 close]``();
+ `` [''''&raquo;''' [link boost_asio.reference.buffered_write_stream.close.overload1 more...]]``
 
+ boost::system::error_code ``[link boost_asio.reference.buffered_write_stream.close.overload2 close]``(
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.buffered_write_stream.close.overload2 more...]]``
 
-[heading Parameters]
-
 
-[variablelist
-
-[[s][The socket to be connected. If the socket is already open, it will be closed.]]
+[section:overload1 buffered_write_stream::close (1 of 2 overloads)]
 
-[[begin][An iterator pointing to the start of a sequence of endpoints.]]
 
-[[end][An iterator pointing to the end of a sequence of endpoints.]]
+Close the stream.
 
-[[ec][Set to indicate what error occurred, if any. If the sequence is empty, set to `boost::asio::error::not_found`. Otherwise, contains the error from the last connection attempt.]]
 
-]
+ void close();
 
 
-[heading Return Value]
-
-On success, an iterator denoting the successfully connected endpoint. Otherwise, the end iterator.
 
+[endsect]
 
-[heading Example]
-
 
 
- tcp::resolver r(io_service);
- tcp::resolver::query q("host", "service");
- tcp::resolver::iterator i = r.resolve(q), end;
- tcp::socket s(io_service);
- boost::system::error_code ec;
- boost::asio::connect(s, i, end, ec);
- if (ec)
- {
- // An error occurred.
- }
+[section:overload2 buffered_write_stream::close (2 of 2 overloads)]
 
 
+Close the stream.
 
 
+ boost::system::error_code close(
+ boost::system::error_code & ec);
 
 
 
 [endsect]
 
 
+[endsect]
 
-[section:overload5 connect (5 of 8 overloads)]
 
+[section:default_buffer_size buffered_write_stream::default_buffer_size]
 
-Establishes a socket connection by trying each endpoint in a sequence.
+[indexterm2 default_buffer_size..buffered_write_stream]
+The default buffer size.
 
 
- template<
- typename ``[link boost_asio.reference.Protocol Protocol]``,
- typename ``[link boost_asio.reference.SocketService SocketService]``,
- typename Iterator,
- typename ConnectCondition>
- Iterator connect(
- basic_socket< Protocol, SocketService > & s,
- Iterator begin,
- ConnectCondition connect_condition);
+ static const std::size_t default_buffer_size = implementation_defined;
 
 
-This function attempts to connect a socket to one of a sequence of endpoints. It does this by repeated calls to the socket's `connect` member function, once for each endpoint in the sequence, until a connection is successfully established.
 
+[endsect]
 
-[heading Parameters]
-
 
-[variablelist
-
-[[s][The socket to be connected. If the socket is already open, it will be closed.]]
+[section:flush buffered_write_stream::flush]
 
-[[begin][An iterator pointing to the start of a sequence of endpoints.]]
+[indexterm2 flush..buffered_write_stream]
+Flush all data from the buffer to the next layer. Returns the number of bytes written to the next layer on the last write operation. Throws an exception on failure.
 
-[[connect_condition][A function object that is called prior to each connection attempt. The signature of the function object must be:
-``
- Iterator connect_condition(
- const boost::system::error_code& ec,
- Iterator next);
-``
-The `ec` parameter contains the result from the most recent connect operation. Before the first connection attempt, `ec` is always set to indicate success. The `next` parameter is an iterator pointing to the next endpoint to be tried. The function object should return the next iterator, but is permitted to return a different iterator so that endpoints may be skipped. The implementation guarantees that the function object will never be called with the end iterator.]]
 
-]
+ std::size_t ``[link boost_asio.reference.buffered_write_stream.flush.overload1 flush]``();
+ `` [''''&raquo;''' [link boost_asio.reference.buffered_write_stream.flush.overload1 more...]]``
 
 
-[heading Return Value]
-
-On success, an iterator denoting the successfully connected endpoint. Otherwise, the end iterator.
+Flush all data from the buffer to the next layer. Returns the number of bytes written to the next layer on the last write operation, or 0 if an error occurred.
 
 
-[heading Exceptions]
-
+ std::size_t ``[link boost_asio.reference.buffered_write_stream.flush.overload2 flush]``(
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.buffered_write_stream.flush.overload2 more...]]``
 
-[variablelist
-
-[[boost::system::system_error][Thrown on failure. If the sequence is empty, the associated `error_code` is `boost::asio::error::not_found`. Otherwise, contains the error from the last connection attempt.]]
 
-]
+[section:overload1 buffered_write_stream::flush (1 of 2 overloads)]
 
 
-[heading Remarks]
-
-This overload assumes that a default constructed object of type `Iterator` represents the end of the sequence. This is a valid assumption for iterator types such as `boost::asio::ip::tcp::resolver::iterator`.
+Flush all data from the buffer to the next layer. Returns the number of bytes written to the next layer on the last write operation. Throws an exception on failure.
 
 
-[heading Example]
-
-The following connect condition function object can be used to output information about the individual connection attempts:
+ std::size_t flush();
 
- struct my_connect_condition
- {
- template <typename Iterator>
- Iterator operator()(
- const boost::system::error_code& ec,
- Iterator next)
- {
- if (ec) std::cout << "Error: " << ec.message() << std::endl;
- std::cout << "Trying: " << next->endpoint() << std::endl;
- return next;
- }
- };
 
 
-It would be used with the `boost::asio::connect` function as follows:
+[endsect]
 
- tcp::resolver r(io_service);
- tcp::resolver::query q("host", "service");
- tcp::socket s(io_service);
- tcp::resolver::iterator i = boost::asio::connect(
- s, r.resolve(q), my_connect_condition());
- std::cout << "Connected to: " << i->endpoint() << std::endl;
 
 
+[section:overload2 buffered_write_stream::flush (2 of 2 overloads)]
 
 
+Flush all data from the buffer to the next layer. Returns the number of bytes written to the next layer on the last write operation, or 0 if an error occurred.
 
 
+ std::size_t flush(
+ boost::system::error_code & ec);
 
-[endsect]
 
 
+[endsect]
 
-[section:overload6 connect (6 of 8 overloads)]
 
+[endsect]
 
-Establishes a socket connection by trying each endpoint in a sequence.
 
+[section:get_io_service buffered_write_stream::get_io_service]
 
- template<
- typename ``[link boost_asio.reference.Protocol Protocol]``,
- typename ``[link boost_asio.reference.SocketService SocketService]``,
- typename Iterator,
- typename ConnectCondition>
- Iterator connect(
- basic_socket< Protocol, SocketService > & s,
- Iterator begin,
- ConnectCondition connect_condition,
- boost::system::error_code & ec);
+[indexterm2 get_io_service..buffered_write_stream]
+Get the [link boost_asio.reference.io_service `io_service`] associated with the object.
 
 
-This function attempts to connect a socket to one of a sequence of endpoints. It does this by repeated calls to the socket's `connect` member function, once for each endpoint in the sequence, until a connection is successfully established.
+ boost::asio::io_service & get_io_service();
 
 
-[heading Parameters]
-
 
-[variablelist
-
-[[s][The socket to be connected. If the socket is already open, it will be closed.]]
+[endsect]
 
-[[begin][An iterator pointing to the start of a sequence of endpoints.]]
 
-[[connect_condition][A function object that is called prior to each connection attempt. The signature of the function object must be:
-``
- Iterator connect_condition(
- const boost::system::error_code& ec,
- Iterator next);
-``
-The `ec` parameter contains the result from the most recent connect operation. Before the first connection attempt, `ec` is always set to indicate success. The `next` parameter is an iterator pointing to the next endpoint to be tried. The function object should return the next iterator, but is permitted to return a different iterator so that endpoints may be skipped. The implementation guarantees that the function object will never be called with the end iterator.]]
+[section:in_avail buffered_write_stream::in_avail]
 
-[[ec][Set to indicate what error occurred, if any. If the sequence is empty, set to `boost::asio::error::not_found`. Otherwise, contains the error from the last connection attempt.]]
+[indexterm2 in_avail..buffered_write_stream]
+Determine the amount of data that may be read without blocking.
 
-]
 
+ std::size_t ``[link boost_asio.reference.buffered_write_stream.in_avail.overload1 in_avail]``();
+ `` [''''&raquo;''' [link boost_asio.reference.buffered_write_stream.in_avail.overload1 more...]]``
 
-[heading Return Value]
-
-On success, an iterator denoting the successfully connected endpoint. Otherwise, the end iterator.
+ std::size_t ``[link boost_asio.reference.buffered_write_stream.in_avail.overload2 in_avail]``(
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.buffered_write_stream.in_avail.overload2 more...]]``
 
 
-[heading Remarks]
-
-This overload assumes that a default constructed object of type `Iterator` represents the end of the sequence. This is a valid assumption for iterator types such as `boost::asio::ip::tcp::resolver::iterator`.
+[section:overload1 buffered_write_stream::in_avail (1 of 2 overloads)]
 
 
-[heading Example]
-
-The following connect condition function object can be used to output information about the individual connection attempts:
+Determine the amount of data that may be read without blocking.
 
- struct my_connect_condition
- {
- template <typename Iterator>
- Iterator operator()(
- const boost::system::error_code& ec,
- Iterator next)
- {
- if (ec) std::cout << "Error: " << ec.message() << std::endl;
- std::cout << "Trying: " << next->endpoint() << std::endl;
- return next;
- }
- };
 
+ std::size_t in_avail();
 
-It would be used with the `boost::asio::connect` function as follows:
 
- tcp::resolver r(io_service);
- tcp::resolver::query q("host", "service");
- tcp::socket s(io_service);
- boost::system::error_code ec;
- tcp::resolver::iterator i = boost::asio::connect(
- s, r.resolve(q), my_connect_condition(), ec);
- if (ec)
- {
- // An error occurred.
- }
- else
- {
- std::cout << "Connected to: " << i->endpoint() << std::endl;
- }
 
+[endsect]
 
 
 
+[section:overload2 buffered_write_stream::in_avail (2 of 2 overloads)]
 
 
+Determine the amount of data that may be read without blocking.
 
-[endsect]
 
+ std::size_t in_avail(
+ boost::system::error_code & ec);
 
 
-[section:overload7 connect (7 of 8 overloads)]
 
+[endsect]
 
-Establishes a socket connection by trying each endpoint in a sequence.
 
+[endsect]
 
- template<
- typename ``[link boost_asio.reference.Protocol Protocol]``,
- typename ``[link boost_asio.reference.SocketService SocketService]``,
- typename Iterator,
- typename ConnectCondition>
- Iterator connect(
- basic_socket< Protocol, SocketService > & s,
- Iterator begin,
- Iterator end,
- ConnectCondition connect_condition);
+[section:lowest_layer buffered_write_stream::lowest_layer]
 
+[indexterm2 lowest_layer..buffered_write_stream]
+Get a reference to the lowest layer.
 
-This function attempts to connect a socket to one of a sequence of endpoints. It does this by repeated calls to the socket's `connect` member function, once for each endpoint in the sequence, until a connection is successfully established.
 
+ lowest_layer_type & ``[link boost_asio.reference.buffered_write_stream.lowest_layer.overload1 lowest_layer]``();
+ `` [''''&raquo;''' [link boost_asio.reference.buffered_write_stream.lowest_layer.overload1 more...]]``
 
-[heading Parameters]
-
 
-[variablelist
-
-[[s][The socket to be connected. If the socket is already open, it will be closed.]]
+Get a const reference to the lowest layer.
 
-[[begin][An iterator pointing to the start of a sequence of endpoints.]]
 
-[[end][An iterator pointing to the end of a sequence of endpoints.]]
+ const lowest_layer_type & ``[link boost_asio.reference.buffered_write_stream.lowest_layer.overload2 lowest_layer]``() const;
+ `` [''''&raquo;''' [link boost_asio.reference.buffered_write_stream.lowest_layer.overload2 more...]]``
 
-[[connect_condition][A function object that is called prior to each connection attempt. The signature of the function object must be:
-``
- Iterator connect_condition(
- const boost::system::error_code& ec,
- Iterator next);
-``
-The `ec` parameter contains the result from the most recent connect operation. Before the first connection attempt, `ec` is always set to indicate success. The `next` parameter is an iterator pointing to the next endpoint to be tried. The function object should return the next iterator, but is permitted to return a different iterator so that endpoints may be skipped. The implementation guarantees that the function object will never be called with the end iterator.]]
 
-]
+[section:overload1 buffered_write_stream::lowest_layer (1 of 2 overloads)]
 
 
-[heading Return Value]
-
-On success, an iterator denoting the successfully connected endpoint. Otherwise, the end iterator.
+Get a reference to the lowest layer.
 
 
-[heading Exceptions]
-
+ lowest_layer_type & lowest_layer();
 
-[variablelist
-
-[[boost::system::system_error][Thrown on failure. If the sequence is empty, the associated `error_code` is `boost::asio::error::not_found`. Otherwise, contains the error from the last connection attempt.]]
 
-]
 
+[endsect]
 
-[heading Example]
-
-The following connect condition function object can be used to output information about the individual connection attempts:
 
- struct my_connect_condition
- {
- template <typename Iterator>
- Iterator operator()(
- const boost::system::error_code& ec,
- Iterator next)
- {
- if (ec) std::cout << "Error: " << ec.message() << std::endl;
- std::cout << "Trying: " << next->endpoint() << std::endl;
- return next;
- }
- };
 
+[section:overload2 buffered_write_stream::lowest_layer (2 of 2 overloads)]
 
-It would be used with the `boost::asio::connect` function as follows:
 
- tcp::resolver r(io_service);
- tcp::resolver::query q("host", "service");
- tcp::resolver::iterator i = r.resolve(q), end;
- tcp::socket s(io_service);
- i = boost::asio::connect(s, i, end, my_connect_condition());
- std::cout << "Connected to: " << i->endpoint() << std::endl;
+Get a const reference to the lowest layer.
 
 
+ const lowest_layer_type & lowest_layer() const;
 
 
 
+[endsect]
 
 
 [endsect]
 
 
+[section:lowest_layer_type buffered_write_stream::lowest_layer_type]
 
-[section:overload8 connect (8 of 8 overloads)]
+[indexterm2 lowest_layer_type..buffered_write_stream]
+The type of the lowest layer.
 
 
-Establishes a socket connection by trying each endpoint in a sequence.
+ typedef next_layer_type::lowest_layer_type lowest_layer_type;
 
 
- template<
- typename ``[link boost_asio.reference.Protocol Protocol]``,
- typename ``[link boost_asio.reference.SocketService SocketService]``,
- typename Iterator,
- typename ConnectCondition>
- Iterator connect(
- basic_socket< Protocol, SocketService > & s,
- Iterator begin,
- Iterator end,
- ConnectCondition connect_condition,
- boost::system::error_code & ec);
 
+[heading Requirements]
 
-This function attempts to connect a socket to one of a sequence of endpoints. It does this by repeated calls to the socket's `connect` member function, once for each endpoint in the sequence, until a connection is successfully established.
+[*Header: ][^boost/asio/buffered_write_stream.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
-[heading Parameters]
-
 
-[variablelist
-
-[[s][The socket to be connected. If the socket is already open, it will be closed.]]
+[endsect]
 
-[[begin][An iterator pointing to the start of a sequence of endpoints.]]
 
-[[end][An iterator pointing to the end of a sequence of endpoints.]]
 
-[[connect_condition][A function object that is called prior to each connection attempt. The signature of the function object must be:
-``
- Iterator connect_condition(
- const boost::system::error_code& ec,
- Iterator next);
-``
-The `ec` parameter contains the result from the most recent connect operation. Before the first connection attempt, `ec` is always set to indicate success. The `next` parameter is an iterator pointing to the next endpoint to be tried. The function object should return the next iterator, but is permitted to return a different iterator so that endpoints may be skipped. The implementation guarantees that the function object will never be called with the end iterator.]]
+[section:next_layer buffered_write_stream::next_layer]
 
-[[ec][Set to indicate what error occurred, if any. If the sequence is empty, set to `boost::asio::error::not_found`. Otherwise, contains the error from the last connection attempt.]]
+[indexterm2 next_layer..buffered_write_stream]
+Get a reference to the next layer.
 
-]
 
+ next_layer_type & next_layer();
 
-[heading Return Value]
-
-On success, an iterator denoting the successfully connected endpoint. Otherwise, the end iterator.
 
 
-[heading Example]
-
-The following connect condition function object can be used to output information about the individual connection attempts:
+[endsect]
 
- struct my_connect_condition
- {
- template <typename Iterator>
- Iterator operator()(
- const boost::system::error_code& ec,
- Iterator next)
- {
- if (ec) std::cout << "Error: " << ec.message() << std::endl;
- std::cout << "Trying: " << next->endpoint() << std::endl;
- return next;
- }
- };
 
 
-It would be used with the `boost::asio::connect` function as follows:
+[section:next_layer_type buffered_write_stream::next_layer_type]
 
- tcp::resolver r(io_service);
- tcp::resolver::query q("host", "service");
- tcp::resolver::iterator i = r.resolve(q), end;
- tcp::socket s(io_service);
- boost::system::error_code ec;
- i = boost::asio::connect(s, i, end, my_connect_condition(), ec);
- if (ec)
- {
- // An error occurred.
- }
- else
- {
- std::cout << "Connected to: " << i->endpoint() << std::endl;
- }
+[indexterm2 next_layer_type..buffered_write_stream]
+The type of the next layer.
 
 
+ typedef boost::remove_reference< Stream >::type next_layer_type;
 
 
 
+[heading Requirements]
 
+[*Header: ][^boost/asio/buffered_write_stream.hpp]
 
-[endsect]
+[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
-[section:const_buffer const_buffer]
-
 
-Holds a buffer that cannot be modified.
+[section:peek buffered_write_stream::peek]
 
+[indexterm2 peek..buffered_write_stream]
+Peek at the incoming data on the stream. Returns the number of bytes read. Throws an exception on failure.
 
- class const_buffer
 
+ template<
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
+ std::size_t ``[link boost_asio.reference.buffered_write_stream.peek.overload1 peek]``(
+ const MutableBufferSequence & buffers);
+ `` [''''&raquo;''' [link boost_asio.reference.buffered_write_stream.peek.overload1 more...]]``
 
-[heading Member Functions]
-[table
- [[Name][Description]]
 
- [
- [[link boost_asio.reference.const_buffer.const_buffer [*const_buffer]]]
- [Construct an empty buffer.
+Peek at the incoming data on the stream. Returns the number of bytes read, or 0 if an error occurred.
 
- Construct a buffer to represent a given memory range.
 
- Construct a non-modifiable buffer from a modifiable one. ]
- ]
-
-]
+ template<
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
+ std::size_t ``[link boost_asio.reference.buffered_write_stream.peek.overload2 peek]``(
+ const MutableBufferSequence & buffers,
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.buffered_write_stream.peek.overload2 more...]]``
 
-[heading Related Functions]
-[table
- [[Name][Description]]
 
- [
- [[link boost_asio.reference.const_buffer.operator_plus_ [*operator+]]]
- [Create a new non-modifiable buffer that is offset from the start of another. ]
- ]
-
-]
+[section:overload1 buffered_write_stream::peek (1 of 2 overloads)]
 
-The [link boost_asio.reference.const_buffer `const_buffer`] class provides a safe representation of a buffer that cannot be modified. It does not own the underlying data, and so is cheap to copy or assign.
 
+Peek at the incoming data on the stream. Returns the number of bytes read. Throws an exception on failure.
 
-[heading Accessing Buffer Contents]
-
 
+ template<
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
+ std::size_t peek(
+ const MutableBufferSequence & buffers);
 
-The contents of a buffer may be accessed using the [link boost_asio.reference.buffer_size `buffer_size`] and [link boost_asio.reference.buffer_cast `buffer_cast`] functions:
 
 
+[endsect]
 
- boost::asio::const_buffer b1 = ...;
- std::size_t s1 = boost::asio::buffer_size(b1);
- const unsigned char* p1 = boost::asio::buffer_cast<const unsigned char*>(b1);
 
 
+[section:overload2 buffered_write_stream::peek (2 of 2 overloads)]
 
 
-The `boost::asio::buffer_cast` function permits violations of type safety, so uses of it in application code should be carefully considered.
+Peek at the incoming data on the stream. Returns the number of bytes read, or 0 if an error occurred.
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/buffer.hpp]
+ template<
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
+ std::size_t peek(
+ const MutableBufferSequence & buffers,
+ boost::system::error_code & ec);
 
-[*Convenience header: ][^boost/asio.hpp]
 
-[section:const_buffer const_buffer::const_buffer]
 
-[indexterm2 const_buffer..const_buffer]
-Construct an empty buffer.
+[endsect]
 
 
- ``[link boost_asio.reference.const_buffer.const_buffer.overload1 const_buffer]``();
- `` [''''&raquo;''' [link boost_asio.reference.const_buffer.const_buffer.overload1 more...]]``
+[endsect]
 
+[section:read_some buffered_write_stream::read_some]
 
-Construct a buffer to represent a given memory range.
+[indexterm2 read_some..buffered_write_stream]
+Read some data from the stream. Returns the number of bytes read. Throws an exception on failure.
 
 
- ``[link boost_asio.reference.const_buffer.const_buffer.overload2 const_buffer]``(
- const void * data,
- std::size_t size);
- `` [''''&raquo;''' [link boost_asio.reference.const_buffer.const_buffer.overload2 more...]]``
+ template<
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
+ std::size_t ``[link boost_asio.reference.buffered_write_stream.read_some.overload1 read_some]``(
+ const MutableBufferSequence & buffers);
+ `` [''''&raquo;''' [link boost_asio.reference.buffered_write_stream.read_some.overload1 more...]]``
 
 
-Construct a non-modifiable buffer from a modifiable one.
+Read some data from the stream. Returns the number of bytes read or 0 if an error occurred.
 
 
- ``[link boost_asio.reference.const_buffer.const_buffer.overload3 const_buffer]``(
- const mutable_buffer & b);
- `` [''''&raquo;''' [link boost_asio.reference.const_buffer.const_buffer.overload3 more...]]``
+ template<
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
+ std::size_t ``[link boost_asio.reference.buffered_write_stream.read_some.overload2 read_some]``(
+ const MutableBufferSequence & buffers,
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.buffered_write_stream.read_some.overload2 more...]]``
 
 
-[section:overload1 const_buffer::const_buffer (1 of 3 overloads)]
+[section:overload1 buffered_write_stream::read_some (1 of 2 overloads)]
 
 
-Construct an empty buffer.
+Read some data from the stream. Returns the number of bytes read. Throws an exception on failure.
 
 
- const_buffer();
+ template<
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
+ std::size_t read_some(
+ const MutableBufferSequence & buffers);
 
 
 
@@ -49956,116 +49518,182 @@
 
 
 
-[section:overload2 const_buffer::const_buffer (2 of 3 overloads)]
+[section:overload2 buffered_write_stream::read_some (2 of 2 overloads)]
 
 
-Construct a buffer to represent a given memory range.
+Read some data from the stream. Returns the number of bytes read or 0 if an error occurred.
 
 
- const_buffer(
- const void * data,
- std::size_t size);
+ template<
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
+ std::size_t read_some(
+ const MutableBufferSequence & buffers,
+ boost::system::error_code & ec);
 
 
 
 [endsect]
 
 
+[endsect]
 
-[section:overload3 const_buffer::const_buffer (3 of 3 overloads)]
+[section:write_some buffered_write_stream::write_some]
 
+[indexterm2 write_some..buffered_write_stream]
+Write the given data to the stream. Returns the number of bytes written. Throws an exception on failure.
 
-Construct a non-modifiable buffer from a modifiable one.
 
+ template<
+ typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
+ std::size_t ``[link boost_asio.reference.buffered_write_stream.write_some.overload1 write_some]``(
+ const ConstBufferSequence & buffers);
+ `` [''''&raquo;''' [link boost_asio.reference.buffered_write_stream.write_some.overload1 more...]]``
 
- const_buffer(
- const mutable_buffer & b);
 
+Write the given data to the stream. Returns the number of bytes written, or 0 if an error occurred and the error handler did not throw.
 
 
-[endsect]
+ template<
+ typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
+ std::size_t ``[link boost_asio.reference.buffered_write_stream.write_some.overload2 write_some]``(
+ const ConstBufferSequence & buffers,
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.buffered_write_stream.write_some.overload2 more...]]``
 
 
-[endsect]
+[section:overload1 buffered_write_stream::write_some (1 of 2 overloads)]
 
-[section:operator_plus_ const_buffer::operator+]
 
-[indexterm2 operator+..const_buffer]
-Create a new non-modifiable buffer that is offset from the start of another.
+Write the given data to the stream. Returns the number of bytes written. Throws an exception on failure.
 
 
- const_buffer ``[link boost_asio.reference.const_buffer.operator_plus_.overload1 operator+]``(
- const const_buffer & b,
- std::size_t start);
- `` [''''&raquo;''' [link boost_asio.reference.const_buffer.operator_plus_.overload1 more...]]``
+ template<
+ typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
+ std::size_t write_some(
+ const ConstBufferSequence & buffers);
 
- const_buffer ``[link boost_asio.reference.const_buffer.operator_plus_.overload2 operator+]``(
- std::size_t start,
- const const_buffer & b);
- `` [''''&raquo;''' [link boost_asio.reference.const_buffer.operator_plus_.overload2 more...]]``
 
 
-[section:overload1 const_buffer::operator+ (1 of 2 overloads)]
+[endsect]
 
 
-Create a new non-modifiable buffer that is offset from the start of another.
 
+[section:overload2 buffered_write_stream::write_some (2 of 2 overloads)]
 
- const_buffer operator+(
- const const_buffer & b,
- std::size_t start);
 
+Write the given data to the stream. Returns the number of bytes written, or 0 if an error occurred and the error handler did not throw.
 
 
-[endsect]
+ template<
+ typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
+ std::size_t write_some(
+ const ConstBufferSequence & buffers,
+ boost::system::error_code & ec);
 
 
 
-[section:overload2 const_buffer::operator+ (2 of 2 overloads)]
+[endsect]
 
 
-Create a new non-modifiable buffer that is offset from the start of another.
+[endsect]
 
 
- const_buffer operator+(
- std::size_t start,
- const const_buffer & b);
+[endsect]
 
 
+[section:buffers_begin buffers_begin]
 
-[endsect]
+[indexterm1 buffers_begin]
+Construct an iterator representing the beginning of the buffers' data.
 
 
-[endsect]
+ template<
+ typename BufferSequence>
+ buffers_iterator< BufferSequence > buffers_begin(
+ const BufferSequence & buffers);
 
 
-[endsect]
+[heading Requirements]
 
-[section:const_buffers_1 const_buffers_1]
+[*Header: ][^boost/asio/buffers_iterator.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
-Adapts a single non-modifiable buffer so that it meets the requirements of the ConstBufferSequence concept.
 
+[endsect]
 
- class const_buffers_1 :
- public const_buffer
 
 
-[heading Types]
-[table
- [[Name][Description]]
+[section:buffers_end buffers_end]
 
- [
+[indexterm1 buffers_end]
+Construct an iterator representing the end of the buffers' data.
 
- [[link boost_asio.reference.const_buffers_1.const_iterator [*const_iterator]]]
- [A random-access iterator type that may be used to read elements. ]
+
+ template<
+ typename BufferSequence>
+ buffers_iterator< BufferSequence > buffers_end(
+ const BufferSequence & buffers);
+
+
+[heading Requirements]
+
+[*Header: ][^boost/asio/buffers_iterator.hpp]
+
+[*Convenience header: ][^boost/asio.hpp]
+
+
+[endsect]
+
+
+[section:buffers_iterator buffers_iterator]
+
+
+A random access iterator over the bytes in a buffer sequence.
+
+
+ template<
+ typename BufferSequence,
+ typename ByteType = char>
+ class buffers_iterator
+
+
+[heading Types]
+[table
+ [[Name][Description]]
+
+ [
+
+ [[link boost_asio.reference.buffers_iterator.difference_type [*difference_type]]]
+ [The type used for the distance between two iterators. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.const_buffers_1.value_type [*value_type]]]
- [The type for each element in the list of buffers. ]
+ [[link boost_asio.reference.buffers_iterator.iterator_category [*iterator_category]]]
+ [The iterator category. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.buffers_iterator.pointer [*pointer]]]
+ [The type of the result of applying operator->() to the iterator. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.buffers_iterator.reference [*reference]]]
+ [The type of the result of applying operator*() to the iterator. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.buffers_iterator.value_type [*value_type]]]
+ [The type of the value pointed to by the iterator. ]
   
   ]
 
@@ -50076,121 +49704,228 @@
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.const_buffers_1.begin [*begin]]]
- [Get a random-access iterator to the first element. ]
+ [[link boost_asio.reference.buffers_iterator.begin [*begin]]]
+ [Construct an iterator representing the beginning of the buffers' data. ]
   ]
   
   [
- [[link boost_asio.reference.const_buffers_1.const_buffers_1 [*const_buffers_1]]]
- [Construct to represent a given memory range.
+ [[link boost_asio.reference.buffers_iterator.buffers_iterator [*buffers_iterator]]]
+ [Default constructor. Creates an iterator in an undefined state. ]
+ ]
+
+ [
+ [[link boost_asio.reference.buffers_iterator.end [*end]]]
+ [Construct an iterator representing the end of the buffers' data. ]
+ ]
+
+ [
+ [[link boost_asio.reference.buffers_iterator.operator__star_ [*operator *]]]
+ [Dereference an iterator. ]
+ ]
+
+ [
+ [[link boost_asio.reference.buffers_iterator.operator_plus__plus_ [*operator++]]]
+ [Increment operator (prefix).
 
- Construct to represent a single non-modifiable buffer. ]
+ Increment operator (postfix). ]
   ]
   
   [
- [[link boost_asio.reference.const_buffers_1.end [*end]]]
- [Get a random-access iterator for one past the last element. ]
+ [[link boost_asio.reference.buffers_iterator.operator_plus__eq_ [*operator+=]]]
+ [Addition operator. ]
+ ]
+
+ [
+ [[link boost_asio.reference.buffers_iterator.operator_minus__minus_ [*operator--]]]
+ [Decrement operator (prefix).
+
+ Decrement operator (postfix). ]
+ ]
+
+ [
+ [[link boost_asio.reference.buffers_iterator.operator_minus__eq_ [*operator-=]]]
+ [Subtraction operator. ]
+ ]
+
+ [
+ [[link boost_asio.reference.buffers_iterator.operator_arrow_ [*operator->]]]
+ [Dereference an iterator. ]
+ ]
+
+ [
+ [[link boost_asio.reference.buffers_iterator.operator_lb__rb_ [*operator\[\]]]]
+ [Access an individual element. ]
   ]
   
 ]
 
-[heading Related Functions]
+[heading Friends]
 [table
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.const_buffers_1.operator_plus_ [*operator+]]]
- [Create a new non-modifiable buffer that is offset from the start of another. ]
+ [[link boost_asio.reference.buffers_iterator.operator_not__eq_ [*operator!=]]]
+ [Test two iterators for inequality. ]
+ ]
+
+ [
+ [[link boost_asio.reference.buffers_iterator.operator_plus_ [*operator+]]]
+ [Addition operator. ]
+ ]
+
+ [
+ [[link boost_asio.reference.buffers_iterator.operator_minus_ [*operator-]]]
+ [Subtraction operator. ]
+ ]
+
+ [
+ [[link boost_asio.reference.buffers_iterator.operator_lt_ [*operator<]]]
+ [Compare two iterators. ]
+ ]
+
+ [
+ [[link boost_asio.reference.buffers_iterator.operator_lt__eq_ [*operator<=]]]
+ [Compare two iterators. ]
+ ]
+
+ [
+ [[link boost_asio.reference.buffers_iterator.operator_eq__eq_ [*operator==]]]
+ [Test two iterators for equality. ]
+ ]
+
+ [
+ [[link boost_asio.reference.buffers_iterator.operator_gt_ [*operator>]]]
+ [Compare two iterators. ]
+ ]
+
+ [
+ [[link boost_asio.reference.buffers_iterator.operator_gt__eq_ [*operator>=]]]
+ [Compare two iterators. ]
   ]
   
 ]
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/buffer.hpp]
+[*Header: ][^boost/asio/buffers_iterator.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
 
-[section:begin const_buffers_1::begin]
+[section:begin buffers_iterator::begin]
 
-[indexterm2 begin..const_buffers_1]
-Get a random-access iterator to the first element.
+[indexterm2 begin..buffers_iterator]
+Construct an iterator representing the beginning of the buffers' data.
 
 
- const_iterator begin() const;
+ static buffers_iterator begin(
+ const BufferSequence & buffers);
 
 
 
 [endsect]
 
 
-[section:const_buffers_1 const_buffers_1::const_buffers_1]
 
-[indexterm2 const_buffers_1..const_buffers_1]
-Construct to represent a given memory range.
+[section:buffers_iterator buffers_iterator::buffers_iterator]
 
+[indexterm2 buffers_iterator..buffers_iterator]
+Default constructor. Creates an iterator in an undefined state.
 
- ``[link boost_asio.reference.const_buffers_1.const_buffers_1.overload1 const_buffers_1]``(
- const void * data,
- std::size_t size);
- `` [''''&raquo;''' [link boost_asio.reference.const_buffers_1.const_buffers_1.overload1 more...]]``
 
+ buffers_iterator();
 
-Construct to represent a single non-modifiable buffer.
 
 
- explicit ``[link boost_asio.reference.const_buffers_1.const_buffers_1.overload2 const_buffers_1]``(
- const const_buffer & b);
- `` [''''&raquo;''' [link boost_asio.reference.const_buffers_1.const_buffers_1.overload2 more...]]``
+[endsect]
 
 
-[section:overload1 const_buffers_1::const_buffers_1 (1 of 2 overloads)]
 
+[section:difference_type buffers_iterator::difference_type]
+
+[indexterm2 difference_type..buffers_iterator]
+The type used for the distance between two iterators.
 
-Construct to represent a given memory range.
 
+ typedef std::ptrdiff_t difference_type;
 
- const_buffers_1(
- const void * data,
- std::size_t size);
 
 
+[heading Requirements]
+
+[*Header: ][^boost/asio/buffers_iterator.hpp]
+
+[*Convenience header: ][^boost/asio.hpp]
+
 
 [endsect]
 
 
 
-[section:overload2 const_buffers_1::const_buffers_1 (2 of 2 overloads)]
+[section:end buffers_iterator::end]
 
+[indexterm2 end..buffers_iterator]
+Construct an iterator representing the end of the buffers' data.
 
-Construct to represent a single non-modifiable buffer.
+
+ static buffers_iterator end(
+ const BufferSequence & buffers);
 
 
- const_buffers_1(
- const const_buffer & b);
 
+[endsect]
+
+
+
+[section:iterator_category buffers_iterator::iterator_category]
+
+[indexterm2 iterator_category..buffers_iterator]
+The iterator category.
+
+
+ typedef std::random_access_iterator_tag iterator_category;
+
+
+
+[heading Requirements]
+
+[*Header: ][^boost/asio/buffers_iterator.hpp]
+
+[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
+
+[section:operator__star_ buffers_iterator::operator *]
+
+[indexterm2 operator *..buffers_iterator]
+Dereference an iterator.
+
+
+ reference operator *() const;
+
+
+
 [endsect]
 
 
-[section:const_iterator const_buffers_1::const_iterator]
 
-[indexterm2 const_iterator..const_buffers_1]
-A random-access iterator type that may be used to read elements.
+[section:operator_not__eq_ buffers_iterator::operator!=]
 
+[indexterm2 operator!=..buffers_iterator]
+Test two iterators for inequality.
 
- typedef const const_buffer * const_iterator;
 
+ friend bool operator!=(
+ const buffers_iterator & a,
+ const buffers_iterator & b);
 
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/buffer.hpp]
+[*Header: ][^boost/asio/buffers_iterator.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
@@ -50198,49 +49933,93 @@
 [endsect]
 
 
+[section:operator_plus_ buffers_iterator::operator+]
 
-[section:end const_buffers_1::end]
+[indexterm2 operator+..buffers_iterator]
+Addition operator.
 
-[indexterm2 end..const_buffers_1]
-Get a random-access iterator for one past the last element.
 
+ friend buffers_iterator ``[link boost_asio.reference.buffers_iterator.operator_plus_.overload1 operator+]``(
+ const buffers_iterator & iter,
+ std::ptrdiff_t difference);
+ `` [''''&raquo;''' [link boost_asio.reference.buffers_iterator.operator_plus_.overload1 more...]]``
+
+ friend buffers_iterator ``[link boost_asio.reference.buffers_iterator.operator_plus_.overload2 operator+]``(
+ std::ptrdiff_t difference,
+ const buffers_iterator & iter);
+ `` [''''&raquo;''' [link boost_asio.reference.buffers_iterator.operator_plus_.overload2 more...]]``
+
+
+[section:overload1 buffers_iterator::operator+ (1 of 2 overloads)]
+
+
+Addition operator.
 
- const_iterator end() const;
 
+ friend buffers_iterator operator+(
+ const buffers_iterator & iter,
+ std::ptrdiff_t difference);
+
+
+[heading Requirements]
+
+[*Header: ][^boost/asio/buffers_iterator.hpp]
+
+[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
-[section:operator_plus_ const_buffers_1::operator+]
 
-[indexterm2 operator+..const_buffers_1]
-Create a new non-modifiable buffer that is offset from the start of another.
+[section:overload2 buffers_iterator::operator+ (2 of 2 overloads)]
 
 
- const_buffer ``[link boost_asio.reference.const_buffers_1.operator_plus_.overload1 operator+]``(
- const const_buffer & b,
- std::size_t start);
- `` [''''&raquo;''' [link boost_asio.reference.const_buffers_1.operator_plus_.overload1 more...]]``
+Addition operator.
 
- const_buffer ``[link boost_asio.reference.const_buffers_1.operator_plus_.overload2 operator+]``(
- std::size_t start,
- const const_buffer & b);
- `` [''''&raquo;''' [link boost_asio.reference.const_buffers_1.operator_plus_.overload2 more...]]``
 
+ friend buffers_iterator operator+(
+ std::ptrdiff_t difference,
+ const buffers_iterator & iter);
 
-[section:overload1 const_buffers_1::operator+ (1 of 2 overloads)]
 
+[heading Requirements]
 
-['Inherited from const_buffer.]
+[*Header: ][^boost/asio/buffers_iterator.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
-Create a new non-modifiable buffer that is offset from the start of another.
 
+[endsect]
+
+
+[endsect]
+
+[section:operator_plus__plus_ buffers_iterator::operator++]
+
+[indexterm2 operator++..buffers_iterator]
+Increment operator (prefix).
+
+
+ buffers_iterator & ``[link boost_asio.reference.buffers_iterator.operator_plus__plus_.overload1 operator++]``();
+ `` [''''&raquo;''' [link boost_asio.reference.buffers_iterator.operator_plus__plus_.overload1 more...]]``
 
- const_buffer operator+(
- const const_buffer & b,
- std::size_t start);
+
+Increment operator (postfix).
+
+
+ buffers_iterator ``[link boost_asio.reference.buffers_iterator.operator_plus__plus_.overload2 operator++]``(
+ int );
+ `` [''''&raquo;''' [link boost_asio.reference.buffers_iterator.operator_plus__plus_.overload2 more...]]``
+
+
+[section:overload1 buffers_iterator::operator++ (1 of 2 overloads)]
+
+
+Increment operator (prefix).
+
+
+ buffers_iterator & operator++();
 
 
 
@@ -50248,86 +50027,90 @@
 
 
 
-[section:overload2 const_buffers_1::operator+ (2 of 2 overloads)]
+[section:overload2 buffers_iterator::operator++ (2 of 2 overloads)]
 
 
-['Inherited from const_buffer.]
+Increment operator (postfix).
 
 
-Create a new non-modifiable buffer that is offset from the start of another.
+ buffers_iterator operator++(
+ int );
 
 
- const_buffer operator+(
- std::size_t start,
- const const_buffer & b);
 
+[endsect]
 
 
 [endsect]
 
 
+[section:operator_plus__eq_ buffers_iterator::operator+=]
+
+[indexterm2 operator+=..buffers_iterator]
+Addition operator.
+
+
+ buffers_iterator & operator+=(
+ std::ptrdiff_t difference);
+
+
+
 [endsect]
 
 
-[section:value_type const_buffers_1::value_type]
+[section:operator_minus_ buffers_iterator::operator-]
 
-[indexterm2 value_type..const_buffers_1]
-The type for each element in the list of buffers.
+[indexterm2 operator-..buffers_iterator]
+Subtraction operator.
 
 
- typedef const_buffer value_type;
+ friend buffers_iterator ``[link boost_asio.reference.buffers_iterator.operator_minus_.overload1 operator-]``(
+ const buffers_iterator & iter,
+ std::ptrdiff_t difference);
+ `` [''''&raquo;''' [link boost_asio.reference.buffers_iterator.operator_minus_.overload1 more...]]``
 
+ friend std::ptrdiff_t ``[link boost_asio.reference.buffers_iterator.operator_minus_.overload2 operator-]``(
+ const buffers_iterator & a,
+ const buffers_iterator & b);
+ `` [''''&raquo;''' [link boost_asio.reference.buffers_iterator.operator_minus_.overload2 more...]]``
 
-[heading Member Functions]
-[table
- [[Name][Description]]
 
- [
- [[link boost_asio.reference.const_buffer.const_buffer [*const_buffer]]]
- [Construct an empty buffer.
+[section:overload1 buffers_iterator::operator- (1 of 2 overloads)]
 
- Construct a buffer to represent a given memory range.
 
- Construct a non-modifiable buffer from a modifiable one. ]
- ]
-
-]
+Subtraction operator.
 
-[heading Related Functions]
-[table
- [[Name][Description]]
 
- [
- [[link boost_asio.reference.const_buffer.operator_plus_ [*operator+]]]
- [Create a new non-modifiable buffer that is offset from the start of another. ]
- ]
-
-]
+ friend buffers_iterator operator-(
+ const buffers_iterator & iter,
+ std::ptrdiff_t difference);
 
-The [link boost_asio.reference.const_buffer `const_buffer`] class provides a safe representation of a buffer that cannot be modified. It does not own the underlying data, and so is cheap to copy or assign.
 
+[heading Requirements]
+
+[*Header: ][^boost/asio/buffers_iterator.hpp]
 
-[heading Accessing Buffer Contents]
-
+[*Convenience header: ][^boost/asio.hpp]
 
 
-The contents of a buffer may be accessed using the [link boost_asio.reference.buffer_size `buffer_size`] and [link boost_asio.reference.buffer_cast `buffer_cast`] functions:
+[endsect]
 
 
 
- boost::asio::const_buffer b1 = ...;
- std::size_t s1 = boost::asio::buffer_size(b1);
- const unsigned char* p1 = boost::asio::buffer_cast<const unsigned char*>(b1);
+[section:overload2 buffers_iterator::operator- (2 of 2 overloads)]
 
 
+Subtraction operator.
 
 
-The `boost::asio::buffer_cast` function permits violations of type safety, so uses of it in application code should be carefully considered.
+ friend std::ptrdiff_t operator-(
+ const buffers_iterator & a,
+ const buffers_iterator & b);
 
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/buffer.hpp]
+[*Header: ][^boost/asio/buffers_iterator.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
@@ -50335,408 +50118,204 @@
 [endsect]
 
 
+[endsect]
+
+[section:operator_minus__minus_ buffers_iterator::operator--]
+
+[indexterm2 operator--..buffers_iterator]
+Decrement operator (prefix).
+
+
+ buffers_iterator & ``[link boost_asio.reference.buffers_iterator.operator_minus__minus_.overload1 operator--]``();
+ `` [''''&raquo;''' [link boost_asio.reference.buffers_iterator.operator_minus__minus_.overload1 more...]]``
+
+
+Decrement operator (postfix).
+
+
+ buffers_iterator ``[link boost_asio.reference.buffers_iterator.operator_minus__minus_.overload2 operator--]``(
+ int );
+ `` [''''&raquo;''' [link boost_asio.reference.buffers_iterator.operator_minus__minus_.overload2 more...]]``
+
+
+[section:overload1 buffers_iterator::operator-- (1 of 2 overloads)]
+
+
+Decrement operator (prefix).
+
+
+ buffers_iterator & operator--();
+
+
 
 [endsect]
 
-[section:datagram_socket_service datagram_socket_service]
 
 
-Default service implementation for a datagram socket.
+[section:overload2 buffers_iterator::operator-- (2 of 2 overloads)]
 
 
- template<
- typename ``[link boost_asio.reference.Protocol Protocol]``>
- class datagram_socket_service :
- public io_service::service
+Decrement operator (postfix).
 
 
-[heading Types]
-[table
- [[Name][Description]]
+ buffers_iterator operator--(
+ int );
 
- [
 
- [[link boost_asio.reference.datagram_socket_service.endpoint_type [*endpoint_type]]]
- [The endpoint type. ]
-
- ]
 
- [
+[endsect]
 
- [[link boost_asio.reference.datagram_socket_service.implementation_type [*implementation_type]]]
- [The type of a datagram socket. ]
-
- ]
 
- [
+[endsect]
 
- [[link boost_asio.reference.datagram_socket_service.native_handle_type [*native_handle_type]]]
- [The native socket type. ]
-
- ]
 
- [
+[section:operator_minus__eq_ buffers_iterator::operator-=]
 
- [[link boost_asio.reference.datagram_socket_service.native_type [*native_type]]]
- [(Deprecated: Use native_handle_type.) The native socket type. ]
-
- ]
+[indexterm2 operator-=..buffers_iterator]
+Subtraction operator.
 
- [
 
- [[link boost_asio.reference.datagram_socket_service.protocol_type [*protocol_type]]]
- [The protocol type. ]
-
- ]
+ buffers_iterator & operator-=(
+ std::ptrdiff_t difference);
 
-]
 
-[heading Member Functions]
-[table
- [[Name][Description]]
 
- [
- [[link boost_asio.reference.datagram_socket_service.assign [*assign]]]
- [Assign an existing native socket to a datagram socket. ]
- ]
-
- [
- [[link boost_asio.reference.datagram_socket_service.async_connect [*async_connect]]]
- [Start an asynchronous connect. ]
- ]
-
- [
- [[link boost_asio.reference.datagram_socket_service.async_receive [*async_receive]]]
- [Start an asynchronous receive. ]
- ]
-
- [
- [[link boost_asio.reference.datagram_socket_service.async_receive_from [*async_receive_from]]]
- [Start an asynchronous receive that will get the endpoint of the sender. ]
- ]
-
- [
- [[link boost_asio.reference.datagram_socket_service.async_send [*async_send]]]
- [Start an asynchronous send. ]
- ]
-
- [
- [[link boost_asio.reference.datagram_socket_service.async_send_to [*async_send_to]]]
- [Start an asynchronous send. ]
- ]
-
- [
- [[link boost_asio.reference.datagram_socket_service.at_mark [*at_mark]]]
- [Determine whether the socket is at the out-of-band data mark. ]
- ]
-
- [
- [[link boost_asio.reference.datagram_socket_service.available [*available]]]
- [Determine the number of bytes available for reading. ]
- ]
-
- [
- [[link boost_asio.reference.datagram_socket_service.bind [*bind]]]
- []
- ]
-
- [
- [[link boost_asio.reference.datagram_socket_service.cancel [*cancel]]]
- [Cancel all asynchronous operations associated with the socket. ]
- ]
-
- [
- [[link boost_asio.reference.datagram_socket_service.close [*close]]]
- [Close a datagram socket implementation. ]
- ]
-
- [
- [[link boost_asio.reference.datagram_socket_service.connect [*connect]]]
- [Connect the datagram socket to the specified endpoint. ]
- ]
-
- [
- [[link boost_asio.reference.datagram_socket_service.construct [*construct]]]
- [Construct a new datagram socket implementation. ]
- ]
-
- [
- [[link boost_asio.reference.datagram_socket_service.datagram_socket_service [*datagram_socket_service]]]
- [Construct a new datagram socket service for the specified io_service. ]
- ]
-
- [
- [[link boost_asio.reference.datagram_socket_service.destroy [*destroy]]]
- [Destroy a datagram socket implementation. ]
- ]
-
- [
- [[link boost_asio.reference.datagram_socket_service.get_io_service [*get_io_service]]]
- [Get the io_service object that owns the service. ]
- ]
-
- [
- [[link boost_asio.reference.datagram_socket_service.get_option [*get_option]]]
- [Get a socket option. ]
- ]
-
- [
- [[link boost_asio.reference.datagram_socket_service.io_control [*io_control]]]
- [Perform an IO control command on the socket. ]
- ]
-
- [
- [[link boost_asio.reference.datagram_socket_service.is_open [*is_open]]]
- [Determine whether the socket is open. ]
- ]
-
- [
- [[link boost_asio.reference.datagram_socket_service.local_endpoint [*local_endpoint]]]
- [Get the local endpoint. ]
- ]
-
- [
- [[link boost_asio.reference.datagram_socket_service.move_assign [*move_assign]]]
- [Move-assign from another datagram socket implementation. ]
- ]
-
- [
- [[link boost_asio.reference.datagram_socket_service.move_construct [*move_construct]]]
- [Move-construct a new datagram socket implementation. ]
- ]
-
- [
- [[link boost_asio.reference.datagram_socket_service.native [*native]]]
- [(Deprecated: Use native_handle().) Get the native socket implementation. ]
- ]
-
- [
- [[link boost_asio.reference.datagram_socket_service.native_handle [*native_handle]]]
- [Get the native socket implementation. ]
- ]
-
- [
- [[link boost_asio.reference.datagram_socket_service.native_non_blocking [*native_non_blocking]]]
- [Gets the non-blocking mode of the native socket implementation.
-
- Sets the non-blocking mode of the native socket implementation. ]
- ]
-
- [
- [[link boost_asio.reference.datagram_socket_service.non_blocking [*non_blocking]]]
- [Gets the non-blocking mode of the socket.
+[endsect]
 
- Sets the non-blocking mode of the socket. ]
- ]
-
- [
- [[link boost_asio.reference.datagram_socket_service.open [*open]]]
- []
- ]
-
- [
- [[link boost_asio.reference.datagram_socket_service.receive [*receive]]]
- [Receive some data from the peer. ]
- ]
-
- [
- [[link boost_asio.reference.datagram_socket_service.receive_from [*receive_from]]]
- [Receive a datagram with the endpoint of the sender. ]
- ]
-
- [
- [[link boost_asio.reference.datagram_socket_service.remote_endpoint [*remote_endpoint]]]
- [Get the remote endpoint. ]
- ]
-
- [
- [[link boost_asio.reference.datagram_socket_service.send [*send]]]
- [Send the given data to the peer. ]
- ]
-
- [
- [[link boost_asio.reference.datagram_socket_service.send_to [*send_to]]]
- [Send a datagram to the specified endpoint. ]
- ]
-
- [
- [[link boost_asio.reference.datagram_socket_service.set_option [*set_option]]]
- [Set a socket option. ]
- ]
-
- [
- [[link boost_asio.reference.datagram_socket_service.shutdown [*shutdown]]]
- [Disable sends or receives on the socket. ]
- ]
-
-]
 
-[heading Data Members]
-[table
- [[Name][Description]]
 
- [
- [[link boost_asio.reference.datagram_socket_service.id [*id]]]
- [The unique service identifier. ]
- ]
+[section:operator_arrow_ buffers_iterator::operator->]
 
-]
+[indexterm2 operator->..buffers_iterator]
+Dereference an iterator.
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/datagram_socket_service.hpp]
+ pointer operator->() const;
 
-[*Convenience header: ][^boost/asio.hpp]
 
 
-[section:assign datagram_socket_service::assign]
+[endsect]
 
-[indexterm2 assign..datagram_socket_service]
-Assign an existing native socket to a datagram socket.
 
 
- boost::system::error_code assign(
- implementation_type & impl,
- const protocol_type & protocol,
- const native_handle_type & native_socket,
- boost::system::error_code & ec);
+[section:operator_lt_ buffers_iterator::operator<]
 
+[indexterm2 operator<..buffers_iterator]
+Compare two iterators.
 
 
-[endsect]
+ friend bool operator<(
+ const buffers_iterator & a,
+ const buffers_iterator & b);
 
 
+[heading Requirements]
 
-[section:async_connect datagram_socket_service::async_connect]
+[*Header: ][^boost/asio/buffers_iterator.hpp]
 
-[indexterm2 async_connect..datagram_socket_service]
-Start an asynchronous connect.
+[*Convenience header: ][^boost/asio.hpp]
 
 
- template<
- typename ``[link boost_asio.reference.ConnectHandler ConnectHandler]``>
- void async_connect(
- implementation_type & impl,
- const endpoint_type & peer_endpoint,
- ConnectHandler handler);
+[endsect]
 
 
 
-[endsect]
+[section:operator_lt__eq_ buffers_iterator::operator<=]
 
+[indexterm2 operator<=..buffers_iterator]
+Compare two iterators.
 
 
-[section:async_receive datagram_socket_service::async_receive]
+ friend bool operator<=(
+ const buffers_iterator & a,
+ const buffers_iterator & b);
 
-[indexterm2 async_receive..datagram_socket_service]
-Start an asynchronous receive.
 
+[heading Requirements]
 
- template<
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
- typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void async_receive(
- implementation_type & impl,
- const MutableBufferSequence & buffers,
- socket_base::message_flags flags,
- ReadHandler handler);
+[*Header: ][^boost/asio/buffers_iterator.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
 
-[section:async_receive_from datagram_socket_service::async_receive_from]
+[section:operator_eq__eq_ buffers_iterator::operator==]
 
-[indexterm2 async_receive_from..datagram_socket_service]
-Start an asynchronous receive that will get the endpoint of the sender.
+[indexterm2 operator==..buffers_iterator]
+Test two iterators for equality.
 
 
- template<
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
- typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void async_receive_from(
- implementation_type & impl,
- const MutableBufferSequence & buffers,
- endpoint_type & sender_endpoint,
- socket_base::message_flags flags,
- ReadHandler handler);
+ friend bool operator==(
+ const buffers_iterator & a,
+ const buffers_iterator & b);
 
 
+[heading Requirements]
 
-[endsect]
+[*Header: ][^boost/asio/buffers_iterator.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
 
-[section:async_send datagram_socket_service::async_send]
+[endsect]
 
-[indexterm2 async_send..datagram_socket_service]
-Start an asynchronous send.
 
 
- template<
- typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
- typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
- void async_send(
- implementation_type & impl,
- const ConstBufferSequence & buffers,
- socket_base::message_flags flags,
- WriteHandler handler);
+[section:operator_gt_ buffers_iterator::operator>]
 
+[indexterm2 operator>..buffers_iterator]
+Compare two iterators.
 
 
-[endsect]
+ friend bool operator>(
+ const buffers_iterator & a,
+ const buffers_iterator & b);
 
 
+[heading Requirements]
 
-[section:async_send_to datagram_socket_service::async_send_to]
+[*Header: ][^boost/asio/buffers_iterator.hpp]
 
-[indexterm2 async_send_to..datagram_socket_service]
-Start an asynchronous send.
+[*Convenience header: ][^boost/asio.hpp]
 
 
- template<
- typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
- typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
- void async_send_to(
- implementation_type & impl,
- const ConstBufferSequence & buffers,
- const endpoint_type & destination,
- socket_base::message_flags flags,
- WriteHandler handler);
+[endsect]
 
 
 
-[endsect]
+[section:operator_gt__eq_ buffers_iterator::operator>=]
 
+[indexterm2 operator>=..buffers_iterator]
+Compare two iterators.
 
 
-[section:at_mark datagram_socket_service::at_mark]
+ friend bool operator>=(
+ const buffers_iterator & a,
+ const buffers_iterator & b);
 
-[indexterm2 at_mark..datagram_socket_service]
-Determine whether the socket is at the out-of-band data mark.
 
+[heading Requirements]
 
- bool at_mark(
- const implementation_type & impl,
- boost::system::error_code & ec) const;
+[*Header: ][^boost/asio/buffers_iterator.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
 
-[section:available datagram_socket_service::available]
+[section:operator_lb__rb_ buffers_iterator::operator\[\]]
 
-[indexterm2 available..datagram_socket_service]
-Determine the number of bytes available for reading.
+[indexterm2 operator\[\]..buffers_iterator]
+Access an individual element.
 
 
- std::size_t available(
- const implementation_type & impl,
- boost::system::error_code & ec) const;
+ reference operator[](
+ std::ptrdiff_t difference) const;
 
 
 
@@ -50744,165 +50323,238 @@
 
 
 
-[section:bind datagram_socket_service::bind]
-
-[indexterm2 bind..datagram_socket_service]
-
- boost::system::error_code bind(
- implementation_type & impl,
- const endpoint_type & endpoint,
- boost::system::error_code & ec);
-
+[section:pointer buffers_iterator::pointer]
 
+[indexterm2 pointer..buffers_iterator]
+The type of the result of applying `operator->()` to the iterator.
 
-[endsect]
 
+ typedef const_or_non_const_ByteType * pointer;
 
 
-[section:cancel datagram_socket_service::cancel]
 
-[indexterm2 cancel..datagram_socket_service]
-Cancel all asynchronous operations associated with the socket.
+If the buffer sequence stores buffer objects that are convertible to [link boost_asio.reference.mutable_buffer `mutable_buffer`], this is a pointer to a non-const ByteType. Otherwise, a pointer to a const ByteType.
 
+[heading Requirements]
 
- boost::system::error_code cancel(
- implementation_type & impl,
- boost::system::error_code & ec);
+[*Header: ][^boost/asio/buffers_iterator.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
 
-[section:close datagram_socket_service::close]
+[section:reference buffers_iterator::reference]
 
-[indexterm2 close..datagram_socket_service]
-Close a datagram socket implementation.
+[indexterm2 reference..buffers_iterator]
+The type of the result of applying `operator*()` to the iterator.
 
 
- boost::system::error_code close(
- implementation_type & impl,
- boost::system::error_code & ec);
+ typedef const_or_non_const_ByteType & reference;
 
 
 
-[endsect]
+If the buffer sequence stores buffer objects that are convertible to [link boost_asio.reference.mutable_buffer `mutable_buffer`], this is a reference to a non-const ByteType. Otherwise, a reference to a const ByteType.
 
+[heading Requirements]
 
+[*Header: ][^boost/asio/buffers_iterator.hpp]
 
-[section:connect datagram_socket_service::connect]
+[*Convenience header: ][^boost/asio.hpp]
 
-[indexterm2 connect..datagram_socket_service]
-Connect the datagram socket to the specified endpoint.
 
+[endsect]
 
- boost::system::error_code connect(
- implementation_type & impl,
- const endpoint_type & peer_endpoint,
- boost::system::error_code & ec);
 
 
+[section:value_type buffers_iterator::value_type]
 
-[endsect]
+[indexterm2 value_type..buffers_iterator]
+The type of the value pointed to by the iterator.
 
 
+ typedef ByteType value_type;
 
-[section:construct datagram_socket_service::construct]
 
-[indexterm2 construct..datagram_socket_service]
-Construct a new datagram socket implementation.
 
+[heading Requirements]
 
- void construct(
- implementation_type & impl);
+[*Header: ][^boost/asio/buffers_iterator.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
 
-[section:datagram_socket_service datagram_socket_service::datagram_socket_service]
+[endsect]
 
-[indexterm2 datagram_socket_service..datagram_socket_service]
-Construct a new datagram socket service for the specified [link boost_asio.reference.io_service `io_service`].
+[section:connect connect]
 
+[indexterm1 connect]
+Establishes a socket connection by trying each endpoint in a sequence.
 
- datagram_socket_service(
- boost::asio::io_service & io_service);
+
+ template<
+ typename ``[link boost_asio.reference.Protocol Protocol]``,
+ typename ``[link boost_asio.reference.SocketService SocketService]``,
+ typename Iterator>
+ Iterator ``[link boost_asio.reference.connect.overload1 connect]``(
+ basic_socket< Protocol, SocketService > & s,
+ Iterator begin);
+ `` [''''&raquo;''' [link boost_asio.reference.connect.overload1 more...]]``
 
+ template<
+ typename ``[link boost_asio.reference.Protocol Protocol]``,
+ typename ``[link boost_asio.reference.SocketService SocketService]``,
+ typename Iterator>
+ Iterator ``[link boost_asio.reference.connect.overload2 connect]``(
+ basic_socket< Protocol, SocketService > & s,
+ Iterator begin,
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.connect.overload2 more...]]``
 
+ template<
+ typename ``[link boost_asio.reference.Protocol Protocol]``,
+ typename ``[link boost_asio.reference.SocketService SocketService]``,
+ typename Iterator>
+ Iterator ``[link boost_asio.reference.connect.overload3 connect]``(
+ basic_socket< Protocol, SocketService > & s,
+ Iterator begin,
+ Iterator end);
+ `` [''''&raquo;''' [link boost_asio.reference.connect.overload3 more...]]``
 
-[endsect]
+ template<
+ typename ``[link boost_asio.reference.Protocol Protocol]``,
+ typename ``[link boost_asio.reference.SocketService SocketService]``,
+ typename Iterator>
+ Iterator ``[link boost_asio.reference.connect.overload4 connect]``(
+ basic_socket< Protocol, SocketService > & s,
+ Iterator begin,
+ Iterator end,
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.connect.overload4 more...]]``
 
+ template<
+ typename ``[link boost_asio.reference.Protocol Protocol]``,
+ typename ``[link boost_asio.reference.SocketService SocketService]``,
+ typename Iterator,
+ typename ConnectCondition>
+ Iterator ``[link boost_asio.reference.connect.overload5 connect]``(
+ basic_socket< Protocol, SocketService > & s,
+ Iterator begin,
+ ConnectCondition connect_condition);
+ `` [''''&raquo;''' [link boost_asio.reference.connect.overload5 more...]]``
 
+ template<
+ typename ``[link boost_asio.reference.Protocol Protocol]``,
+ typename ``[link boost_asio.reference.SocketService SocketService]``,
+ typename Iterator,
+ typename ConnectCondition>
+ Iterator ``[link boost_asio.reference.connect.overload6 connect]``(
+ basic_socket< Protocol, SocketService > & s,
+ Iterator begin,
+ ConnectCondition connect_condition,
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.connect.overload6 more...]]``
 
-[section:destroy datagram_socket_service::destroy]
+ template<
+ typename ``[link boost_asio.reference.Protocol Protocol]``,
+ typename ``[link boost_asio.reference.SocketService SocketService]``,
+ typename Iterator,
+ typename ConnectCondition>
+ Iterator ``[link boost_asio.reference.connect.overload7 connect]``(
+ basic_socket< Protocol, SocketService > & s,
+ Iterator begin,
+ Iterator end,
+ ConnectCondition connect_condition);
+ `` [''''&raquo;''' [link boost_asio.reference.connect.overload7 more...]]``
 
-[indexterm2 destroy..datagram_socket_service]
-Destroy a datagram socket implementation.
+ template<
+ typename ``[link boost_asio.reference.Protocol Protocol]``,
+ typename ``[link boost_asio.reference.SocketService SocketService]``,
+ typename Iterator,
+ typename ConnectCondition>
+ Iterator ``[link boost_asio.reference.connect.overload8 connect]``(
+ basic_socket< Protocol, SocketService > & s,
+ Iterator begin,
+ Iterator end,
+ ConnectCondition connect_condition,
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.connect.overload8 more...]]``
 
+[heading Requirements]
 
- void destroy(
- implementation_type & impl);
+[*Header: ][^boost/asio/connect.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
 
-[endsect]
+[section:overload1 connect (1 of 8 overloads)]
 
 
+Establishes a socket connection by trying each endpoint in a sequence.
 
-[section:endpoint_type datagram_socket_service::endpoint_type]
 
-[indexterm2 endpoint_type..datagram_socket_service]
-The endpoint type.
+ template<
+ typename ``[link boost_asio.reference.Protocol Protocol]``,
+ typename ``[link boost_asio.reference.SocketService SocketService]``,
+ typename Iterator>
+ Iterator connect(
+ basic_socket< Protocol, SocketService > & s,
+ Iterator begin);
 
 
- typedef Protocol::endpoint endpoint_type;
+This function attempts to connect a socket to one of a sequence of endpoints. It does this by repeated calls to the socket's `connect` member function, once for each endpoint in the sequence, until a connection is successfully established.
 
 
+[heading Parameters]
+
 
-[heading Requirements]
+[variablelist
+
+[[s][The socket to be connected. If the socket is already open, it will be closed.]]
 
-[*Header: ][^boost/asio/datagram_socket_service.hpp]
+[[begin][An iterator pointing to the start of a sequence of endpoints.]]
 
-[*Convenience header: ][^boost/asio.hpp]
+]
 
 
-[endsect]
+[heading Return Value]
+
+On success, an iterator denoting the successfully connected endpoint. Otherwise, the end iterator.
 
 
+[heading Exceptions]
+
 
-[section:get_io_service datagram_socket_service::get_io_service]
+[variablelist
+
+[[boost::system::system_error][Thrown on failure. If the sequence is empty, the associated `error_code` is `boost::asio::error::not_found`. Otherwise, contains the error from the last connection attempt.]]
 
+]
 
-['Inherited from io_service.]
 
-[indexterm2 get_io_service..datagram_socket_service]
-Get the [link boost_asio.reference.io_service `io_service`] object that owns the service.
+[heading Remarks]
+
+This overload assumes that a default constructed object of type `Iterator` represents the end of the sequence. This is a valid assumption for iterator types such as `boost::asio::ip::tcp::resolver::iterator`.
 
 
- boost::asio::io_service & get_io_service();
-
-
-
-[endsect]
+[heading Example]
+
 
 
+ tcp::resolver r(io_service);
+ tcp::resolver::query q("host", "service");
+ tcp::socket s(io_service);
+ boost::asio::connect(s, r.resolve(q));
 
-[section:get_option datagram_socket_service::get_option]
 
-[indexterm2 get_option..datagram_socket_service]
-Get a socket option.
 
 
- template<
- typename ``[link boost_asio.reference.GettableSocketOption GettableSocketOption]``>
- boost::system::error_code get_option(
- const implementation_type & impl,
- GettableSocketOption & option,
- boost::system::error_code & ec) const;
 
 
 
@@ -50910,53 +50562,66 @@
 
 
 
-[section:id datagram_socket_service::id]
-
-[indexterm2 id..datagram_socket_service]
-The unique service identifier.
+[section:overload2 connect (2 of 8 overloads)]
 
 
- static boost::asio::io_service::id id;
+Establishes a socket connection by trying each endpoint in a sequence.
 
 
+ template<
+ typename ``[link boost_asio.reference.Protocol Protocol]``,
+ typename ``[link boost_asio.reference.SocketService SocketService]``,
+ typename Iterator>
+ Iterator connect(
+ basic_socket< Protocol, SocketService > & s,
+ Iterator begin,
+ boost::system::error_code & ec);
 
-[endsect]
 
+This function attempts to connect a socket to one of a sequence of endpoints. It does this by repeated calls to the socket's `connect` member function, once for each endpoint in the sequence, until a connection is successfully established.
 
 
-[section:implementation_type datagram_socket_service::implementation_type]
+[heading Parameters]
+
 
-[indexterm2 implementation_type..datagram_socket_service]
-The type of a datagram socket.
+[variablelist
+
+[[s][The socket to be connected. If the socket is already open, it will be closed.]]
 
+[[begin][An iterator pointing to the start of a sequence of endpoints.]]
 
- typedef implementation_defined implementation_type;
+[[ec][Set to indicate what error occurred, if any. If the sequence is empty, set to `boost::asio::error::not_found`. Otherwise, contains the error from the last connection attempt.]]
 
+]
 
 
-[heading Requirements]
+[heading Return Value]
+
+On success, an iterator denoting the successfully connected endpoint. Otherwise, the end iterator.
 
-[*Header: ][^boost/asio/datagram_socket_service.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
+[heading Remarks]
+
+This overload assumes that a default constructed object of type `Iterator` represents the end of the sequence. This is a valid assumption for iterator types such as `boost::asio::ip::tcp::resolver::iterator`.
 
 
-[endsect]
+[heading Example]
+
 
 
+ tcp::resolver r(io_service);
+ tcp::resolver::query q("host", "service");
+ tcp::socket s(io_service);
+ boost::system::error_code ec;
+ boost::asio::connect(s, r.resolve(q), ec);
+ if (ec)
+ {
+ // An error occurred.
+ }
 
-[section:io_control datagram_socket_service::io_control]
 
-[indexterm2 io_control..datagram_socket_service]
-Perform an IO control command on the socket.
 
 
- template<
- typename ``[link boost_asio.reference.IoControlCommand IoControlCommand]``>
- boost::system::error_code io_control(
- implementation_type & impl,
- IoControlCommand & command,
- boost::system::error_code & ec);
 
 
 
@@ -50964,299 +50629,423 @@
 
 
 
-[section:is_open datagram_socket_service::is_open]
+[section:overload3 connect (3 of 8 overloads)]
 
-[indexterm2 is_open..datagram_socket_service]
-Determine whether the socket is open.
 
+Establishes a socket connection by trying each endpoint in a sequence.
 
- bool is_open(
- const implementation_type & impl) const;
 
+ template<
+ typename ``[link boost_asio.reference.Protocol Protocol]``,
+ typename ``[link boost_asio.reference.SocketService SocketService]``,
+ typename Iterator>
+ Iterator connect(
+ basic_socket< Protocol, SocketService > & s,
+ Iterator begin,
+ Iterator end);
 
 
-[endsect]
+This function attempts to connect a socket to one of a sequence of endpoints. It does this by repeated calls to the socket's `connect` member function, once for each endpoint in the sequence, until a connection is successfully established.
 
 
+[heading Parameters]
+
 
-[section:local_endpoint datagram_socket_service::local_endpoint]
+[variablelist
+
+[[s][The socket to be connected. If the socket is already open, it will be closed.]]
 
-[indexterm2 local_endpoint..datagram_socket_service]
-Get the local endpoint.
+[[begin][An iterator pointing to the start of a sequence of endpoints.]]
 
+[[end][An iterator pointing to the end of a sequence of endpoints.]]
 
- endpoint_type local_endpoint(
- const implementation_type & impl,
- boost::system::error_code & ec) const;
+]
 
 
+[heading Return Value]
+
+On success, an iterator denoting the successfully connected endpoint. Otherwise, the end iterator.
 
-[endsect]
 
+[heading Exceptions]
+
 
+[variablelist
+
+[[boost::system::system_error][Thrown on failure. If the sequence is empty, the associated `error_code` is `boost::asio::error::not_found`. Otherwise, contains the error from the last connection attempt.]]
 
-[section:move_assign datagram_socket_service::move_assign]
+]
 
-[indexterm2 move_assign..datagram_socket_service]
-Move-assign from another datagram socket implementation.
 
+[heading Example]
+
 
- void move_assign(
- implementation_type & impl,
- datagram_socket_service & other_service,
- implementation_type & other_impl);
 
+ tcp::resolver r(io_service);
+ tcp::resolver::query q("host", "service");
+ tcp::resolver::iterator i = r.resolve(q), end;
+ tcp::socket s(io_service);
+ boost::asio::connect(s, i, end);
 
 
-[endsect]
 
 
 
-[section:move_construct datagram_socket_service::move_construct]
 
-[indexterm2 move_construct..datagram_socket_service]
-Move-construct a new datagram socket implementation.
 
+[endsect]
 
- void move_construct(
- implementation_type & impl,
- implementation_type & other_impl);
 
 
+[section:overload4 connect (4 of 8 overloads)]
 
-[endsect]
 
+Establishes a socket connection by trying each endpoint in a sequence.
 
 
-[section:native datagram_socket_service::native]
+ template<
+ typename ``[link boost_asio.reference.Protocol Protocol]``,
+ typename ``[link boost_asio.reference.SocketService SocketService]``,
+ typename Iterator>
+ Iterator connect(
+ basic_socket< Protocol, SocketService > & s,
+ Iterator begin,
+ Iterator end,
+ boost::system::error_code & ec);
 
-[indexterm2 native..datagram_socket_service]
-(Deprecated: Use `native_handle()`.) Get the native socket implementation.
 
+This function attempts to connect a socket to one of a sequence of endpoints. It does this by repeated calls to the socket's `connect` member function, once for each endpoint in the sequence, until a connection is successfully established.
 
- native_type native(
- implementation_type & impl);
 
+[heading Parameters]
+
 
+[variablelist
+
+[[s][The socket to be connected. If the socket is already open, it will be closed.]]
 
-[endsect]
+[[begin][An iterator pointing to the start of a sequence of endpoints.]]
 
+[[end][An iterator pointing to the end of a sequence of endpoints.]]
 
+[[ec][Set to indicate what error occurred, if any. If the sequence is empty, set to `boost::asio::error::not_found`. Otherwise, contains the error from the last connection attempt.]]
 
-[section:native_handle datagram_socket_service::native_handle]
+]
 
-[indexterm2 native_handle..datagram_socket_service]
-Get the native socket implementation.
 
+[heading Return Value]
+
+On success, an iterator denoting the successfully connected endpoint. Otherwise, the end iterator.
 
- native_handle_type native_handle(
- implementation_type & impl);
 
+[heading Example]
+
 
 
-[endsect]
+ tcp::resolver r(io_service);
+ tcp::resolver::query q("host", "service");
+ tcp::resolver::iterator i = r.resolve(q), end;
+ tcp::socket s(io_service);
+ boost::system::error_code ec;
+ boost::asio::connect(s, i, end, ec);
+ if (ec)
+ {
+ // An error occurred.
+ }
 
 
 
-[section:native_handle_type datagram_socket_service::native_handle_type]
 
-[indexterm2 native_handle_type..datagram_socket_service]
-The native socket type.
 
 
- typedef implementation_defined native_handle_type;
 
+[endsect]
 
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/datagram_socket_service.hpp]
+[section:overload5 connect (5 of 8 overloads)]
 
-[*Convenience header: ][^boost/asio.hpp]
 
+Establishes a socket connection by trying each endpoint in a sequence.
 
-[endsect]
 
+ template<
+ typename ``[link boost_asio.reference.Protocol Protocol]``,
+ typename ``[link boost_asio.reference.SocketService SocketService]``,
+ typename Iterator,
+ typename ConnectCondition>
+ Iterator connect(
+ basic_socket< Protocol, SocketService > & s,
+ Iterator begin,
+ ConnectCondition connect_condition);
 
-[section:native_non_blocking datagram_socket_service::native_non_blocking]
 
-[indexterm2 native_non_blocking..datagram_socket_service]
-Gets the non-blocking mode of the native socket implementation.
+This function attempts to connect a socket to one of a sequence of endpoints. It does this by repeated calls to the socket's `connect` member function, once for each endpoint in the sequence, until a connection is successfully established.
 
 
- bool ``[link boost_asio.reference.datagram_socket_service.native_non_blocking.overload1 native_non_blocking]``(
- const implementation_type & impl) const;
- `` [''''&raquo;''' [link boost_asio.reference.datagram_socket_service.native_non_blocking.overload1 more...]]``
+[heading Parameters]
+
 
+[variablelist
+
+[[s][The socket to be connected. If the socket is already open, it will be closed.]]
 
-Sets the non-blocking mode of the native socket implementation.
+[[begin][An iterator pointing to the start of a sequence of endpoints.]]
 
+[[connect_condition][A function object that is called prior to each connection attempt. The signature of the function object must be:
+``
+ Iterator connect_condition(
+ const boost::system::error_code& ec,
+ Iterator next);
+``
+The `ec` parameter contains the result from the most recent connect operation. Before the first connection attempt, `ec` is always set to indicate success. The `next` parameter is an iterator pointing to the next endpoint to be tried. The function object should return the next iterator, but is permitted to return a different iterator so that endpoints may be skipped. The implementation guarantees that the function object will never be called with the end iterator.]]
 
- boost::system::error_code ``[link boost_asio.reference.datagram_socket_service.native_non_blocking.overload2 native_non_blocking]``(
- implementation_type & impl,
- bool mode,
- boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.datagram_socket_service.native_non_blocking.overload2 more...]]``
+]
 
 
-[section:overload1 datagram_socket_service::native_non_blocking (1 of 2 overloads)]
+[heading Return Value]
+
+On success, an iterator denoting the successfully connected endpoint. Otherwise, the end iterator.
 
 
-Gets the non-blocking mode of the native socket implementation.
+[heading Exceptions]
+
 
+[variablelist
+
+[[boost::system::system_error][Thrown on failure. If the sequence is empty, the associated `error_code` is `boost::asio::error::not_found`. Otherwise, contains the error from the last connection attempt.]]
 
- bool native_non_blocking(
- const implementation_type & impl) const;
+]
 
 
+[heading Remarks]
+
+This overload assumes that a default constructed object of type `Iterator` represents the end of the sequence. This is a valid assumption for iterator types such as `boost::asio::ip::tcp::resolver::iterator`.
 
-[endsect]
 
+[heading Example]
+
+The following connect condition function object can be used to output information about the individual connection attempts:
 
+ struct my_connect_condition
+ {
+ template <typename Iterator>
+ Iterator operator()(
+ const boost::system::error_code& ec,
+ Iterator next)
+ {
+ if (ec) std::cout << "Error: " << ec.message() << std::endl;
+ std::cout << "Trying: " << next->endpoint() << std::endl;
+ return next;
+ }
+ };
 
-[section:overload2 datagram_socket_service::native_non_blocking (2 of 2 overloads)]
 
+It would be used with the `boost::asio::connect` function as follows:
 
-Sets the non-blocking mode of the native socket implementation.
+ tcp::resolver r(io_service);
+ tcp::resolver::query q("host", "service");
+ tcp::socket s(io_service);
+ tcp::resolver::iterator i = boost::asio::connect(
+ s, r.resolve(q), my_connect_condition());
+ std::cout << "Connected to: " << i->endpoint() << std::endl;
 
 
- boost::system::error_code native_non_blocking(
- implementation_type & impl,
- bool mode,
- boost::system::error_code & ec);
 
 
 
-[endsect]
 
 
 [endsect]
 
 
-[section:native_type datagram_socket_service::native_type]
-
-[indexterm2 native_type..datagram_socket_service]
-(Deprecated: Use native\_handle\_type.) The native socket type.
-
-
- typedef implementation_defined native_type;
 
+[section:overload6 connect (6 of 8 overloads)]
 
 
-[heading Requirements]
+Establishes a socket connection by trying each endpoint in a sequence.
 
-[*Header: ][^boost/asio/datagram_socket_service.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
+ template<
+ typename ``[link boost_asio.reference.Protocol Protocol]``,
+ typename ``[link boost_asio.reference.SocketService SocketService]``,
+ typename Iterator,
+ typename ConnectCondition>
+ Iterator connect(
+ basic_socket< Protocol, SocketService > & s,
+ Iterator begin,
+ ConnectCondition connect_condition,
+ boost::system::error_code & ec);
 
 
-[endsect]
+This function attempts to connect a socket to one of a sequence of endpoints. It does this by repeated calls to the socket's `connect` member function, once for each endpoint in the sequence, until a connection is successfully established.
 
 
-[section:non_blocking datagram_socket_service::non_blocking]
+[heading Parameters]
+
 
-[indexterm2 non_blocking..datagram_socket_service]
-Gets the non-blocking mode of the socket.
+[variablelist
+
+[[s][The socket to be connected. If the socket is already open, it will be closed.]]
 
+[[begin][An iterator pointing to the start of a sequence of endpoints.]]
 
- bool ``[link boost_asio.reference.datagram_socket_service.non_blocking.overload1 non_blocking]``(
- const implementation_type & impl) const;
- `` [''''&raquo;''' [link boost_asio.reference.datagram_socket_service.non_blocking.overload1 more...]]``
+[[connect_condition][A function object that is called prior to each connection attempt. The signature of the function object must be:
+``
+ Iterator connect_condition(
+ const boost::system::error_code& ec,
+ Iterator next);
+``
+The `ec` parameter contains the result from the most recent connect operation. Before the first connection attempt, `ec` is always set to indicate success. The `next` parameter is an iterator pointing to the next endpoint to be tried. The function object should return the next iterator, but is permitted to return a different iterator so that endpoints may be skipped. The implementation guarantees that the function object will never be called with the end iterator.]]
 
+[[ec][Set to indicate what error occurred, if any. If the sequence is empty, set to `boost::asio::error::not_found`. Otherwise, contains the error from the last connection attempt.]]
 
-Sets the non-blocking mode of the socket.
+]
 
 
- boost::system::error_code ``[link boost_asio.reference.datagram_socket_service.non_blocking.overload2 non_blocking]``(
- implementation_type & impl,
- bool mode,
- boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.datagram_socket_service.non_blocking.overload2 more...]]``
+[heading Return Value]
+
+On success, an iterator denoting the successfully connected endpoint. Otherwise, the end iterator.
 
 
-[section:overload1 datagram_socket_service::non_blocking (1 of 2 overloads)]
+[heading Remarks]
+
+This overload assumes that a default constructed object of type `Iterator` represents the end of the sequence. This is a valid assumption for iterator types such as `boost::asio::ip::tcp::resolver::iterator`.
 
 
-Gets the non-blocking mode of the socket.
+[heading Example]
+
+The following connect condition function object can be used to output information about the individual connection attempts:
 
+ struct my_connect_condition
+ {
+ template <typename Iterator>
+ Iterator operator()(
+ const boost::system::error_code& ec,
+ Iterator next)
+ {
+ if (ec) std::cout << "Error: " << ec.message() << std::endl;
+ std::cout << "Trying: " << next->endpoint() << std::endl;
+ return next;
+ }
+ };
 
- bool non_blocking(
- const implementation_type & impl) const;
 
+It would be used with the `boost::asio::connect` function as follows:
 
+ tcp::resolver r(io_service);
+ tcp::resolver::query q("host", "service");
+ tcp::socket s(io_service);
+ boost::system::error_code ec;
+ tcp::resolver::iterator i = boost::asio::connect(
+ s, r.resolve(q), my_connect_condition(), ec);
+ if (ec)
+ {
+ // An error occurred.
+ }
+ else
+ {
+ std::cout << "Connected to: " << i->endpoint() << std::endl;
+ }
 
-[endsect]
 
 
 
-[section:overload2 datagram_socket_service::non_blocking (2 of 2 overloads)]
 
 
-Sets the non-blocking mode of the socket.
 
+[endsect]
 
- boost::system::error_code non_blocking(
- implementation_type & impl,
- bool mode,
- boost::system::error_code & ec);
 
 
+[section:overload7 connect (7 of 8 overloads)]
 
-[endsect]
 
+Establishes a socket connection by trying each endpoint in a sequence.
 
-[endsect]
 
+ template<
+ typename ``[link boost_asio.reference.Protocol Protocol]``,
+ typename ``[link boost_asio.reference.SocketService SocketService]``,
+ typename Iterator,
+ typename ConnectCondition>
+ Iterator connect(
+ basic_socket< Protocol, SocketService > & s,
+ Iterator begin,
+ Iterator end,
+ ConnectCondition connect_condition);
 
-[section:open datagram_socket_service::open]
 
-[indexterm2 open..datagram_socket_service]
+This function attempts to connect a socket to one of a sequence of endpoints. It does this by repeated calls to the socket's `connect` member function, once for each endpoint in the sequence, until a connection is successfully established.
 
- boost::system::error_code open(
- implementation_type & impl,
- const protocol_type & protocol,
- boost::system::error_code & ec);
 
+[heading Parameters]
+
 
+[variablelist
+
+[[s][The socket to be connected. If the socket is already open, it will be closed.]]
 
-[endsect]
+[[begin][An iterator pointing to the start of a sequence of endpoints.]]
 
+[[end][An iterator pointing to the end of a sequence of endpoints.]]
 
+[[connect_condition][A function object that is called prior to each connection attempt. The signature of the function object must be:
+``
+ Iterator connect_condition(
+ const boost::system::error_code& ec,
+ Iterator next);
+``
+The `ec` parameter contains the result from the most recent connect operation. Before the first connection attempt, `ec` is always set to indicate success. The `next` parameter is an iterator pointing to the next endpoint to be tried. The function object should return the next iterator, but is permitted to return a different iterator so that endpoints may be skipped. The implementation guarantees that the function object will never be called with the end iterator.]]
 
-[section:protocol_type datagram_socket_service::protocol_type]
+]
 
-[indexterm2 protocol_type..datagram_socket_service]
-The protocol type.
 
+[heading Return Value]
+
+On success, an iterator denoting the successfully connected endpoint. Otherwise, the end iterator.
 
- typedef Protocol protocol_type;
 
+[heading Exceptions]
+
 
+[variablelist
+
+[[boost::system::system_error][Thrown on failure. If the sequence is empty, the associated `error_code` is `boost::asio::error::not_found`. Otherwise, contains the error from the last connection attempt.]]
 
-[heading Requirements]
+]
 
-[*Header: ][^boost/asio/datagram_socket_service.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
+[heading Example]
+
+The following connect condition function object can be used to output information about the individual connection attempts:
 
+ struct my_connect_condition
+ {
+ template <typename Iterator>
+ Iterator operator()(
+ const boost::system::error_code& ec,
+ Iterator next)
+ {
+ if (ec) std::cout << "Error: " << ec.message() << std::endl;
+ std::cout << "Trying: " << next->endpoint() << std::endl;
+ return next;
+ }
+ };
 
-[endsect]
 
+It would be used with the `boost::asio::connect` function as follows:
 
+ tcp::resolver r(io_service);
+ tcp::resolver::query q("host", "service");
+ tcp::resolver::iterator i = r.resolve(q), end;
+ tcp::socket s(io_service);
+ i = boost::asio::connect(s, i, end, my_connect_condition());
+ std::cout << "Connected to: " << i->endpoint() << std::endl;
 
-[section:receive datagram_socket_service::receive]
 
-[indexterm2 receive..datagram_socket_service]
-Receive some data from the peer.
 
 
- template<
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
- std::size_t receive(
- implementation_type & impl,
- const MutableBufferSequence & buffers,
- socket_base::message_flags flags,
- boost::system::error_code & ec);
 
 
 
@@ -51264,375 +51053,298 @@
 
 
 
-[section:receive_from datagram_socket_service::receive_from]
+[section:overload8 connect (8 of 8 overloads)]
 
-[indexterm2 receive_from..datagram_socket_service]
-Receive a datagram with the endpoint of the sender.
+
+Establishes a socket connection by trying each endpoint in a sequence.
 
 
   template<
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
- std::size_t receive_from(
- implementation_type & impl,
- const MutableBufferSequence & buffers,
- endpoint_type & sender_endpoint,
- socket_base::message_flags flags,
+ typename ``[link boost_asio.reference.Protocol Protocol]``,
+ typename ``[link boost_asio.reference.SocketService SocketService]``,
+ typename Iterator,
+ typename ConnectCondition>
+ Iterator connect(
+ basic_socket< Protocol, SocketService > & s,
+ Iterator begin,
+ Iterator end,
+ ConnectCondition connect_condition,
       boost::system::error_code & ec);
 
 
+This function attempts to connect a socket to one of a sequence of endpoints. It does this by repeated calls to the socket's `connect` member function, once for each endpoint in the sequence, until a connection is successfully established.
 
-[endsect]
 
+[heading Parameters]
+
 
+[variablelist
+
+[[s][The socket to be connected. If the socket is already open, it will be closed.]]
 
-[section:remote_endpoint datagram_socket_service::remote_endpoint]
+[[begin][An iterator pointing to the start of a sequence of endpoints.]]
 
-[indexterm2 remote_endpoint..datagram_socket_service]
-Get the remote endpoint.
+[[end][An iterator pointing to the end of a sequence of endpoints.]]
 
+[[connect_condition][A function object that is called prior to each connection attempt. The signature of the function object must be:
+``
+ Iterator connect_condition(
+ const boost::system::error_code& ec,
+ Iterator next);
+``
+The `ec` parameter contains the result from the most recent connect operation. Before the first connection attempt, `ec` is always set to indicate success. The `next` parameter is an iterator pointing to the next endpoint to be tried. The function object should return the next iterator, but is permitted to return a different iterator so that endpoints may be skipped. The implementation guarantees that the function object will never be called with the end iterator.]]
 
- endpoint_type remote_endpoint(
- const implementation_type & impl,
- boost::system::error_code & ec) const;
+[[ec][Set to indicate what error occurred, if any. If the sequence is empty, set to `boost::asio::error::not_found`. Otherwise, contains the error from the last connection attempt.]]
 
+]
 
 
-[endsect]
-
-
-
-[section:send datagram_socket_service::send]
+[heading Return Value]
+
+On success, an iterator denoting the successfully connected endpoint. Otherwise, the end iterator.
 
-[indexterm2 send..datagram_socket_service]
-Send the given data to the peer.
 
+[heading Example]
+
+The following connect condition function object can be used to output information about the individual connection attempts:
 
- template<
- typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
- std::size_t send(
- implementation_type & impl,
- const ConstBufferSequence & buffers,
- socket_base::message_flags flags,
- boost::system::error_code & ec);
+ struct my_connect_condition
+ {
+ template <typename Iterator>
+ Iterator operator()(
+ const boost::system::error_code& ec,
+ Iterator next)
+ {
+ if (ec) std::cout << "Error: " << ec.message() << std::endl;
+ std::cout << "Trying: " << next->endpoint() << std::endl;
+ return next;
+ }
+ };
 
 
+It would be used with the `boost::asio::connect` function as follows:
 
-[endsect]
+ tcp::resolver r(io_service);
+ tcp::resolver::query q("host", "service");
+ tcp::resolver::iterator i = r.resolve(q), end;
+ tcp::socket s(io_service);
+ boost::system::error_code ec;
+ i = boost::asio::connect(s, i, end, my_connect_condition(), ec);
+ if (ec)
+ {
+ // An error occurred.
+ }
+ else
+ {
+ std::cout << "Connected to: " << i->endpoint() << std::endl;
+ }
 
 
 
-[section:send_to datagram_socket_service::send_to]
 
-[indexterm2 send_to..datagram_socket_service]
-Send a datagram to the specified endpoint.
 
 
- template<
- typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
- std::size_t send_to(
- implementation_type & impl,
- const ConstBufferSequence & buffers,
- const endpoint_type & destination,
- socket_base::message_flags flags,
- boost::system::error_code & ec);
 
+[endsect]
 
 
 [endsect]
 
+[section:const_buffer const_buffer]
 
 
-[section:set_option datagram_socket_service::set_option]
-
-[indexterm2 set_option..datagram_socket_service]
-Set a socket option.
+Holds a buffer that cannot be modified.
 
 
- template<
- typename ``[link boost_asio.reference.SettableSocketOption SettableSocketOption]``>
- boost::system::error_code set_option(
- implementation_type & impl,
- const SettableSocketOption & option,
- boost::system::error_code & ec);
+ class const_buffer
 
 
+[heading Member Functions]
+[table
+ [[Name][Description]]
 
-[endsect]
+ [
+ [[link boost_asio.reference.const_buffer.const_buffer [*const_buffer]]]
+ [Construct an empty buffer.
 
+ Construct a buffer to represent a given memory range.
 
+ Construct a non-modifiable buffer from a modifiable one. ]
+ ]
+
+]
 
-[section:shutdown datagram_socket_service::shutdown]
+[heading Related Functions]
+[table
+ [[Name][Description]]
 
-[indexterm2 shutdown..datagram_socket_service]
-Disable sends or receives on the socket.
+ [
+ [[link boost_asio.reference.const_buffer.operator_plus_ [*operator+]]]
+ [Create a new non-modifiable buffer that is offset from the start of another. ]
+ ]
+
+]
 
+The [link boost_asio.reference.const_buffer `const_buffer`] class provides a safe representation of a buffer that cannot be modified. It does not own the underlying data, and so is cheap to copy or assign.
 
- boost::system::error_code shutdown(
- implementation_type & impl,
- socket_base::shutdown_type what,
- boost::system::error_code & ec);
 
+[heading Accessing Buffer Contents]
+
 
 
-[endsect]
+The contents of a buffer may be accessed using the [link boost_asio.reference.buffer_size `buffer_size`] and [link boost_asio.reference.buffer_cast `buffer_cast`] functions:
 
 
 
-[endsect]
+ boost::asio::const_buffer b1 = ...;
+ std::size_t s1 = boost::asio::buffer_size(b1);
+ const unsigned char* p1 = boost::asio::buffer_cast<const unsigned char*>(b1);
 
 
-[section:deadline_timer deadline_timer]
 
-[indexterm1 deadline_timer]
-Typedef for the typical usage of timer. Uses a UTC clock.
 
+The `boost::asio::buffer_cast` function permits violations of type safety, so uses of it in application code should be carefully considered.
 
- typedef basic_deadline_timer< boost::posix_time::ptime > deadline_timer;
+[heading Requirements]
 
+[*Header: ][^boost/asio/buffer.hpp]
 
-[heading Types]
-[table
- [[Name][Description]]
+[*Convenience header: ][^boost/asio.hpp]
 
- [
+[section:const_buffer const_buffer::const_buffer]
 
- [[link boost_asio.reference.basic_deadline_timer.duration_type [*duration_type]]]
- [The duration type. ]
-
- ]
+[indexterm2 const_buffer..const_buffer]
+Construct an empty buffer.
 
- [
 
- [[link boost_asio.reference.basic_deadline_timer.implementation_type [*implementation_type]]]
- [The underlying implementation type of I/O object. ]
-
- ]
+ ``[link boost_asio.reference.const_buffer.const_buffer.overload1 const_buffer]``();
+ `` [''''&raquo;''' [link boost_asio.reference.const_buffer.const_buffer.overload1 more...]]``
 
- [
 
- [[link boost_asio.reference.basic_deadline_timer.service_type [*service_type]]]
- [The type of the service that will be used to provide I/O operations. ]
-
- ]
+Construct a buffer to represent a given memory range.
 
- [
 
- [[link boost_asio.reference.basic_deadline_timer.time_type [*time_type]]]
- [The time type. ]
-
- ]
+ ``[link boost_asio.reference.const_buffer.const_buffer.overload2 const_buffer]``(
+ const void * data,
+ std::size_t size);
+ `` [''''&raquo;''' [link boost_asio.reference.const_buffer.const_buffer.overload2 more...]]``
 
- [
 
- [[link boost_asio.reference.basic_deadline_timer.traits_type [*traits_type]]]
- [The time traits type. ]
-
- ]
+Construct a non-modifiable buffer from a modifiable one.
 
-]
 
-[heading Member Functions]
-[table
- [[Name][Description]]
+ ``[link boost_asio.reference.const_buffer.const_buffer.overload3 const_buffer]``(
+ const mutable_buffer & b);
+ `` [''''&raquo;''' [link boost_asio.reference.const_buffer.const_buffer.overload3 more...]]``
 
- [
- [[link boost_asio.reference.basic_deadline_timer.async_wait [*async_wait]]]
- [Start an asynchronous wait on the timer. ]
- ]
-
- [
- [[link boost_asio.reference.basic_deadline_timer.basic_deadline_timer [*basic_deadline_timer]]]
- [Constructor.
 
- Constructor to set a particular expiry time as an absolute time.
+[section:overload1 const_buffer::const_buffer (1 of 3 overloads)]
 
- Constructor to set a particular expiry time relative to now. ]
- ]
-
- [
- [[link boost_asio.reference.basic_deadline_timer.cancel [*cancel]]]
- [Cancel any asynchronous operations that are waiting on the timer. ]
- ]
-
- [
- [[link boost_asio.reference.basic_deadline_timer.cancel_one [*cancel_one]]]
- [Cancels one asynchronous operation that is waiting on the timer. ]
- ]
-
- [
- [[link boost_asio.reference.basic_deadline_timer.expires_at [*expires_at]]]
- [Get the timer's expiry time as an absolute time.
 
- Set the timer's expiry time as an absolute time. ]
- ]
-
- [
- [[link boost_asio.reference.basic_deadline_timer.expires_from_now [*expires_from_now]]]
- [Get the timer's expiry time relative to now.
+Construct an empty buffer.
 
- Set the timer's expiry time relative to now. ]
- ]
-
- [
- [[link boost_asio.reference.basic_deadline_timer.get_io_service [*get_io_service]]]
- [Get the io_service associated with the object. ]
- ]
-
- [
- [[link boost_asio.reference.basic_deadline_timer.wait [*wait]]]
- [Perform a blocking wait on the timer. ]
- ]
-
-]
 
-[heading Protected Member Functions]
-[table
- [[Name][Description]]
+ const_buffer();
 
- [
- [[link boost_asio.reference.basic_deadline_timer.get_implementation [*get_implementation]]]
- [Get the underlying implementation of the I/O object. ]
- ]
-
- [
- [[link boost_asio.reference.basic_deadline_timer.get_service [*get_service]]]
- [Get the service associated with the I/O object. ]
- ]
-
-]
 
-[heading Protected Data Members]
-[table
- [[Name][Description]]
 
- [
- [[link boost_asio.reference.basic_deadline_timer.implementation [*implementation]]]
- [(Deprecated: Use get_implementation().) The underlying implementation of the I/O object. ]
- ]
+[endsect]
 
- [
- [[link boost_asio.reference.basic_deadline_timer.service [*service]]]
- [(Deprecated: Use get_service().) The service associated with the I/O object. ]
- ]
 
-]
 
-The [link boost_asio.reference.basic_deadline_timer `basic_deadline_timer`] class template provides the ability to perform a blocking or asynchronous wait for a timer to expire.
+[section:overload2 const_buffer::const_buffer (2 of 3 overloads)]
 
-A deadline timer is always in one of two states: "expired" or "not expired". If the `wait()` or `async_wait()` function is called on an expired timer, the wait operation will complete immediately.
 
-Most applications will use the [link boost_asio.reference.deadline_timer `deadline_timer`] typedef.
+Construct a buffer to represent a given memory range.
 
 
-[heading Thread Safety]
-
-[*Distinct] [*objects:] Safe.
+ const_buffer(
+ const void * data,
+ std::size_t size);
 
-[*Shared] [*objects:] Unsafe.
 
 
-[heading Examples]
-
-Performing a blocking wait:
+[endsect]
 
- // Construct a timer without setting an expiry time.
- boost::asio::deadline_timer timer(io_service);
 
- // Set an expiry time relative to now.
- timer.expires_from_now(boost::posix_time::seconds(5));
 
- // Wait for the timer to expire.
- timer.wait();
+[section:overload3 const_buffer::const_buffer (3 of 3 overloads)]
 
 
+Construct a non-modifiable buffer from a modifiable one.
 
 
+ const_buffer(
+ const mutable_buffer & b);
 
-Performing an asynchronous wait:
 
- void handler(const boost::system::error_code& error)
- {
- if (!error)
- {
- // Timer expired.
- }
- }
 
- ...
+[endsect]
 
- // Construct a timer with an absolute expiry time.
- boost::asio::deadline_timer timer(io_service,
- boost::posix_time::time_from_string("2005-12-07 23:59:59.000"));
 
- // Start an asynchronous wait.
- timer.async_wait(handler);
+[endsect]
 
+[section:operator_plus_ const_buffer::operator+]
 
+[indexterm2 operator+..const_buffer]
+Create a new non-modifiable buffer that is offset from the start of another.
 
 
+ const_buffer ``[link boost_asio.reference.const_buffer.operator_plus_.overload1 operator+]``(
+ const const_buffer & b,
+ std::size_t start);
+ `` [''''&raquo;''' [link boost_asio.reference.const_buffer.operator_plus_.overload1 more...]]``
 
-[heading Changing an active deadline_timer's expiry time]
-
+ const_buffer ``[link boost_asio.reference.const_buffer.operator_plus_.overload2 operator+]``(
+ std::size_t start,
+ const const_buffer & b);
+ `` [''''&raquo;''' [link boost_asio.reference.const_buffer.operator_plus_.overload2 more...]]``
 
 
-Changing the expiry time of a timer while there are pending asynchronous waits causes those wait operations to be cancelled. To ensure that the action associated with the timer is performed only once, use something like this: used:
+[section:overload1 const_buffer::operator+ (1 of 2 overloads)]
 
 
+Create a new non-modifiable buffer that is offset from the start of another.
 
- void on_some_event()
- {
- if (my_timer.expires_from_now(seconds(5)) > 0)
- {
- // We managed to cancel the timer. Start new asynchronous wait.
- my_timer.async_wait(on_timeout);
- }
- else
- {
- // Too late, timer has already expired!
- }
- }
 
- void on_timeout(const boost::system::error_code& e)
- {
- if (e != boost::asio::error::operation_aborted)
- {
- // Timer was not cancelled, take necessary action.
- }
- }
+ const_buffer operator+(
+ const const_buffer & b,
+ std::size_t start);
 
 
 
+[endsect]
 
 
-* The `boost::asio::basic_deadline_timer::expires_from_now()` function cancels any pending asynchronous waits, and returns the number of asynchronous waits that were cancelled. If it returns 0 then you were too late and the wait handler has already been executed, or will soon be executed. If it returns 1 then the wait handler was successfully cancelled.
 
+[section:overload2 const_buffer::operator+ (2 of 2 overloads)]
 
-* If a wait handler is cancelled, the boost::system::error\_code passed to it contains the value `boost::asio::error::operation_aborted`.
 
+Create a new non-modifiable buffer that is offset from the start of another.
 
 
+ const_buffer operator+(
+ std::size_t start,
+ const const_buffer & b);
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/deadline_timer.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
+[endsect]
 
 
 [endsect]
 
 
-[section:deadline_timer_service deadline_timer_service]
+[endsect]
 
+[section:const_buffers_1 const_buffers_1]
 
-Default service implementation for a timer.
 
+Adapts a single non-modifiable buffer so that it meets the requirements of the ConstBufferSequence concept.
 
- template<
- typename TimeType,
- typename ``[link boost_asio.reference.TimeTraits TimeTraits]`` = boost::asio::time_traits<TimeType>>
- class deadline_timer_service :
- public io_service::service
+
+ class const_buffers_1 :
+ public const_buffer
 
 
 [heading Types]
@@ -51641,29 +51353,15 @@
 
   [
 
- [[link boost_asio.reference.deadline_timer_service.duration_type [*duration_type]]]
- [The duration type. ]
-
- ]
-
- [
-
- [[link boost_asio.reference.deadline_timer_service.implementation_type [*implementation_type]]]
- [The implementation type of the deadline timer. ]
-
- ]
-
- [
-
- [[link boost_asio.reference.deadline_timer_service.time_type [*time_type]]]
- [The time type. ]
+ [[link boost_asio.reference.const_buffers_1.const_iterator [*const_iterator]]]
+ [A random-access iterator type that may be used to read elements. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.deadline_timer_service.traits_type [*traits_type]]]
- [The time traits type. ]
+ [[link boost_asio.reference.const_buffers_1.value_type [*value_type]]]
+ [The type for each element in the list of buffers. ]
   
   ]
 
@@ -51674,120 +51372,84 @@
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.deadline_timer_service.async_wait [*async_wait]]]
- []
- ]
-
- [
- [[link boost_asio.reference.deadline_timer_service.cancel [*cancel]]]
- [Cancel any asynchronous wait operations associated with the timer. ]
- ]
-
- [
- [[link boost_asio.reference.deadline_timer_service.cancel_one [*cancel_one]]]
- [Cancels one asynchronous wait operation associated with the timer. ]
- ]
-
- [
- [[link boost_asio.reference.deadline_timer_service.construct [*construct]]]
- [Construct a new timer implementation. ]
- ]
-
- [
- [[link boost_asio.reference.deadline_timer_service.deadline_timer_service [*deadline_timer_service]]]
- [Construct a new timer service for the specified io_service. ]
- ]
-
- [
- [[link boost_asio.reference.deadline_timer_service.destroy [*destroy]]]
- [Destroy a timer implementation. ]
- ]
-
- [
- [[link boost_asio.reference.deadline_timer_service.expires_at [*expires_at]]]
- [Get the expiry time for the timer as an absolute time.
-
- Set the expiry time for the timer as an absolute time. ]
+ [[link boost_asio.reference.const_buffers_1.begin [*begin]]]
+ [Get a random-access iterator to the first element. ]
   ]
   
   [
- [[link boost_asio.reference.deadline_timer_service.expires_from_now [*expires_from_now]]]
- [Get the expiry time for the timer relative to now.
+ [[link boost_asio.reference.const_buffers_1.const_buffers_1 [*const_buffers_1]]]
+ [Construct to represent a given memory range.
 
- Set the expiry time for the timer relative to now. ]
- ]
-
- [
- [[link boost_asio.reference.deadline_timer_service.get_io_service [*get_io_service]]]
- [Get the io_service object that owns the service. ]
+ Construct to represent a single non-modifiable buffer. ]
   ]
   
   [
- [[link boost_asio.reference.deadline_timer_service.wait [*wait]]]
- []
+ [[link boost_asio.reference.const_buffers_1.end [*end]]]
+ [Get a random-access iterator for one past the last element. ]
   ]
   
 ]
 
-[heading Data Members]
+[heading Related Functions]
 [table
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.deadline_timer_service.id [*id]]]
- [The unique service identifier. ]
+ [[link boost_asio.reference.const_buffers_1.operator_plus_ [*operator+]]]
+ [Create a new non-modifiable buffer that is offset from the start of another. ]
   ]
-
+
 ]
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/deadline_timer_service.hpp]
+[*Header: ][^boost/asio/buffer.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
 
-[section:async_wait deadline_timer_service::async_wait]
+[section:begin const_buffers_1::begin]
 
-[indexterm2 async_wait..deadline_timer_service]
+[indexterm2 begin..const_buffers_1]
+Get a random-access iterator to the first element.
 
- template<
- typename ``[link boost_asio.reference.WaitHandler WaitHandler]``>
- void async_wait(
- implementation_type & impl,
- WaitHandler handler);
+
+ const_iterator begin() const;
 
 
 
 [endsect]
 
 
+[section:const_buffers_1 const_buffers_1::const_buffers_1]
 
-[section:cancel deadline_timer_service::cancel]
+[indexterm2 const_buffers_1..const_buffers_1]
+Construct to represent a given memory range.
 
-[indexterm2 cancel..deadline_timer_service]
-Cancel any asynchronous wait operations associated with the timer.
 
+ ``[link boost_asio.reference.const_buffers_1.const_buffers_1.overload1 const_buffers_1]``(
+ const void * data,
+ std::size_t size);
+ `` [''''&raquo;''' [link boost_asio.reference.const_buffers_1.const_buffers_1.overload1 more...]]``
 
- std::size_t cancel(
- implementation_type & impl,
- boost::system::error_code & ec);
 
+Construct to represent a single non-modifiable buffer.
 
 
-[endsect]
+ explicit ``[link boost_asio.reference.const_buffers_1.const_buffers_1.overload2 const_buffers_1]``(
+ const const_buffer & b);
+ `` [''''&raquo;''' [link boost_asio.reference.const_buffers_1.const_buffers_1.overload2 more...]]``
 
 
+[section:overload1 const_buffers_1::const_buffers_1 (1 of 2 overloads)]
 
-[section:cancel_one deadline_timer_service::cancel_one]
 
-[indexterm2 cancel_one..deadline_timer_service]
-Cancels one asynchronous wait operation associated with the timer.
+Construct to represent a given memory range.
 
 
- std::size_t cancel_one(
- implementation_type & impl,
- boost::system::error_code & ec);
+ const_buffers_1(
+ const void * data,
+ std::size_t size);
 
 
 
@@ -51795,281 +51457,550 @@
 
 
 
-[section:construct deadline_timer_service::construct]
+[section:overload2 const_buffers_1::const_buffers_1 (2 of 2 overloads)]
 
-[indexterm2 construct..deadline_timer_service]
-Construct a new timer implementation.
+
+Construct to represent a single non-modifiable buffer.
 
 
- void construct(
- implementation_type & impl);
+ const_buffers_1(
+ const const_buffer & b);
 
 
 
 [endsect]
 
 
+[endsect]
 
-[section:deadline_timer_service deadline_timer_service::deadline_timer_service]
 
-[indexterm2 deadline_timer_service..deadline_timer_service]
-Construct a new timer service for the specified [link boost_asio.reference.io_service `io_service`].
+[section:const_iterator const_buffers_1::const_iterator]
 
+[indexterm2 const_iterator..const_buffers_1]
+A random-access iterator type that may be used to read elements.
 
- deadline_timer_service(
- boost::asio::io_service & io_service);
 
+ typedef const const_buffer * const_iterator;
 
 
-[endsect]
 
+[heading Requirements]
 
+[*Header: ][^boost/asio/buffer.hpp]
 
-[section:destroy deadline_timer_service::destroy]
+[*Convenience header: ][^boost/asio.hpp]
 
-[indexterm2 destroy..deadline_timer_service]
-Destroy a timer implementation.
 
+[endsect]
 
- void destroy(
- implementation_type & impl);
 
 
+[section:end const_buffers_1::end]
 
-[endsect]
+[indexterm2 end..const_buffers_1]
+Get a random-access iterator for one past the last element.
 
 
+ const_iterator end() const;
 
-[section:duration_type deadline_timer_service::duration_type]
 
-[indexterm2 duration_type..deadline_timer_service]
-The duration type.
 
+[endsect]
 
- typedef traits_type::duration_type duration_type;
 
+[section:operator_plus_ const_buffers_1::operator+]
 
+[indexterm2 operator+..const_buffers_1]
+Create a new non-modifiable buffer that is offset from the start of another.
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/deadline_timer_service.hpp]
+ const_buffer ``[link boost_asio.reference.const_buffers_1.operator_plus_.overload1 operator+]``(
+ const const_buffer & b,
+ std::size_t start);
+ `` [''''&raquo;''' [link boost_asio.reference.const_buffers_1.operator_plus_.overload1 more...]]``
 
-[*Convenience header: ][^boost/asio.hpp]
+ const_buffer ``[link boost_asio.reference.const_buffers_1.operator_plus_.overload2 operator+]``(
+ std::size_t start,
+ const const_buffer & b);
+ `` [''''&raquo;''' [link boost_asio.reference.const_buffers_1.operator_plus_.overload2 more...]]``
 
 
-[endsect]
+[section:overload1 const_buffers_1::operator+ (1 of 2 overloads)]
 
 
-[section:expires_at deadline_timer_service::expires_at]
+['Inherited from const_buffer.]
 
-[indexterm2 expires_at..deadline_timer_service]
-Get the expiry time for the timer as an absolute time.
 
+Create a new non-modifiable buffer that is offset from the start of another.
 
- time_type ``[link boost_asio.reference.deadline_timer_service.expires_at.overload1 expires_at]``(
- const implementation_type & impl) const;
- `` [''''&raquo;''' [link boost_asio.reference.deadline_timer_service.expires_at.overload1 more...]]``
 
+ const_buffer operator+(
+ const const_buffer & b,
+ std::size_t start);
 
-Set the expiry time for the timer as an absolute time.
 
 
- std::size_t ``[link boost_asio.reference.deadline_timer_service.expires_at.overload2 expires_at]``(
- implementation_type & impl,
- const time_type & expiry_time,
- boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.deadline_timer_service.expires_at.overload2 more...]]``
+[endsect]
 
 
-[section:overload1 deadline_timer_service::expires_at (1 of 2 overloads)]
 
+[section:overload2 const_buffers_1::operator+ (2 of 2 overloads)]
 
-Get the expiry time for the timer as an absolute time.
 
+['Inherited from const_buffer.]
 
- time_type expires_at(
- const implementation_type & impl) const;
+
+Create a new non-modifiable buffer that is offset from the start of another.
+
+
+ const_buffer operator+(
+ std::size_t start,
+ const const_buffer & b);
 
 
 
 [endsect]
 
 
+[endsect]
 
-[section:overload2 deadline_timer_service::expires_at (2 of 2 overloads)]
 
+[section:value_type const_buffers_1::value_type]
 
-Set the expiry time for the timer as an absolute time.
+[indexterm2 value_type..const_buffers_1]
+The type for each element in the list of buffers.
 
 
- std::size_t expires_at(
- implementation_type & impl,
- const time_type & expiry_time,
- boost::system::error_code & ec);
+ typedef const_buffer value_type;
 
 
+[heading Member Functions]
+[table
+ [[Name][Description]]
 
-[endsect]
+ [
+ [[link boost_asio.reference.const_buffer.const_buffer [*const_buffer]]]
+ [Construct an empty buffer.
 
+ Construct a buffer to represent a given memory range.
 
-[endsect]
+ Construct a non-modifiable buffer from a modifiable one. ]
+ ]
+
+]
 
-[section:expires_from_now deadline_timer_service::expires_from_now]
+[heading Related Functions]
+[table
+ [[Name][Description]]
 
-[indexterm2 expires_from_now..deadline_timer_service]
-Get the expiry time for the timer relative to now.
+ [
+ [[link boost_asio.reference.const_buffer.operator_plus_ [*operator+]]]
+ [Create a new non-modifiable buffer that is offset from the start of another. ]
+ ]
+
+]
 
+The [link boost_asio.reference.const_buffer `const_buffer`] class provides a safe representation of a buffer that cannot be modified. It does not own the underlying data, and so is cheap to copy or assign.
 
- duration_type ``[link boost_asio.reference.deadline_timer_service.expires_from_now.overload1 expires_from_now]``(
- const implementation_type & impl) const;
- `` [''''&raquo;''' [link boost_asio.reference.deadline_timer_service.expires_from_now.overload1 more...]]``
 
+[heading Accessing Buffer Contents]
+
 
-Set the expiry time for the timer relative to now.
 
+The contents of a buffer may be accessed using the [link boost_asio.reference.buffer_size `buffer_size`] and [link boost_asio.reference.buffer_cast `buffer_cast`] functions:
 
- std::size_t ``[link boost_asio.reference.deadline_timer_service.expires_from_now.overload2 expires_from_now]``(
- implementation_type & impl,
- const duration_type & expiry_time,
- boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.deadline_timer_service.expires_from_now.overload2 more...]]``
 
 
-[section:overload1 deadline_timer_service::expires_from_now (1 of 2 overloads)]
+ boost::asio::const_buffer b1 = ...;
+ std::size_t s1 = boost::asio::buffer_size(b1);
+ const unsigned char* p1 = boost::asio::buffer_cast<const unsigned char*>(b1);
 
 
-Get the expiry time for the timer relative to now.
 
 
- duration_type expires_from_now(
- const implementation_type & impl) const;
+The `boost::asio::buffer_cast` function permits violations of type safety, so uses of it in application code should be carefully considered.
+
+
+[heading Requirements]
+
+[*Header: ][^boost/asio/buffer.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
 
-[section:overload2 deadline_timer_service::expires_from_now (2 of 2 overloads)]
+[endsect]
 
+[section:datagram_socket_service datagram_socket_service]
 
-Set the expiry time for the timer relative to now.
 
+Default service implementation for a datagram socket.
 
- std::size_t expires_from_now(
- implementation_type & impl,
- const duration_type & expiry_time,
- boost::system::error_code & ec);
 
+ template<
+ typename ``[link boost_asio.reference.Protocol Protocol]``>
+ class datagram_socket_service :
+ public io_service::service
 
 
-[endsect]
+[heading Types]
+[table
+ [[Name][Description]]
 
+ [
 
-[endsect]
+ [[link boost_asio.reference.datagram_socket_service.endpoint_type [*endpoint_type]]]
+ [The endpoint type. ]
+
+ ]
 
+ [
 
-[section:get_io_service deadline_timer_service::get_io_service]
+ [[link boost_asio.reference.datagram_socket_service.implementation_type [*implementation_type]]]
+ [The type of a datagram socket. ]
+
+ ]
 
+ [
 
-['Inherited from io_service.]
+ [[link boost_asio.reference.datagram_socket_service.native_handle_type [*native_handle_type]]]
+ [The native socket type. ]
+
+ ]
 
-[indexterm2 get_io_service..deadline_timer_service]
-Get the [link boost_asio.reference.io_service `io_service`] object that owns the service.
+ [
+
+ [[link boost_asio.reference.datagram_socket_service.native_type [*native_type]]]
+ [(Deprecated: Use native_handle_type.) The native socket type. ]
+
+ ]
 
+ [
 
- boost::asio::io_service & get_io_service();
+ [[link boost_asio.reference.datagram_socket_service.protocol_type [*protocol_type]]]
+ [The protocol type. ]
+
+ ]
 
+]
 
+[heading Member Functions]
+[table
+ [[Name][Description]]
 
-[endsect]
+ [
+ [[link boost_asio.reference.datagram_socket_service.assign [*assign]]]
+ [Assign an existing native socket to a datagram socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.datagram_socket_service.async_connect [*async_connect]]]
+ [Start an asynchronous connect. ]
+ ]
+
+ [
+ [[link boost_asio.reference.datagram_socket_service.async_receive [*async_receive]]]
+ [Start an asynchronous receive. ]
+ ]
+
+ [
+ [[link boost_asio.reference.datagram_socket_service.async_receive_from [*async_receive_from]]]
+ [Start an asynchronous receive that will get the endpoint of the sender. ]
+ ]
+
+ [
+ [[link boost_asio.reference.datagram_socket_service.async_send [*async_send]]]
+ [Start an asynchronous send. ]
+ ]
+
+ [
+ [[link boost_asio.reference.datagram_socket_service.async_send_to [*async_send_to]]]
+ [Start an asynchronous send. ]
+ ]
+
+ [
+ [[link boost_asio.reference.datagram_socket_service.at_mark [*at_mark]]]
+ [Determine whether the socket is at the out-of-band data mark. ]
+ ]
+
+ [
+ [[link boost_asio.reference.datagram_socket_service.available [*available]]]
+ [Determine the number of bytes available for reading. ]
+ ]
+
+ [
+ [[link boost_asio.reference.datagram_socket_service.bind [*bind]]]
+ []
+ ]
+
+ [
+ [[link boost_asio.reference.datagram_socket_service.cancel [*cancel]]]
+ [Cancel all asynchronous operations associated with the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.datagram_socket_service.close [*close]]]
+ [Close a datagram socket implementation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.datagram_socket_service.connect [*connect]]]
+ [Connect the datagram socket to the specified endpoint. ]
+ ]
+
+ [
+ [[link boost_asio.reference.datagram_socket_service.construct [*construct]]]
+ [Construct a new datagram socket implementation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.datagram_socket_service.datagram_socket_service [*datagram_socket_service]]]
+ [Construct a new datagram socket service for the specified io_service. ]
+ ]
+
+ [
+ [[link boost_asio.reference.datagram_socket_service.destroy [*destroy]]]
+ [Destroy a datagram socket implementation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.datagram_socket_service.get_io_service [*get_io_service]]]
+ [Get the io_service object that owns the service. ]
+ ]
+
+ [
+ [[link boost_asio.reference.datagram_socket_service.get_option [*get_option]]]
+ [Get a socket option. ]
+ ]
+
+ [
+ [[link boost_asio.reference.datagram_socket_service.io_control [*io_control]]]
+ [Perform an IO control command on the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.datagram_socket_service.is_open [*is_open]]]
+ [Determine whether the socket is open. ]
+ ]
+
+ [
+ [[link boost_asio.reference.datagram_socket_service.local_endpoint [*local_endpoint]]]
+ [Get the local endpoint. ]
+ ]
+
+ [
+ [[link boost_asio.reference.datagram_socket_service.move_assign [*move_assign]]]
+ [Move-assign from another datagram socket implementation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.datagram_socket_service.move_construct [*move_construct]]]
+ [Move-construct a new datagram socket implementation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.datagram_socket_service.native [*native]]]
+ [(Deprecated: Use native_handle().) Get the native socket implementation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.datagram_socket_service.native_handle [*native_handle]]]
+ [Get the native socket implementation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.datagram_socket_service.native_non_blocking [*native_non_blocking]]]
+ [Gets the non-blocking mode of the native socket implementation.
+
+ Sets the non-blocking mode of the native socket implementation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.datagram_socket_service.non_blocking [*non_blocking]]]
+ [Gets the non-blocking mode of the socket.
+
+ Sets the non-blocking mode of the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.datagram_socket_service.open [*open]]]
+ []
+ ]
+
+ [
+ [[link boost_asio.reference.datagram_socket_service.receive [*receive]]]
+ [Receive some data from the peer. ]
+ ]
+
+ [
+ [[link boost_asio.reference.datagram_socket_service.receive_from [*receive_from]]]
+ [Receive a datagram with the endpoint of the sender. ]
+ ]
+
+ [
+ [[link boost_asio.reference.datagram_socket_service.remote_endpoint [*remote_endpoint]]]
+ [Get the remote endpoint. ]
+ ]
+
+ [
+ [[link boost_asio.reference.datagram_socket_service.send [*send]]]
+ [Send the given data to the peer. ]
+ ]
+
+ [
+ [[link boost_asio.reference.datagram_socket_service.send_to [*send_to]]]
+ [Send a datagram to the specified endpoint. ]
+ ]
+
+ [
+ [[link boost_asio.reference.datagram_socket_service.set_option [*set_option]]]
+ [Set a socket option. ]
+ ]
+
+ [
+ [[link boost_asio.reference.datagram_socket_service.shutdown [*shutdown]]]
+ [Disable sends or receives on the socket. ]
+ ]
+
+]
 
+[heading Data Members]
+[table
+ [[Name][Description]]
 
+ [
+ [[link boost_asio.reference.datagram_socket_service.id [*id]]]
+ [The unique service identifier. ]
+ ]
 
-[section:id deadline_timer_service::id]
+]
 
-[indexterm2 id..deadline_timer_service]
-The unique service identifier.
+[heading Requirements]
 
+[*Header: ][^boost/asio/datagram_socket_service.hpp]
 
- static boost::asio::io_service::id id;
+[*Convenience header: ][^boost/asio.hpp]
 
 
+[section:assign datagram_socket_service::assign]
 
-[endsect]
+[indexterm2 assign..datagram_socket_service]
+Assign an existing native socket to a datagram socket.
 
 
+ boost::system::error_code assign(
+ implementation_type & impl,
+ const protocol_type & protocol,
+ const native_handle_type & native_socket,
+ boost::system::error_code & ec);
 
-[section:implementation_type deadline_timer_service::implementation_type]
 
-[indexterm2 implementation_type..deadline_timer_service]
-The implementation type of the deadline timer.
 
+[endsect]
 
- typedef implementation_defined implementation_type;
 
 
+[section:async_connect datagram_socket_service::async_connect]
 
-[heading Requirements]
+[indexterm2 async_connect..datagram_socket_service]
+Start an asynchronous connect.
 
-[*Header: ][^boost/asio/deadline_timer_service.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
+ template<
+ typename ``[link boost_asio.reference.ConnectHandler ConnectHandler]``>
+ void async_connect(
+ implementation_type & impl,
+ const endpoint_type & peer_endpoint,
+ ConnectHandler handler);
+
 
 
 [endsect]
 
 
 
-[section:time_type deadline_timer_service::time_type]
+[section:async_receive datagram_socket_service::async_receive]
 
-[indexterm2 time_type..deadline_timer_service]
-The time type.
+[indexterm2 async_receive..datagram_socket_service]
+Start an asynchronous receive.
 
 
- typedef traits_type::time_type time_type;
+ template<
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
+ typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
+ void async_receive(
+ implementation_type & impl,
+ const MutableBufferSequence & buffers,
+ socket_base::message_flags flags,
+ ReadHandler handler);
 
 
 
-[heading Requirements]
+[endsect]
 
-[*Header: ][^boost/asio/deadline_timer_service.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
 
+[section:async_receive_from datagram_socket_service::async_receive_from]
 
-[endsect]
+[indexterm2 async_receive_from..datagram_socket_service]
+Start an asynchronous receive that will get the endpoint of the sender.
 
 
+ template<
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
+ typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
+ void async_receive_from(
+ implementation_type & impl,
+ const MutableBufferSequence & buffers,
+ endpoint_type & sender_endpoint,
+ socket_base::message_flags flags,
+ ReadHandler handler);
 
-[section:traits_type deadline_timer_service::traits_type]
 
-[indexterm2 traits_type..deadline_timer_service]
-The time traits type.
 
+[endsect]
 
- typedef TimeTraits traits_type;
 
 
+[section:async_send datagram_socket_service::async_send]
 
-[heading Requirements]
+[indexterm2 async_send..datagram_socket_service]
+Start an asynchronous send.
 
-[*Header: ][^boost/asio/deadline_timer_service.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
+ template<
+ typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
+ typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
+ void async_send(
+ implementation_type & impl,
+ const ConstBufferSequence & buffers,
+ socket_base::message_flags flags,
+ WriteHandler handler);
+
 
 
 [endsect]
 
 
 
-[section:wait deadline_timer_service::wait]
+[section:async_send_to datagram_socket_service::async_send_to]
 
-[indexterm2 wait..deadline_timer_service]
+[indexterm2 async_send_to..datagram_socket_service]
+Start an asynchronous send.
 
- void wait(
+
+ template<
+ typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
+ typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
+ void async_send_to(
       implementation_type & impl,
- boost::system::error_code & ec);
+ const ConstBufferSequence & buffers,
+ const endpoint_type & destination,
+ socket_base::message_flags flags,
+ WriteHandler handler);
 
 
 
@@ -52077,295 +52008,160 @@
 
 
 
-[endsect]
+[section:at_mark datagram_socket_service::at_mark]
+
+[indexterm2 at_mark..datagram_socket_service]
+Determine whether the socket is at the out-of-band data mark.
 
 
-[section:error__addrinfo_category error::addrinfo_category]
+ bool at_mark(
+ const implementation_type & impl,
+ boost::system::error_code & ec) const;
 
-[indexterm1 error::addrinfo_category]
 
- static const boost::system::error_category & addrinfo_category = boost::asio::error::get_addrinfo_category();
+
+[endsect]
 
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/error.hpp]
+[section:available datagram_socket_service::available]
+
+[indexterm2 available..datagram_socket_service]
+Determine the number of bytes available for reading.
+
+
+ std::size_t available(
+ const implementation_type & impl,
+ boost::system::error_code & ec) const;
 
-[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
 
-[section:error__addrinfo_errors error::addrinfo_errors]
+[section:bind datagram_socket_service::bind]
 
-[indexterm1 error::addrinfo_errors]
+[indexterm2 bind..datagram_socket_service]
 
- enum addrinfo_errors
+ boost::system::error_code bind(
+ implementation_type & impl,
+ const endpoint_type & endpoint,
+ boost::system::error_code & ec);
 
-[indexterm2 service_not_found..error::addrinfo_errors]
-[indexterm2 socket_type_not_supported..error::addrinfo_errors]
 
-[heading Values]
-[variablelist
 
- [
- [service_not_found]
- [The service is not supported for the given socket type. ]
- ]
+[endsect]
 
- [
- [socket_type_not_supported]
- [The socket type is not supported. ]
- ]
 
-]
 
+[section:cancel datagram_socket_service::cancel]
 
-[heading Requirements]
+[indexterm2 cancel..datagram_socket_service]
+Cancel all asynchronous operations associated with the socket.
 
-[*Header: ][^boost/asio/error.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
+ boost::system::error_code cancel(
+ implementation_type & impl,
+ boost::system::error_code & ec);
+
 
 
 [endsect]
 
 
 
-[section:error__basic_errors error::basic_errors]
+[section:close datagram_socket_service::close]
 
-[indexterm1 error::basic_errors]
+[indexterm2 close..datagram_socket_service]
+Close a datagram socket implementation.
 
- enum basic_errors
 
-[indexterm2 access_denied..error::basic_errors]
-[indexterm2 address_family_not_supported..error::basic_errors]
-[indexterm2 address_in_use..error::basic_errors]
-[indexterm2 already_connected..error::basic_errors]
-[indexterm2 already_started..error::basic_errors]
-[indexterm2 broken_pipe..error::basic_errors]
-[indexterm2 connection_aborted..error::basic_errors]
-[indexterm2 connection_refused..error::basic_errors]
-[indexterm2 connection_reset..error::basic_errors]
-[indexterm2 bad_descriptor..error::basic_errors]
-[indexterm2 fault..error::basic_errors]
-[indexterm2 host_unreachable..error::basic_errors]
-[indexterm2 in_progress..error::basic_errors]
-[indexterm2 interrupted..error::basic_errors]
-[indexterm2 invalid_argument..error::basic_errors]
-[indexterm2 message_size..error::basic_errors]
-[indexterm2 name_too_long..error::basic_errors]
-[indexterm2 network_down..error::basic_errors]
-[indexterm2 network_reset..error::basic_errors]
-[indexterm2 network_unreachable..error::basic_errors]
-[indexterm2 no_descriptors..error::basic_errors]
-[indexterm2 no_buffer_space..error::basic_errors]
-[indexterm2 no_memory..error::basic_errors]
-[indexterm2 no_permission..error::basic_errors]
-[indexterm2 no_protocol_option..error::basic_errors]
-[indexterm2 not_connected..error::basic_errors]
-[indexterm2 not_socket..error::basic_errors]
-[indexterm2 operation_aborted..error::basic_errors]
-[indexterm2 operation_not_supported..error::basic_errors]
-[indexterm2 shut_down..error::basic_errors]
-[indexterm2 timed_out..error::basic_errors]
-[indexterm2 try_again..error::basic_errors]
-[indexterm2 would_block..error::basic_errors]
+ boost::system::error_code close(
+ implementation_type & impl,
+ boost::system::error_code & ec);
 
-[heading Values]
-[variablelist
 
- [
- [access_denied]
- [Permission denied. ]
- ]
 
- [
- [address_family_not_supported]
- [Address family not supported by protocol. ]
- ]
+[endsect]
 
- [
- [address_in_use]
- [Address already in use. ]
- ]
 
- [
- [already_connected]
- [Transport endpoint is already connected. ]
- ]
 
- [
- [already_started]
- [Operation already in progress. ]
- ]
+[section:connect datagram_socket_service::connect]
 
- [
- [broken_pipe]
- [Broken pipe. ]
- ]
+[indexterm2 connect..datagram_socket_service]
+Connect the datagram socket to the specified endpoint.
 
- [
- [connection_aborted]
- [A connection has been aborted. ]
- ]
 
- [
- [connection_refused]
- [Connection refused. ]
- ]
+ boost::system::error_code connect(
+ implementation_type & impl,
+ const endpoint_type & peer_endpoint,
+ boost::system::error_code & ec);
 
- [
- [connection_reset]
- [Connection reset by peer. ]
- ]
 
- [
- [bad_descriptor]
- [Bad file descriptor. ]
- ]
 
- [
- [fault]
- [Bad address. ]
- ]
+[endsect]
 
- [
- [host_unreachable]
- [No route to host. ]
- ]
 
- [
- [in_progress]
- [Operation now in progress. ]
- ]
 
- [
- [interrupted]
- [Interrupted system call. ]
- ]
+[section:construct datagram_socket_service::construct]
 
- [
- [invalid_argument]
- [Invalid argument. ]
- ]
+[indexterm2 construct..datagram_socket_service]
+Construct a new datagram socket implementation.
 
- [
- [message_size]
- [Message too long. ]
- ]
 
- [
- [name_too_long]
- [The name was too long. ]
- ]
+ void construct(
+ implementation_type & impl);
 
- [
- [network_down]
- [Network is down. ]
- ]
 
- [
- [network_reset]
- [Network dropped connection on reset. ]
- ]
 
- [
- [network_unreachable]
- [Network is unreachable. ]
- ]
+[endsect]
 
- [
- [no_descriptors]
- [Too many open files. ]
- ]
 
- [
- [no_buffer_space]
- [No buffer space available. ]
- ]
 
- [
- [no_memory]
- [Cannot allocate memory. ]
- ]
+[section:datagram_socket_service datagram_socket_service::datagram_socket_service]
 
- [
- [no_permission]
- [Operation not permitted. ]
- ]
+[indexterm2 datagram_socket_service..datagram_socket_service]
+Construct a new datagram socket service for the specified [link boost_asio.reference.io_service `io_service`].
 
- [
- [no_protocol_option]
- [Protocol not available. ]
- ]
 
- [
- [not_connected]
- [Transport endpoint is not connected. ]
- ]
+ datagram_socket_service(
+ boost::asio::io_service & io_service);
 
- [
- [not_socket]
- [Socket operation on non-socket. ]
- ]
 
- [
- [operation_aborted]
- [Operation cancelled. ]
- ]
 
- [
- [operation_not_supported]
- [Operation not supported. ]
- ]
+[endsect]
 
- [
- [shut_down]
- [Cannot send after transport endpoint shutdown. ]
- ]
 
- [
- [timed_out]
- [Connection timed out. ]
- ]
 
- [
- [try_again]
- [Resource temporarily unavailable. ]
- ]
+[section:destroy datagram_socket_service::destroy]
 
- [
- [would_block]
- [The socket is marked non-blocking and the requested operation would block. ]
- ]
+[indexterm2 destroy..datagram_socket_service]
+Destroy a datagram socket implementation.
 
-]
 
+ void destroy(
+ implementation_type & impl);
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/error.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
+[endsect]
 
 
-[endsect]
 
+[section:endpoint_type datagram_socket_service::endpoint_type]
 
+[indexterm2 endpoint_type..datagram_socket_service]
+The endpoint type.
 
-[section:error__get_addrinfo_category error::get_addrinfo_category]
 
-[indexterm1 error::get_addrinfo_category]
+ typedef Protocol::endpoint endpoint_type;
 
- const boost::system::error_category & get_addrinfo_category();
 
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/error.hpp]
+[*Header: ][^boost/asio/datagram_socket_service.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
@@ -52374,70 +52170,69 @@
 
 
 
-[section:error__get_misc_category error::get_misc_category]
+[section:get_io_service datagram_socket_service::get_io_service]
 
-[indexterm1 error::get_misc_category]
 
- const boost::system::error_category & get_misc_category();
+['Inherited from io_service.]
 
+[indexterm2 get_io_service..datagram_socket_service]
+Get the [link boost_asio.reference.io_service `io_service`] object that owns the service.
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/error.hpp]
+ boost::asio::io_service & get_io_service();
 
-[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
 
-[section:error__get_netdb_category error::get_netdb_category]
-
-[indexterm1 error::get_netdb_category]
-
- const boost::system::error_category & get_netdb_category();
+[section:get_option datagram_socket_service::get_option]
 
+[indexterm2 get_option..datagram_socket_service]
+Get a socket option.
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/error.hpp]
+ template<
+ typename ``[link boost_asio.reference.GettableSocketOption GettableSocketOption]``>
+ boost::system::error_code get_option(
+ const implementation_type & impl,
+ GettableSocketOption & option,
+ boost::system::error_code & ec) const;
 
-[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
 
-[section:error__get_ssl_category error::get_ssl_category]
+[section:id datagram_socket_service::id]
 
-[indexterm1 error::get_ssl_category]
+[indexterm2 id..datagram_socket_service]
+The unique service identifier.
 
- const boost::system::error_category & get_ssl_category();
 
+ static boost::asio::io_service::id id;
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/ssl/error.hpp]
 
-[*Convenience header: ][^boost/asio/ssl.hpp]
+[endsect]
 
 
-[endsect]
 
+[section:implementation_type datagram_socket_service::implementation_type]
 
+[indexterm2 implementation_type..datagram_socket_service]
+The type of a datagram socket.
 
-[section:error__get_system_category error::get_system_category]
 
-[indexterm1 error::get_system_category]
+ typedef implementation_defined implementation_type;
 
- const boost::system::error_category & get_system_category();
 
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/error.hpp]
+[*Header: ][^boost/asio/datagram_socket_service.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
@@ -52445,43 +52240,34 @@
 [endsect]
 
 
-[section:error__make_error_code error::make_error_code]
 
-[indexterm1 error::make_error_code]
-
- boost::system::error_code ``[link boost_asio.reference.error__make_error_code.overload1 make_error_code]``(
- basic_errors e);
- `` [''''&raquo;''' [link boost_asio.reference.error__make_error_code.overload1 more...]]``
+[section:io_control datagram_socket_service::io_control]
 
- boost::system::error_code ``[link boost_asio.reference.error__make_error_code.overload2 make_error_code]``(
- netdb_errors e);
- `` [''''&raquo;''' [link boost_asio.reference.error__make_error_code.overload2 more...]]``
+[indexterm2 io_control..datagram_socket_service]
+Perform an IO control command on the socket.
 
- boost::system::error_code ``[link boost_asio.reference.error__make_error_code.overload3 make_error_code]``(
- addrinfo_errors e);
- `` [''''&raquo;''' [link boost_asio.reference.error__make_error_code.overload3 more...]]``
 
- boost::system::error_code ``[link boost_asio.reference.error__make_error_code.overload4 make_error_code]``(
- misc_errors e);
- `` [''''&raquo;''' [link boost_asio.reference.error__make_error_code.overload4 more...]]``
+ template<
+ typename ``[link boost_asio.reference.IoControlCommand IoControlCommand]``>
+ boost::system::error_code io_control(
+ implementation_type & impl,
+ IoControlCommand & command,
+ boost::system::error_code & ec);
 
- boost::system::error_code ``[link boost_asio.reference.error__make_error_code.overload5 make_error_code]``(
- ssl_errors e);
- `` [''''&raquo;''' [link boost_asio.reference.error__make_error_code.overload5 more...]]``
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/error.hpp]
+[endsect]
 
-[*Convenience header: ][^boost/asio.hpp]
 
 
-[section:overload1 error::make_error_code (1 of 5 overloads)]
+[section:is_open datagram_socket_service::is_open]
 
+[indexterm2 is_open..datagram_socket_service]
+Determine whether the socket is open.
 
 
- boost::system::error_code make_error_code(
- basic_errors e);
+ bool is_open(
+ const implementation_type & impl) const;
 
 
 
@@ -52489,12 +52275,15 @@
 
 
 
-[section:overload2 error::make_error_code (2 of 5 overloads)]
+[section:local_endpoint datagram_socket_service::local_endpoint]
 
+[indexterm2 local_endpoint..datagram_socket_service]
+Get the local endpoint.
 
 
- boost::system::error_code make_error_code(
- netdb_errors e);
+ endpoint_type local_endpoint(
+ const implementation_type & impl,
+ boost::system::error_code & ec) const;
 
 
 
@@ -52502,12 +52291,16 @@
 
 
 
-[section:overload3 error::make_error_code (3 of 5 overloads)]
+[section:move_assign datagram_socket_service::move_assign]
 
+[indexterm2 move_assign..datagram_socket_service]
+Move-assign from another datagram socket implementation.
 
 
- boost::system::error_code make_error_code(
- addrinfo_errors e);
+ void move_assign(
+ implementation_type & impl,
+ datagram_socket_service & other_service,
+ implementation_type & other_impl);
 
 
 
@@ -52515,12 +52308,15 @@
 
 
 
-[section:overload4 error::make_error_code (4 of 5 overloads)]
+[section:move_construct datagram_socket_service::move_construct]
 
+[indexterm2 move_construct..datagram_socket_service]
+Move-construct a new datagram socket implementation.
 
 
- boost::system::error_code make_error_code(
- misc_errors e);
+ void move_construct(
+ implementation_type & impl,
+ implementation_type & other_impl);
 
 
 
@@ -52528,31 +52324,49 @@
 
 
 
-[section:overload5 error::make_error_code (5 of 5 overloads)]
+[section:native datagram_socket_service::native]
 
+[indexterm2 native..datagram_socket_service]
+(Deprecated: Use `native_handle()`.) Get the native socket implementation.
 
 
- boost::system::error_code make_error_code(
- ssl_errors e);
+ native_type native(
+ implementation_type & impl);
 
 
 
 [endsect]
 
 
+
+[section:native_handle datagram_socket_service::native_handle]
+
+[indexterm2 native_handle..datagram_socket_service]
+Get the native socket implementation.
+
+
+ native_handle_type native_handle(
+ implementation_type & impl);
+
+
+
 [endsect]
 
 
-[section:error__misc_category error::misc_category]
 
-[indexterm1 error::misc_category]
+[section:native_handle_type datagram_socket_service::native_handle_type]
+
+[indexterm2 native_handle_type..datagram_socket_service]
+The native socket type.
+
+
+ typedef implementation_defined native_handle_type;
 
- static const boost::system::error_category & misc_category = boost::asio::error::get_misc_category();
 
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/error.hpp]
+[*Header: ][^boost/asio/datagram_socket_service.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
@@ -52560,65 +52374,74 @@
 [endsect]
 
 
+[section:native_non_blocking datagram_socket_service::native_non_blocking]
 
-[section:error__misc_errors error::misc_errors]
+[indexterm2 native_non_blocking..datagram_socket_service]
+Gets the non-blocking mode of the native socket implementation.
 
-[indexterm1 error::misc_errors]
 
- enum misc_errors
+ bool ``[link boost_asio.reference.datagram_socket_service.native_non_blocking.overload1 native_non_blocking]``(
+ const implementation_type & impl) const;
+ `` [''''&raquo;''' [link boost_asio.reference.datagram_socket_service.native_non_blocking.overload1 more...]]``
 
-[indexterm2 already_open..error::misc_errors]
-[indexterm2 eof..error::misc_errors]
-[indexterm2 not_found..error::misc_errors]
-[indexterm2 fd_set_failure..error::misc_errors]
 
-[heading Values]
-[variablelist
+Sets the non-blocking mode of the native socket implementation.
 
- [
- [already_open]
- [Already open. ]
- ]
 
- [
- [eof]
- [End of file or stream. ]
- ]
+ boost::system::error_code ``[link boost_asio.reference.datagram_socket_service.native_non_blocking.overload2 native_non_blocking]``(
+ implementation_type & impl,
+ bool mode,
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.datagram_socket_service.native_non_blocking.overload2 more...]]``
 
- [
- [not_found]
- [Element not found. ]
- ]
 
- [
- [fd_set_failure]
- [The descriptor cannot fit into the select system call's fd_set. ]
- ]
+[section:overload1 datagram_socket_service::native_non_blocking (1 of 2 overloads)]
 
-]
 
+Gets the non-blocking mode of the native socket implementation.
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/error.hpp]
+ bool native_non_blocking(
+ const implementation_type & impl) const;
 
-[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
 
-[section:error__netdb_category error::netdb_category]
+[section:overload2 datagram_socket_service::native_non_blocking (2 of 2 overloads)]
 
-[indexterm1 error::netdb_category]
 
- static const boost::system::error_category & netdb_category = boost::asio::error::get_netdb_category();
+Sets the non-blocking mode of the native socket implementation.
+
+
+ boost::system::error_code native_non_blocking(
+ implementation_type & impl,
+ bool mode,
+ boost::system::error_code & ec);
+
+
+
+[endsect]
+
+
+[endsect]
+
+
+[section:native_type datagram_socket_service::native_type]
+
+[indexterm2 native_type..datagram_socket_service]
+(Deprecated: Use native\_handle\_type.) The native socket type.
+
+
+ typedef implementation_defined native_type;
+
 
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/error.hpp]
+[*Header: ][^boost/asio/datagram_socket_service.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
@@ -52626,101 +52449,89 @@
 [endsect]
 
 
+[section:non_blocking datagram_socket_service::non_blocking]
 
-[section:error__netdb_errors error::netdb_errors]
+[indexterm2 non_blocking..datagram_socket_service]
+Gets the non-blocking mode of the socket.
 
-[indexterm1 error::netdb_errors]
 
- enum netdb_errors
+ bool ``[link boost_asio.reference.datagram_socket_service.non_blocking.overload1 non_blocking]``(
+ const implementation_type & impl) const;
+ `` [''''&raquo;''' [link boost_asio.reference.datagram_socket_service.non_blocking.overload1 more...]]``
 
-[indexterm2 host_not_found..error::netdb_errors]
-[indexterm2 host_not_found_try_again..error::netdb_errors]
-[indexterm2 no_data..error::netdb_errors]
-[indexterm2 no_recovery..error::netdb_errors]
 
-[heading Values]
-[variablelist
+Sets the non-blocking mode of the socket.
 
- [
- [host_not_found]
- [Host not found (authoritative). ]
- ]
 
- [
- [host_not_found_try_again]
- [Host not found (non-authoritative). ]
- ]
+ boost::system::error_code ``[link boost_asio.reference.datagram_socket_service.non_blocking.overload2 non_blocking]``(
+ implementation_type & impl,
+ bool mode,
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.datagram_socket_service.non_blocking.overload2 more...]]``
 
- [
- [no_data]
- [The query is valid but does not have associated address data. ]
- ]
 
- [
- [no_recovery]
- [A non-recoverable error occurred. ]
- ]
+[section:overload1 datagram_socket_service::non_blocking (1 of 2 overloads)]
 
-]
 
+Gets the non-blocking mode of the socket.
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/error.hpp]
+ bool non_blocking(
+ const implementation_type & impl) const;
 
-[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
 
-[section:error__ssl_category error::ssl_category]
-
-[indexterm1 error::ssl_category]
+[section:overload2 datagram_socket_service::non_blocking (2 of 2 overloads)]
 
- static const boost::system::error_category & ssl_category = boost::asio::error::get_ssl_category();
 
+Sets the non-blocking mode of the socket.
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/ssl/error.hpp]
+ boost::system::error_code non_blocking(
+ implementation_type & impl,
+ bool mode,
+ boost::system::error_code & ec);
 
-[*Convenience header: ][^boost/asio/ssl.hpp]
 
 
 [endsect]
 
 
+[endsect]
 
-[section:error__ssl_errors error::ssl_errors]
 
-[indexterm1 error::ssl_errors]
+[section:open datagram_socket_service::open]
 
- enum ssl_errors
+[indexterm2 open..datagram_socket_service]
 
+ boost::system::error_code open(
+ implementation_type & impl,
+ const protocol_type & protocol,
+ boost::system::error_code & ec);
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/ssl/error.hpp]
 
-[*Convenience header: ][^boost/asio/ssl.hpp]
+[endsect]
 
 
-[endsect]
 
+[section:protocol_type datagram_socket_service::protocol_type]
 
+[indexterm2 protocol_type..datagram_socket_service]
+The protocol type.
 
-[section:error__system_category error::system_category]
 
-[indexterm1 error::system_category]
+ typedef Protocol protocol_type;
 
- static const boost::system::error_category & system_category = boost::asio::error::get_system_category();
 
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/error.hpp]
+[*Header: ][^boost/asio/datagram_socket_service.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
@@ -52729,77 +52540,116 @@
 
 
 
-[section:has_service has_service]
+[section:receive datagram_socket_service::receive]
+
+[indexterm2 receive..datagram_socket_service]
+Receive some data from the peer.
 
-[indexterm1 has_service]
 
   template<
- typename ``[link boost_asio.reference.Service Service]``>
- bool has_service(
- io_service & ios);
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
+ std::size_t receive(
+ implementation_type & impl,
+ const MutableBufferSequence & buffers,
+ socket_base::message_flags flags,
+ boost::system::error_code & ec);
 
 
-This function is used to determine whether the [link boost_asio.reference.io_service `io_service`] contains a service object corresponding to the given service type.
 
+[endsect]
 
-[heading Parameters]
-
 
-[variablelist
-
-[[ios][The [link boost_asio.reference.io_service `io_service`] object that owns the service.]]
 
-]
+[section:receive_from datagram_socket_service::receive_from]
 
+[indexterm2 receive_from..datagram_socket_service]
+Receive a datagram with the endpoint of the sender.
 
-[heading Return Value]
-
-A boolean indicating whether the [link boost_asio.reference.io_service `io_service`] contains the service.
+
+ template<
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
+ std::size_t receive_from(
+ implementation_type & impl,
+ const MutableBufferSequence & buffers,
+ endpoint_type & sender_endpoint,
+ socket_base::message_flags flags,
+ boost::system::error_code & ec);
 
 
 
-[heading Requirements]
+[endsect]
 
-[*Header: ][^boost/asio/io_service.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
+
+[section:remote_endpoint datagram_socket_service::remote_endpoint]
+
+[indexterm2 remote_endpoint..datagram_socket_service]
+Get the remote endpoint.
+
+
+ endpoint_type remote_endpoint(
+ const implementation_type & impl,
+ boost::system::error_code & ec) const;
+
 
 
 [endsect]
 
 
-[section:invalid_service_owner invalid_service_owner]
 
+[section:send datagram_socket_service::send]
 
-Exception thrown when trying to add a service object to an [link boost_asio.reference.io_service `io_service`] where the service has a different owner.
+[indexterm2 send..datagram_socket_service]
+Send the given data to the peer.
 
 
- class invalid_service_owner
+ template<
+ typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
+ std::size_t send(
+ implementation_type & impl,
+ const ConstBufferSequence & buffers,
+ socket_base::message_flags flags,
+ boost::system::error_code & ec);
 
 
-[heading Member Functions]
-[table
- [[Name][Description]]
 
- [
- [[link boost_asio.reference.invalid_service_owner.invalid_service_owner [*invalid_service_owner]]]
- []
- ]
-
-]
+[endsect]
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/io_service.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
+[section:send_to datagram_socket_service::send_to]
 
+[indexterm2 send_to..datagram_socket_service]
+Send a datagram to the specified endpoint.
 
-[section:invalid_service_owner invalid_service_owner::invalid_service_owner]
 
-[indexterm2 invalid_service_owner..invalid_service_owner]
+ template<
+ typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
+ std::size_t send_to(
+ implementation_type & impl,
+ const ConstBufferSequence & buffers,
+ const endpoint_type & destination,
+ socket_base::message_flags flags,
+ boost::system::error_code & ec);
 
- invalid_service_owner();
+
+
+[endsect]
+
+
+
+[section:set_option datagram_socket_service::set_option]
+
+[indexterm2 set_option..datagram_socket_service]
+Set a socket option.
+
+
+ template<
+ typename ``[link boost_asio.reference.SettableSocketOption SettableSocketOption]``>
+ boost::system::error_code set_option(
+ implementation_type & impl,
+ const SettableSocketOption & option,
+ boost::system::error_code & ec);
 
 
 
@@ -52807,16 +52657,33 @@
 
 
 
+[section:shutdown datagram_socket_service::shutdown]
+
+[indexterm2 shutdown..datagram_socket_service]
+Disable sends or receives on the socket.
+
+
+ boost::system::error_code shutdown(
+ implementation_type & impl,
+ socket_base::shutdown_type what,
+ boost::system::error_code & ec);
+
+
+
 [endsect]
 
-[section:io_service io_service]
 
 
-Provides core I/O functionality.
+[endsect]
 
 
- class io_service :
- noncopyable
+[section:deadline_timer deadline_timer]
+
+[indexterm1 deadline_timer]
+Typedef for the typical usage of timer. Uses a UTC clock.
+
+
+ typedef basic_deadline_timer< boost::posix_time::ptime > deadline_timer;
 
 
 [heading Types]
@@ -52825,36 +52692,36 @@
 
   [
 
- [[link boost_asio.reference.io_service__id [*id]]]
- [Class used to uniquely identify a service. ]
+ [[link boost_asio.reference.basic_deadline_timer.duration_type [*duration_type]]]
+ [The duration type. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.io_service__service [*service]]]
- [Base class for all io_service services. ]
+ [[link boost_asio.reference.basic_deadline_timer.implementation_type [*implementation_type]]]
+ [The underlying implementation type of I/O object. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.io_service__strand [*strand]]]
- [Provides serialised handler execution. ]
+ [[link boost_asio.reference.basic_deadline_timer.service_type [*service_type]]]
+ [The type of the service that will be used to provide I/O operations. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.io_service__work [*work]]]
- [Class to inform the io_service when it has work to do. ]
+ [[link boost_asio.reference.basic_deadline_timer.time_type [*time_type]]]
+ [The time type. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.io_service.fork_event [*fork_event]]]
- [Fork-related event notifications. ]
+ [[link boost_asio.reference.basic_deadline_timer.traits_type [*traits_type]]]
+ [The time traits type. ]
   
   ]
 
@@ -52865,344 +52732,373 @@
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.io_service.dispatch [*dispatch]]]
- [Request the io_service to invoke the given handler. ]
- ]
-
- [
- [[link boost_asio.reference.io_service.io_service [*io_service]]]
- [Constructor. ]
- ]
-
- [
- [[link boost_asio.reference.io_service.notify_fork [*notify_fork]]]
- [Notify the io_service of a fork-related event. ]
- ]
-
- [
- [[link boost_asio.reference.io_service.poll [*poll]]]
- [Run the io_service object's event processing loop to execute ready handlers. ]
- ]
-
- [
- [[link boost_asio.reference.io_service.poll_one [*poll_one]]]
- [Run the io_service object's event processing loop to execute one ready handler. ]
- ]
-
- [
- [[link boost_asio.reference.io_service.post [*post]]]
- [Request the io_service to invoke the given handler and return immediately. ]
+ [[link boost_asio.reference.basic_deadline_timer.async_wait [*async_wait]]]
+ [Start an asynchronous wait on the timer. ]
   ]
   
   [
- [[link boost_asio.reference.io_service.reset [*reset]]]
- [Reset the io_service in preparation for a subsequent run() invocation. ]
+ [[link boost_asio.reference.basic_deadline_timer.basic_deadline_timer [*basic_deadline_timer]]]
+ [Constructor.
+
+ Constructor to set a particular expiry time as an absolute time.
+
+ Constructor to set a particular expiry time relative to now. ]
   ]
   
   [
- [[link boost_asio.reference.io_service.run [*run]]]
- [Run the io_service object's event processing loop. ]
+ [[link boost_asio.reference.basic_deadline_timer.cancel [*cancel]]]
+ [Cancel any asynchronous operations that are waiting on the timer. ]
   ]
   
   [
- [[link boost_asio.reference.io_service.run_one [*run_one]]]
- [Run the io_service object's event processing loop to execute at most one handler. ]
+ [[link boost_asio.reference.basic_deadline_timer.cancel_one [*cancel_one]]]
+ [Cancels one asynchronous operation that is waiting on the timer. ]
   ]
   
   [
- [[link boost_asio.reference.io_service.stop [*stop]]]
- [Stop the io_service object's event processing loop. ]
+ [[link boost_asio.reference.basic_deadline_timer.expires_at [*expires_at]]]
+ [Get the timer's expiry time as an absolute time.
+
+ Set the timer's expiry time as an absolute time. ]
   ]
   
   [
- [[link boost_asio.reference.io_service.stopped [*stopped]]]
- [Determine whether the io_service object has been stopped. ]
+ [[link boost_asio.reference.basic_deadline_timer.expires_from_now [*expires_from_now]]]
+ [Get the timer's expiry time relative to now.
+
+ Set the timer's expiry time relative to now. ]
   ]
   
   [
- [[link boost_asio.reference.io_service.wrap [*wrap]]]
- [Create a new handler that automatically dispatches the wrapped handler on the io_service. ]
+ [[link boost_asio.reference.basic_deadline_timer.get_io_service [*get_io_service]]]
+ [Get the io_service associated with the object. ]
   ]
   
   [
- [[link boost_asio.reference.io_service._io_service [*~io_service]]]
- [Destructor. ]
+ [[link boost_asio.reference.basic_deadline_timer.wait [*wait]]]
+ [Perform a blocking wait on the timer. ]
   ]
   
 ]
 
-[heading Friends]
+[heading Protected Member Functions]
 [table
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.io_service.add_service [*add_service]]]
- [Add a service object to the io_service. ]
- ]
-
- [
- [[link boost_asio.reference.io_service.has_service [*has_service]]]
- [Determine if an io_service contains a specified service type. ]
+ [[link boost_asio.reference.basic_deadline_timer.get_implementation [*get_implementation]]]
+ [Get the underlying implementation of the I/O object. ]
   ]
   
   [
- [[link boost_asio.reference.io_service.use_service [*use_service]]]
- [Obtain the service object corresponding to the given type. ]
+ [[link boost_asio.reference.basic_deadline_timer.get_service [*get_service]]]
+ [Get the service associated with the I/O object. ]
   ]
   
 ]
 
-The [link boost_asio.reference.io_service `io_service`] class provides the core I/O functionality for users of the asynchronous I/O objects, including:
+[heading Protected Data Members]
+[table
+ [[Name][Description]]
 
+ [
+ [[link boost_asio.reference.basic_deadline_timer.implementation [*implementation]]]
+ [(Deprecated: Use get_implementation().) The underlying implementation of the I/O object. ]
+ ]
 
-* `boost::asio::ip::tcp::socket`
+ [
+ [[link boost_asio.reference.basic_deadline_timer.service [*service]]]
+ [(Deprecated: Use get_service().) The service associated with the I/O object. ]
+ ]
 
-* `boost::asio::ip::tcp::acceptor`
+]
 
-* `boost::asio::ip::udp::socket`
+The [link boost_asio.reference.basic_deadline_timer `basic_deadline_timer`] class template provides the ability to perform a blocking or asynchronous wait for a timer to expire.
 
-* [link boost_asio.reference.deadline_timer `deadline_timer`].
+A deadline timer is always in one of two states: "expired" or "not expired". If the `wait()` or `async_wait()` function is called on an expired timer, the wait operation will complete immediately.
 
-The [link boost_asio.reference.io_service `io_service`] class also includes facilities intended for developers of custom asynchronous services.
+Most applications will use the [link boost_asio.reference.deadline_timer `deadline_timer`] typedef.
 
 
 [heading Thread Safety]
   
 [*Distinct] [*objects:] Safe.
 
-[*Shared] [*objects:] Safe, with the specific exceptions of the `reset()` and `notify_fork()` functions. Calling `reset()` while there are unfinished `run()`, `run_one()`, `poll()` or `poll_one()` calls results in undefined behaviour. The `notify_fork()` function should not be called while any [link boost_asio.reference.io_service `io_service`] function, or any function on an I/O object that is associated with the [link boost_asio.reference.io_service `io_service`], is being called in another thread.
-
+[*Shared] [*objects:] Unsafe.
 
 
-[heading Synchronous and asynchronous operations]
+[heading Examples]
   
+Performing a blocking wait:
 
+ // Construct a timer without setting an expiry time.
+ boost::asio::deadline_timer timer(io_service);
 
-Synchronous operations on I/O objects implicitly run the [link boost_asio.reference.io_service `io_service`] object for an individual operation. The [link boost_asio.reference.io_service `io_service`] functions `run()`, `run_one()`, `poll()` or `poll_one()` must be called for the [link boost_asio.reference.io_service `io_service`] to perform asynchronous operations on behalf of a C++ program. Notification that an asynchronous operation has completed is delivered by invocation of the associated handler. Handlers are invoked only by a thread that is currently calling any overload of `run()`, `run_one()`, `poll()` or `poll_one()` for the [link boost_asio.reference.io_service `io_service`].
-
-
-[heading Effect of exceptions thrown from handlers]
-
+ // Set an expiry time relative to now.
+ timer.expires_from_now(boost::posix_time::seconds(5));
 
+ // Wait for the timer to expire.
+ timer.wait();
 
-If an exception is thrown from a handler, the exception is allowed to propagate through the throwing thread's invocation of `run()`, `run_one()`, `poll()` or `poll_one()`. No other threads that are calling any of these functions are affected. It is then the responsibility of the application to catch the exception.
 
-After the exception has been caught, the `run()`, `run_one()`, `poll()` or `poll_one()` call may be restarted [*without] the need for an intervening call to `reset()`. This allows the thread to rejoin the [link boost_asio.reference.io_service `io_service`] object's thread pool without impacting any other threads in the pool.
 
-For example:
 
 
+Performing an asynchronous wait:
 
- boost::asio::io_service io_service;
- ...
- for (;;)
+ void handler(const boost::system::error_code& error)
    {
- try
- {
- io_service.run();
- break; // run() exited normally
- }
- catch (my_exception& e)
+ if (!error)
      {
- // Deal with exception as appropriate.
+ // Timer expired.
      }
    }
 
+ ...
 
+ // Construct a timer with an absolute expiry time.
+ boost::asio::deadline_timer timer(io_service,
+ boost::posix_time::time_from_string("2005-12-07 23:59:59.000"));
 
+ // Start an asynchronous wait.
+ timer.async_wait(handler);
 
 
-[heading Stopping the io_service from running out of work]
-
-
 
-Some applications may need to prevent an [link boost_asio.reference.io_service `io_service`] object's `run()` call from returning when there is no more work to do. For example, the [link boost_asio.reference.io_service `io_service`] may be being run in a background thread that is launched prior to the application's asynchronous operations. The `run()` call may be kept running by creating an object of type [link boost_asio.reference.io_service__work `io_service::work`]:
 
 
+[heading Changing an active deadline_timer's expiry time]
+
 
- boost::asio::io_service io_service;
- boost::asio::io_service::work work(io_service);
- ...
 
+Changing the expiry time of a timer while there are pending asynchronous waits causes those wait operations to be cancelled. To ensure that the action associated with the timer is performed only once, use something like this: used:
 
 
 
-To effect a shutdown, the application will then need to call the [link boost_asio.reference.io_service `io_service`] object's `stop()` member function. This will cause the [link boost_asio.reference.io_service `io_service`] `run()` call to return as soon as possible, abandoning unfinished operations and without permitting ready handlers to be dispatched.
+ void on_some_event()
+ {
+ if (my_timer.expires_from_now(seconds(5)) > 0)
+ {
+ // We managed to cancel the timer. Start new asynchronous wait.
+ my_timer.async_wait(on_timeout);
+ }
+ else
+ {
+ // Too late, timer has already expired!
+ }
+ }
 
-Alternatively, if the application requires that all operations and handlers be allowed to finish normally, the work object may be explicitly destroyed.
+ void on_timeout(const boost::system::error_code& e)
+ {
+ if (e != boost::asio::error::operation_aborted)
+ {
+ // Timer was not cancelled, take necessary action.
+ }
+ }
 
 
 
- boost::asio::io_service io_service;
- auto_ptr<boost::asio::io_service::work> work(
- new boost::asio::io_service::work(io_service));
- ...
- work.reset(); // Allow run() to exit.
 
 
+* The `boost::asio::basic_deadline_timer::expires_from_now()` function cancels any pending asynchronous waits, and returns the number of asynchronous waits that were cancelled. If it returns 0 then you were too late and the wait handler has already been executed, or will soon be executed. If it returns 1 then the wait handler was successfully cancelled.
 
 
+* If a wait handler is cancelled, the boost::system::error\_code passed to it contains the value `boost::asio::error::operation_aborted`.
 
-[heading The io_service class and I/O services]
-
 
 
-Class [link boost_asio.reference.io_service `io_service`] implements an extensible, type-safe, polymorphic set of I/O services, indexed by service type. An object of class [link boost_asio.reference.io_service `io_service`] must be initialised before I/O objects such as sockets, resolvers and timers can be used. These I/O objects are distinguished by having constructors that accept an `io_service&` parameter.
 
-I/O services exist to manage the logical interface to the operating system on behalf of the I/O objects. In particular, there are resources that are shared across a class of I/O objects. For example, timers may be implemented in terms of a single timer queue. The I/O services manage these shared resources.
+[heading Requirements]
 
-Access to the services of an [link boost_asio.reference.io_service `io_service`] is via three function templates, `use_service()`, `add_service()` and `has_service()`.
+[*Header: ][^boost/asio/deadline_timer.hpp]
 
-In a call to `use_service<Service>()`, the type argument chooses a service, making available all members of the named type. If `Service` is not present in an [link boost_asio.reference.io_service `io_service`], an object of type `Service` is created and added to the [link boost_asio.reference.io_service `io_service`]. A C++ program can check if an [link boost_asio.reference.io_service `io_service`] implements a particular service with the function template `has_service<Service>()`.
+[*Convenience header: ][^boost/asio.hpp]
 
-Service objects may be explicitly added to an [link boost_asio.reference.io_service `io_service`] using the function template `add_service<Service>()`. If the `Service` is already present, the [link boost_asio.reference.service_already_exists `service_already_exists`] exception is thrown. If the owner of the service is not the same object as the [link boost_asio.reference.io_service `io_service`] parameter, the [link boost_asio.reference.invalid_service_owner `invalid_service_owner`] exception is thrown.
 
-Once a service reference is obtained from an [link boost_asio.reference.io_service `io_service`] object by calling `use_service()`, that reference remains usable as long as the owning [link boost_asio.reference.io_service `io_service`] object exists.
+[endsect]
 
-All I/O service implementations have [link boost_asio.reference.io_service__service `io_service::service`] as a public base class. Custom I/O services may be implemented by deriving from this class and then added to an [link boost_asio.reference.io_service `io_service`] using the facilities described above.
 
-[heading Requirements]
+[section:deadline_timer_service deadline_timer_service]
 
-[*Header: ][^boost/asio/io_service.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
+Default service implementation for a timer.
 
 
-[section:add_service io_service::add_service]
+ template<
+ typename TimeType,
+ typename ``[link boost_asio.reference.TimeTraits TimeTraits]`` = boost::asio::time_traits<TimeType>>
+ class deadline_timer_service :
+ public io_service::service
 
-[indexterm2 add_service..io_service]
-Add a service object to the [link boost_asio.reference.io_service `io_service`].
 
+[heading Types]
+[table
+ [[Name][Description]]
 
- template<
- typename ``[link boost_asio.reference.Service Service]``>
- friend void add_service(
- io_service & ios,
- Service * svc);
+ [
 
+ [[link boost_asio.reference.deadline_timer_service.duration_type [*duration_type]]]
+ [The duration type. ]
+
+ ]
 
-This function is used to add a service to the [link boost_asio.reference.io_service `io_service`].
+ [
 
+ [[link boost_asio.reference.deadline_timer_service.implementation_type [*implementation_type]]]
+ [The implementation type of the deadline timer. ]
+
+ ]
 
-[heading Parameters]
-
+ [
 
-[variablelist
+ [[link boost_asio.reference.deadline_timer_service.time_type [*time_type]]]
+ [The time type. ]
   
-[[ios][The [link boost_asio.reference.io_service `io_service`] object that owns the service.]]
+ ]
 
-[[svc][The service object. On success, ownership of the service object is transferred to the [link boost_asio.reference.io_service `io_service`]. When the [link boost_asio.reference.io_service `io_service`] object is destroyed, it will destroy the service object by performing:
-``
- delete static_cast<io_service::service*>(svc)
-``
-]]
+ [
 
-]
+ [[link boost_asio.reference.deadline_timer_service.traits_type [*traits_type]]]
+ [The time traits type. ]
+
+ ]
 
+]
 
-[heading Exceptions]
-
+[heading Member Functions]
+[table
+ [[Name][Description]]
 
-[variablelist
+ [
+ [[link boost_asio.reference.deadline_timer_service.async_wait [*async_wait]]]
+ []
+ ]
   
-[[boost::asio::service_already_exists][Thrown if a service of the given type is already present in the [link boost_asio.reference.io_service `io_service`].]]
+ [
+ [[link boost_asio.reference.deadline_timer_service.cancel [*cancel]]]
+ [Cancel any asynchronous wait operations associated with the timer. ]
+ ]
+
+ [
+ [[link boost_asio.reference.deadline_timer_service.cancel_one [*cancel_one]]]
+ [Cancels one asynchronous wait operation associated with the timer. ]
+ ]
+
+ [
+ [[link boost_asio.reference.deadline_timer_service.construct [*construct]]]
+ [Construct a new timer implementation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.deadline_timer_service.deadline_timer_service [*deadline_timer_service]]]
+ [Construct a new timer service for the specified io_service. ]
+ ]
+
+ [
+ [[link boost_asio.reference.deadline_timer_service.destroy [*destroy]]]
+ [Destroy a timer implementation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.deadline_timer_service.expires_at [*expires_at]]]
+ [Get the expiry time for the timer as an absolute time.
 
-[[boost::asio::invalid_service_owner][Thrown if the service's owning [link boost_asio.reference.io_service `io_service`] is not the [link boost_asio.reference.io_service `io_service`] object specified by the ios parameter. ]]
+ Set the expiry time for the timer as an absolute time. ]
+ ]
+
+ [
+ [[link boost_asio.reference.deadline_timer_service.expires_from_now [*expires_from_now]]]
+ [Get the expiry time for the timer relative to now.
 
+ Set the expiry time for the timer relative to now. ]
+ ]
+
+ [
+ [[link boost_asio.reference.deadline_timer_service.get_io_service [*get_io_service]]]
+ [Get the io_service object that owns the service. ]
+ ]
+
+ [
+ [[link boost_asio.reference.deadline_timer_service.wait [*wait]]]
+ []
+ ]
+
 ]
 
+[heading Data Members]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.deadline_timer_service.id [*id]]]
+ [The unique service identifier. ]
+ ]
 
+]
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/io_service.hpp]
+[*Header: ][^boost/asio/deadline_timer_service.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
 
-[endsect]
+[section:async_wait deadline_timer_service::async_wait]
 
+[indexterm2 async_wait..deadline_timer_service]
 
+ template<
+ typename ``[link boost_asio.reference.WaitHandler WaitHandler]``>
+ void async_wait(
+ implementation_type & impl,
+ WaitHandler handler);
 
-[section:dispatch io_service::dispatch]
 
-[indexterm2 dispatch..io_service]
-Request the [link boost_asio.reference.io_service `io_service`] to invoke the given handler.
 
+[endsect]
 
- template<
- typename ``[link boost_asio.reference.CompletionHandler CompletionHandler]``>
- void dispatch(
- CompletionHandler handler);
 
 
-This function is used to ask the [link boost_asio.reference.io_service `io_service`] to execute the given handler.
+[section:cancel deadline_timer_service::cancel]
 
-The [link boost_asio.reference.io_service `io_service`] guarantees that the handler will only be called in a thread in which the `run()`, `run_one()`, `poll()` or `poll_one()` member functions is currently being invoked. The handler may be executed inside this function if the guarantee can be met.
+[indexterm2 cancel..deadline_timer_service]
+Cancel any asynchronous wait operations associated with the timer.
 
 
-[heading Parameters]
-
+ std::size_t cancel(
+ implementation_type & impl,
+ boost::system::error_code & ec);
 
-[variablelist
-
-[[handler][The handler to be called. The [link boost_asio.reference.io_service `io_service`] will make a copy of the handler object as required. The function signature of the handler must be:
-``
- void handler();
-``
-]]
 
-]
 
+[endsect]
 
-[heading Remarks]
-
-This function throws an exception only if:
 
 
-* the handler's `asio_handler_allocate` function; or
-
-
-* the handler's copy constructor
-
-throws an exception.
-
-
-[endsect]
+[section:cancel_one deadline_timer_service::cancel_one]
 
+[indexterm2 cancel_one..deadline_timer_service]
+Cancels one asynchronous wait operation associated with the timer.
 
 
-[section:fork_event io_service::fork_event]
+ std::size_t cancel_one(
+ implementation_type & impl,
+ boost::system::error_code & ec);
 
-[indexterm2 fork_event..io_service]
-Fork-related event notifications.
 
 
- enum fork_event
+[endsect]
 
-[indexterm2 fork_prepare..io_service]
-[indexterm2 fork_parent..io_service]
-[indexterm2 fork_child..io_service]
 
-[heading Values]
-[variablelist
 
- [
- [fork_prepare]
- [Notify the io_service that the process is about to fork. ]
- ]
+[section:construct deadline_timer_service::construct]
 
- [
- [fork_parent]
- [Notify the io_service that the process has forked and is the parent. ]
- ]
+[indexterm2 construct..deadline_timer_service]
+Construct a new timer implementation.
 
- [
- [fork_child]
- [Notify the io_service that the process has forked and is the child. ]
- ]
 
-]
+ void construct(
+ implementation_type & impl);
 
 
 
@@ -53210,608 +53106,678 @@
 
 
 
-[section:has_service io_service::has_service]
-
-[indexterm2 has_service..io_service]
-Determine if an [link boost_asio.reference.io_service `io_service`] contains a specified service type.
-
-
- template<
- typename ``[link boost_asio.reference.Service Service]``>
- friend bool has_service(
- io_service & ios);
+[section:deadline_timer_service deadline_timer_service::deadline_timer_service]
 
+[indexterm2 deadline_timer_service..deadline_timer_service]
+Construct a new timer service for the specified [link boost_asio.reference.io_service `io_service`].
 
-This function is used to determine whether the [link boost_asio.reference.io_service `io_service`] contains a service object corresponding to the given service type.
 
+ deadline_timer_service(
+ boost::asio::io_service & io_service);
 
-[heading Parameters]
-
 
-[variablelist
-
-[[ios][The [link boost_asio.reference.io_service `io_service`] object that owns the service.]]
 
-]
+[endsect]
 
 
-[heading Return Value]
-
-A boolean indicating whether the [link boost_asio.reference.io_service `io_service`] contains the service.
 
+[section:destroy deadline_timer_service::destroy]
 
+[indexterm2 destroy..deadline_timer_service]
+Destroy a timer implementation.
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/io_service.hpp]
+ void destroy(
+ implementation_type & impl);
 
-[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
-[section:io_service io_service::io_service]
-
-[indexterm2 io_service..io_service]
-Constructor.
-
 
- ``[link boost_asio.reference.io_service.io_service.overload1 io_service]``();
- `` [''''&raquo;''' [link boost_asio.reference.io_service.io_service.overload1 more...]]``
+[section:duration_type deadline_timer_service::duration_type]
 
- explicit ``[link boost_asio.reference.io_service.io_service.overload2 io_service]``(
- std::size_t concurrency_hint);
- `` [''''&raquo;''' [link boost_asio.reference.io_service.io_service.overload2 more...]]``
+[indexterm2 duration_type..deadline_timer_service]
+The duration type.
 
 
-[section:overload1 io_service::io_service (1 of 2 overloads)]
+ typedef traits_type::duration_type duration_type;
 
 
-Constructor.
 
+[heading Requirements]
 
- io_service();
+[*Header: ][^boost/asio/deadline_timer_service.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
+[section:expires_at deadline_timer_service::expires_at]
 
-[section:overload2 io_service::io_service (2 of 2 overloads)]
-
+[indexterm2 expires_at..deadline_timer_service]
+Get the expiry time for the timer as an absolute time.
 
-Constructor.
 
+ time_type ``[link boost_asio.reference.deadline_timer_service.expires_at.overload1 expires_at]``(
+ const implementation_type & impl) const;
+ `` [''''&raquo;''' [link boost_asio.reference.deadline_timer_service.expires_at.overload1 more...]]``
 
- io_service(
- std::size_t concurrency_hint);
 
+Set the expiry time for the timer as an absolute time.
 
-Construct with a hint about the required level of concurrency.
 
+ std::size_t ``[link boost_asio.reference.deadline_timer_service.expires_at.overload2 expires_at]``(
+ implementation_type & impl,
+ const time_type & expiry_time,
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.deadline_timer_service.expires_at.overload2 more...]]``
 
-[heading Parameters]
-
 
-[variablelist
-
-[[concurrency_hint][A suggestion to the implementation on how many threads it should allow to run simultaneously. ]]
+[section:overload1 deadline_timer_service::expires_at (1 of 2 overloads)]
 
-]
 
+Get the expiry time for the timer as an absolute time.
 
 
+ time_type expires_at(
+ const implementation_type & impl) const;
 
-[endsect]
 
 
 [endsect]
 
 
-[section:notify_fork io_service::notify_fork]
 
-[indexterm2 notify_fork..io_service]
-Notify the [link boost_asio.reference.io_service `io_service`] of a fork-related event.
+[section:overload2 deadline_timer_service::expires_at (2 of 2 overloads)]
 
 
- void notify_fork(
- boost::asio::io_service::fork_event event);
+Set the expiry time for the timer as an absolute time.
 
 
-This function is used to inform the [link boost_asio.reference.io_service `io_service`] that the process is about to fork, or has just forked. This allows the [link boost_asio.reference.io_service `io_service`], and the services it contains, to perform any necessary housekeeping to ensure correct operation following a fork.
+ std::size_t expires_at(
+ implementation_type & impl,
+ const time_type & expiry_time,
+ boost::system::error_code & ec);
 
-This function must not be called while any other [link boost_asio.reference.io_service `io_service`] function, or any function on an I/O object associated with the [link boost_asio.reference.io_service `io_service`], is being called in another thread. It is, however, safe to call this function from within a completion handler, provided no other thread is accessing the [link boost_asio.reference.io_service `io_service`].
 
 
-[heading Parameters]
-
+[endsect]
 
-[variablelist
-
-[[event][A fork-related event.]]
 
-]
+[endsect]
 
+[section:expires_from_now deadline_timer_service::expires_from_now]
 
-[heading Exceptions]
-
+[indexterm2 expires_from_now..deadline_timer_service]
+Get the expiry time for the timer relative to now.
 
-[variablelist
-
-[[boost::system::system_error][Thrown on failure. If the notification fails the [link boost_asio.reference.io_service `io_service`] object should no longer be used and should be destroyed.]]
 
-]
+ duration_type ``[link boost_asio.reference.deadline_timer_service.expires_from_now.overload1 expires_from_now]``(
+ const implementation_type & impl) const;
+ `` [''''&raquo;''' [link boost_asio.reference.deadline_timer_service.expires_from_now.overload1 more...]]``
 
 
-[heading Example]
-
-The following code illustrates how to incorporate the `notify_fork()` function:
+Set the expiry time for the timer relative to now.
 
- my_io_service.notify_fork(boost::asio::io_service::fork_prepare);
- if (fork() == 0)
- {
- // This is the child process.
- my_io_service.notify_fork(boost::asio::io_service::fork_child);
- }
- else
- {
- // This is the parent process.
- my_io_service.notify_fork(boost::asio::io_service::fork_parent);
- }
+
+ std::size_t ``[link boost_asio.reference.deadline_timer_service.expires_from_now.overload2 expires_from_now]``(
+ implementation_type & impl,
+ const duration_type & expiry_time,
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.deadline_timer_service.expires_from_now.overload2 more...]]``
 
 
+[section:overload1 deadline_timer_service::expires_from_now (1 of 2 overloads)]
 
 
+Get the expiry time for the timer relative to now.
 
-[heading Remarks]
-
-For each service object `svc` in the [link boost_asio.reference.io_service `io_service`] set, performs `svc->fork_service();`. When processing the fork\_prepare event, services are visited in reverse order of the beginning of service object lifetime. Otherwise, services are visited in order of the beginning of service object lifetime.
 
+ duration_type expires_from_now(
+ const implementation_type & impl) const;
 
 
 
 [endsect]
 
 
-[section:poll io_service::poll]
 
-[indexterm2 poll..io_service]
-Run the [link boost_asio.reference.io_service `io_service`] object's event processing loop to execute ready handlers.
+[section:overload2 deadline_timer_service::expires_from_now (2 of 2 overloads)]
 
 
- std::size_t ``[link boost_asio.reference.io_service.poll.overload1 poll]``();
- `` [''''&raquo;''' [link boost_asio.reference.io_service.poll.overload1 more...]]``
+Set the expiry time for the timer relative to now.
 
- std::size_t ``[link boost_asio.reference.io_service.poll.overload2 poll]``(
+
+ std::size_t expires_from_now(
+ implementation_type & impl,
+ const duration_type & expiry_time,
       boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.io_service.poll.overload2 more...]]``
 
 
-[section:overload1 io_service::poll (1 of 2 overloads)]
 
+[endsect]
 
-Run the [link boost_asio.reference.io_service `io_service`] object's event processing loop to execute ready handlers.
 
+[endsect]
 
- std::size_t poll();
 
+[section:get_io_service deadline_timer_service::get_io_service]
 
-The `poll()` function runs handlers that are ready to run, without blocking, until the [link boost_asio.reference.io_service `io_service`] has been stopped or there are no more ready handlers.
 
+['Inherited from io_service.]
 
-[heading Return Value]
-
-The number of handlers that were executed.
+[indexterm2 get_io_service..deadline_timer_service]
+Get the [link boost_asio.reference.io_service `io_service`] object that owns the service.
 
 
-[heading Exceptions]
-
+ boost::asio::io_service & get_io_service();
 
-[variablelist
-
-[[boost::system::system_error][Thrown on failure. ]]
 
-]
 
+[endsect]
 
 
 
-[endsect]
+[section:id deadline_timer_service::id]
 
+[indexterm2 id..deadline_timer_service]
+The unique service identifier.
 
 
-[section:overload2 io_service::poll (2 of 2 overloads)]
+ static boost::asio::io_service::id id;
 
 
-Run the [link boost_asio.reference.io_service `io_service`] object's event processing loop to execute ready handlers.
 
+[endsect]
 
- std::size_t poll(
- boost::system::error_code & ec);
 
 
-The `poll()` function runs handlers that are ready to run, without blocking, until the [link boost_asio.reference.io_service `io_service`] has been stopped or there are no more ready handlers.
+[section:implementation_type deadline_timer_service::implementation_type]
 
+[indexterm2 implementation_type..deadline_timer_service]
+The implementation type of the deadline timer.
 
-[heading Parameters]
-
 
-[variablelist
-
-[[ec][Set to indicate what error occurred, if any.]]
+ typedef implementation_defined implementation_type;
 
-]
 
 
-[heading Return Value]
-
-The number of handlers that were executed.
+[heading Requirements]
 
+[*Header: ][^boost/asio/deadline_timer_service.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
-[endsect]
-
-[section:poll_one io_service::poll_one]
 
-[indexterm2 poll_one..io_service]
-Run the [link boost_asio.reference.io_service `io_service`] object's event processing loop to execute one ready handler.
+[section:time_type deadline_timer_service::time_type]
 
+[indexterm2 time_type..deadline_timer_service]
+The time type.
 
- std::size_t ``[link boost_asio.reference.io_service.poll_one.overload1 poll_one]``();
- `` [''''&raquo;''' [link boost_asio.reference.io_service.poll_one.overload1 more...]]``
 
- std::size_t ``[link boost_asio.reference.io_service.poll_one.overload2 poll_one]``(
- boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.io_service.poll_one.overload2 more...]]``
+ typedef traits_type::time_type time_type;
 
 
-[section:overload1 io_service::poll_one (1 of 2 overloads)]
 
+[heading Requirements]
 
-Run the [link boost_asio.reference.io_service `io_service`] object's event processing loop to execute one ready handler.
+[*Header: ][^boost/asio/deadline_timer_service.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
- std::size_t poll_one();
 
+[endsect]
 
-The `poll_one()` function runs at most one handler that is ready to run, without blocking.
 
 
-[heading Return Value]
-
-The number of handlers that were executed.
+[section:traits_type deadline_timer_service::traits_type]
 
+[indexterm2 traits_type..deadline_timer_service]
+The time traits type.
 
-[heading Exceptions]
-
 
-[variablelist
-
-[[boost::system::system_error][Thrown on failure. ]]
+ typedef TimeTraits traits_type;
 
-]
 
 
+[heading Requirements]
 
+[*Header: ][^boost/asio/deadline_timer_service.hpp]
 
-[endsect]
+[*Convenience header: ][^boost/asio.hpp]
 
 
+[endsect]
 
-[section:overload2 io_service::poll_one (2 of 2 overloads)]
 
 
-Run the [link boost_asio.reference.io_service `io_service`] object's event processing loop to execute one ready handler.
+[section:wait deadline_timer_service::wait]
 
+[indexterm2 wait..deadline_timer_service]
 
- std::size_t poll_one(
+ void wait(
+ implementation_type & impl,
       boost::system::error_code & ec);
 
 
-The `poll_one()` function runs at most one handler that is ready to run, without blocking.
-
-
-[heading Parameters]
-
 
-[variablelist
-
-[[ec][Set to indicate what error occurred, if any.]]
+[endsect]
 
-]
 
 
-[heading Return Value]
-
-The number of handlers that were executed.
+[endsect]
 
 
+[section:error__addrinfo_category error::addrinfo_category]
 
+[indexterm1 error::addrinfo_category]
 
-[endsect]
+ static const boost::system::error_category & addrinfo_category = boost::asio::error::get_addrinfo_category();
 
 
-[endsect]
+[heading Requirements]
 
+[*Header: ][^boost/asio/error.hpp]
 
-[section:post io_service::post]
+[*Convenience header: ][^boost/asio.hpp]
 
-[indexterm2 post..io_service]
-Request the [link boost_asio.reference.io_service `io_service`] to invoke the given handler and return immediately.
 
+[endsect]
 
- template<
- typename ``[link boost_asio.reference.CompletionHandler CompletionHandler]``>
- void post(
- CompletionHandler handler);
 
 
-This function is used to ask the [link boost_asio.reference.io_service `io_service`] to execute the given handler, but without allowing the [link boost_asio.reference.io_service `io_service`] to call the handler from inside this function.
+[section:error__addrinfo_errors error::addrinfo_errors]
 
-The [link boost_asio.reference.io_service `io_service`] guarantees that the handler will only be called in a thread in which the `run()`, `run_one()`, `poll()` or `poll_one()` member functions is currently being invoked.
+[indexterm1 error::addrinfo_errors]
 
+ enum addrinfo_errors
 
-[heading Parameters]
-
+[indexterm2 service_not_found..error::addrinfo_errors]
+[indexterm2 socket_type_not_supported..error::addrinfo_errors]
 
+[heading Values]
 [variablelist
-
-[[handler][The handler to be called. The [link boost_asio.reference.io_service `io_service`] will make a copy of the handler object as required. The function signature of the handler must be:
-``
- void handler();
-``
-]]
-
-]
 
+ [
+ [service_not_found]
+ [The service is not supported for the given socket type. ]
+ ]
 
-[heading Remarks]
-
-This function throws an exception only if:
+ [
+ [socket_type_not_supported]
+ [The socket type is not supported. ]
+ ]
 
+]
 
-* the handler's `asio_handler_allocate` function; or
 
+[heading Requirements]
 
-* the handler's copy constructor
+[*Header: ][^boost/asio/error.hpp]
 
-throws an exception.
+[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
 
-[section:reset io_service::reset]
+[section:error__basic_errors error::basic_errors]
 
-[indexterm2 reset..io_service]
-Reset the [link boost_asio.reference.io_service `io_service`] in preparation for a subsequent `run()` invocation.
+[indexterm1 error::basic_errors]
 
+ enum basic_errors
 
- void reset();
+[indexterm2 access_denied..error::basic_errors]
+[indexterm2 address_family_not_supported..error::basic_errors]
+[indexterm2 address_in_use..error::basic_errors]
+[indexterm2 already_connected..error::basic_errors]
+[indexterm2 already_started..error::basic_errors]
+[indexterm2 broken_pipe..error::basic_errors]
+[indexterm2 connection_aborted..error::basic_errors]
+[indexterm2 connection_refused..error::basic_errors]
+[indexterm2 connection_reset..error::basic_errors]
+[indexterm2 bad_descriptor..error::basic_errors]
+[indexterm2 fault..error::basic_errors]
+[indexterm2 host_unreachable..error::basic_errors]
+[indexterm2 in_progress..error::basic_errors]
+[indexterm2 interrupted..error::basic_errors]
+[indexterm2 invalid_argument..error::basic_errors]
+[indexterm2 message_size..error::basic_errors]
+[indexterm2 name_too_long..error::basic_errors]
+[indexterm2 network_down..error::basic_errors]
+[indexterm2 network_reset..error::basic_errors]
+[indexterm2 network_unreachable..error::basic_errors]
+[indexterm2 no_descriptors..error::basic_errors]
+[indexterm2 no_buffer_space..error::basic_errors]
+[indexterm2 no_memory..error::basic_errors]
+[indexterm2 no_permission..error::basic_errors]
+[indexterm2 no_protocol_option..error::basic_errors]
+[indexterm2 not_connected..error::basic_errors]
+[indexterm2 not_socket..error::basic_errors]
+[indexterm2 operation_aborted..error::basic_errors]
+[indexterm2 operation_not_supported..error::basic_errors]
+[indexterm2 shut_down..error::basic_errors]
+[indexterm2 timed_out..error::basic_errors]
+[indexterm2 try_again..error::basic_errors]
+[indexterm2 would_block..error::basic_errors]
 
+[heading Values]
+[variablelist
 
-This function must be called prior to any second or later set of invocations of the `run()`, `run_one()`, `poll()` or `poll_one()` functions when a previous invocation of these functions returned due to the [link boost_asio.reference.io_service `io_service`] being stopped or running out of work. After a call to `reset()`, the [link boost_asio.reference.io_service `io_service`] object's `stopped()` function will return `false`.
+ [
+ [access_denied]
+ [Permission denied. ]
+ ]
 
-This function must not be called while there are any unfinished calls to the `run()`, `run_one()`, `poll()` or `poll_one()` functions.
+ [
+ [address_family_not_supported]
+ [Address family not supported by protocol. ]
+ ]
 
+ [
+ [address_in_use]
+ [Address already in use. ]
+ ]
 
-[endsect]
+ [
+ [already_connected]
+ [Transport endpoint is already connected. ]
+ ]
 
+ [
+ [already_started]
+ [Operation already in progress. ]
+ ]
 
-[section:run io_service::run]
+ [
+ [broken_pipe]
+ [Broken pipe. ]
+ ]
 
-[indexterm2 run..io_service]
-Run the [link boost_asio.reference.io_service `io_service`] object's event processing loop.
+ [
+ [connection_aborted]
+ [A connection has been aborted. ]
+ ]
 
+ [
+ [connection_refused]
+ [Connection refused. ]
+ ]
 
- std::size_t ``[link boost_asio.reference.io_service.run.overload1 run]``();
- `` [''''&raquo;''' [link boost_asio.reference.io_service.run.overload1 more...]]``
+ [
+ [connection_reset]
+ [Connection reset by peer. ]
+ ]
 
- std::size_t ``[link boost_asio.reference.io_service.run.overload2 run]``(
- boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.io_service.run.overload2 more...]]``
+ [
+ [bad_descriptor]
+ [Bad file descriptor. ]
+ ]
 
+ [
+ [fault]
+ [Bad address. ]
+ ]
 
-[section:overload1 io_service::run (1 of 2 overloads)]
+ [
+ [host_unreachable]
+ [No route to host. ]
+ ]
 
+ [
+ [in_progress]
+ [Operation now in progress. ]
+ ]
 
-Run the [link boost_asio.reference.io_service `io_service`] object's event processing loop.
+ [
+ [interrupted]
+ [Interrupted system call. ]
+ ]
 
+ [
+ [invalid_argument]
+ [Invalid argument. ]
+ ]
 
- std::size_t run();
+ [
+ [message_size]
+ [Message too long. ]
+ ]
 
+ [
+ [name_too_long]
+ [The name was too long. ]
+ ]
 
-The `run()` function blocks until all work has finished and there are no more handlers to be dispatched, or until the [link boost_asio.reference.io_service `io_service`] has been stopped.
+ [
+ [network_down]
+ [Network is down. ]
+ ]
 
-Multiple threads may call the `run()` function to set up a pool of threads from which the [link boost_asio.reference.io_service `io_service`] may execute handlers. All threads that are waiting in the pool are equivalent and the [link boost_asio.reference.io_service `io_service`] may choose any one of them to invoke a handler.
+ [
+ [network_reset]
+ [Network dropped connection on reset. ]
+ ]
 
-A normal exit from the `run()` function implies that the [link boost_asio.reference.io_service `io_service`] object is stopped (the `stopped()` function returns `true`). Subsequent calls to `run()`, `run_one()`, `poll()` or `poll_one()` will return immediately unless there is a prior call to `reset()`.
+ [
+ [network_unreachable]
+ [Network is unreachable. ]
+ ]
 
+ [
+ [no_descriptors]
+ [Too many open files. ]
+ ]
 
-[heading Return Value]
-
-The number of handlers that were executed.
+ [
+ [no_buffer_space]
+ [No buffer space available. ]
+ ]
 
+ [
+ [no_memory]
+ [Cannot allocate memory. ]
+ ]
 
-[heading Exceptions]
-
-
-[variablelist
-
-[[boost::system::system_error][Thrown on failure.]]
-
-]
-
-
-[heading Remarks]
-
-The `run()` function must not be called from a thread that is currently calling one of `run()`, `run_one()`, `poll()` or `poll_one()` on the same [link boost_asio.reference.io_service `io_service`] object.
+ [
+ [no_permission]
+ [Operation not permitted. ]
+ ]
 
-The `poll()` function may also be used to dispatch ready handlers, but without blocking.
+ [
+ [no_protocol_option]
+ [Protocol not available. ]
+ ]
 
+ [
+ [not_connected]
+ [Transport endpoint is not connected. ]
+ ]
 
-[endsect]
+ [
+ [not_socket]
+ [Socket operation on non-socket. ]
+ ]
 
+ [
+ [operation_aborted]
+ [Operation cancelled. ]
+ ]
 
+ [
+ [operation_not_supported]
+ [Operation not supported. ]
+ ]
 
-[section:overload2 io_service::run (2 of 2 overloads)]
+ [
+ [shut_down]
+ [Cannot send after transport endpoint shutdown. ]
+ ]
 
+ [
+ [timed_out]
+ [Connection timed out. ]
+ ]
 
-Run the [link boost_asio.reference.io_service `io_service`] object's event processing loop.
+ [
+ [try_again]
+ [Resource temporarily unavailable. ]
+ ]
 
+ [
+ [would_block]
+ [The socket is marked non-blocking and the requested operation would block. ]
+ ]
 
- std::size_t run(
- boost::system::error_code & ec);
+]
 
 
-The `run()` function blocks until all work has finished and there are no more handlers to be dispatched, or until the [link boost_asio.reference.io_service `io_service`] has been stopped.
+[heading Requirements]
 
-Multiple threads may call the `run()` function to set up a pool of threads from which the [link boost_asio.reference.io_service `io_service`] may execute handlers. All threads that are waiting in the pool are equivalent and the [link boost_asio.reference.io_service `io_service`] may choose any one of them to invoke a handler.
+[*Header: ][^boost/asio/error.hpp]
 
-A normal exit from the `run()` function implies that the [link boost_asio.reference.io_service `io_service`] object is stopped (the `stopped()` function returns `true`). Subsequent calls to `run()`, `run_one()`, `poll()` or `poll_one()` will return immediately unless there is a prior call to `reset()`.
+[*Convenience header: ][^boost/asio.hpp]
 
 
-[heading Parameters]
-
+[endsect]
 
-[variablelist
-
-[[ec][Set to indicate what error occurred, if any.]]
 
-]
 
+[section:error__get_addrinfo_category error::get_addrinfo_category]
 
-[heading Return Value]
-
-The number of handlers that were executed.
+[indexterm1 error::get_addrinfo_category]
 
+ const boost::system::error_category & get_addrinfo_category();
 
-[heading Remarks]
-
-The `run()` function must not be called from a thread that is currently calling one of `run()`, `run_one()`, `poll()` or `poll_one()` on the same [link boost_asio.reference.io_service `io_service`] object.
 
-The `poll()` function may also be used to dispatch ready handlers, but without blocking.
+[heading Requirements]
 
+[*Header: ][^boost/asio/error.hpp]
 
-[endsect]
+[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
-[section:run_one io_service::run_one]
-
-[indexterm2 run_one..io_service]
-Run the [link boost_asio.reference.io_service `io_service`] object's event processing loop to execute at most one handler.
 
 
- std::size_t ``[link boost_asio.reference.io_service.run_one.overload1 run_one]``();
- `` [''''&raquo;''' [link boost_asio.reference.io_service.run_one.overload1 more...]]``
+[section:error__get_misc_category error::get_misc_category]
 
- std::size_t ``[link boost_asio.reference.io_service.run_one.overload2 run_one]``(
- boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.io_service.run_one.overload2 more...]]``
+[indexterm1 error::get_misc_category]
 
+ const boost::system::error_category & get_misc_category();
 
-[section:overload1 io_service::run_one (1 of 2 overloads)]
 
+[heading Requirements]
 
-Run the [link boost_asio.reference.io_service `io_service`] object's event processing loop to execute at most one handler.
+[*Header: ][^boost/asio/error.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
- std::size_t run_one();
 
+[endsect]
 
-The `run_one()` function blocks until one handler has been dispatched, or until the [link boost_asio.reference.io_service `io_service`] has been stopped.
 
 
-[heading Return Value]
-
-The number of handlers that were executed. A zero return value implies that the [link boost_asio.reference.io_service `io_service`] object is stopped (the `stopped()` function returns `true`). Subsequent calls to `run()`, `run_one()`, `poll()` or `poll_one()` will return immediately unless there is a prior call to `reset()`.
+[section:error__get_netdb_category error::get_netdb_category]
 
+[indexterm1 error::get_netdb_category]
 
-[heading Exceptions]
-
+ const boost::system::error_category & get_netdb_category();
 
-[variablelist
-
-[[boost::system::system_error][Thrown on failure. ]]
 
-]
+[heading Requirements]
 
+[*Header: ][^boost/asio/error.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
 
-[section:overload2 io_service::run_one (2 of 2 overloads)]
-
+[section:error__get_ssl_category error::get_ssl_category]
 
-Run the [link boost_asio.reference.io_service `io_service`] object's event processing loop to execute at most one handler.
+[indexterm1 error::get_ssl_category]
 
+ const boost::system::error_category & get_ssl_category();
 
- std::size_t run_one(
- boost::system::error_code & ec);
 
+[heading Requirements]
 
-The `run_one()` function blocks until one handler has been dispatched, or until the [link boost_asio.reference.io_service `io_service`] has been stopped.
+[*Header: ][^boost/asio/ssl/error.hpp]
 
+[*Convenience header: ][^boost/asio/ssl.hpp]
 
-[heading Return Value]
-
-The number of handlers that were executed. A zero return value implies that the [link boost_asio.reference.io_service `io_service`] object is stopped (the `stopped()` function returns `true`). Subsequent calls to `run()`, `run_one()`, `poll()` or `poll_one()` will return immediately unless there is a prior call to `reset()`.
 
-The number of handlers that were executed.
+[endsect]
 
 
 
+[section:error__get_system_category error::get_system_category]
 
-[endsect]
+[indexterm1 error::get_system_category]
 
+ const boost::system::error_category & get_system_category();
 
-[endsect]
 
+[heading Requirements]
 
-[section:stop io_service::stop]
+[*Header: ][^boost/asio/error.hpp]
 
-[indexterm2 stop..io_service]
-Stop the [link boost_asio.reference.io_service `io_service`] object's event processing loop.
+[*Convenience header: ][^boost/asio.hpp]
 
 
- void stop();
+[endsect]
 
 
-This function does not block, but instead simply signals the [link boost_asio.reference.io_service `io_service`] to stop. All invocations of its `run()` or `run_one()` member functions should return as soon as possible. Subsequent calls to `run()`, `run_one()`, `poll()` or `poll_one()` will return immediately until `reset()` is called.
+[section:error__make_error_code error::make_error_code]
 
+[indexterm1 error::make_error_code]
+
+ boost::system::error_code ``[link boost_asio.reference.error__make_error_code.overload1 make_error_code]``(
+ basic_errors e);
+ `` [''''&raquo;''' [link boost_asio.reference.error__make_error_code.overload1 more...]]``
 
-[endsect]
+ boost::system::error_code ``[link boost_asio.reference.error__make_error_code.overload2 make_error_code]``(
+ netdb_errors e);
+ `` [''''&raquo;''' [link boost_asio.reference.error__make_error_code.overload2 more...]]``
 
+ boost::system::error_code ``[link boost_asio.reference.error__make_error_code.overload3 make_error_code]``(
+ addrinfo_errors e);
+ `` [''''&raquo;''' [link boost_asio.reference.error__make_error_code.overload3 more...]]``
 
+ boost::system::error_code ``[link boost_asio.reference.error__make_error_code.overload4 make_error_code]``(
+ misc_errors e);
+ `` [''''&raquo;''' [link boost_asio.reference.error__make_error_code.overload4 more...]]``
 
-[section:stopped io_service::stopped]
+ boost::system::error_code ``[link boost_asio.reference.error__make_error_code.overload5 make_error_code]``(
+ ssl_errors e);
+ `` [''''&raquo;''' [link boost_asio.reference.error__make_error_code.overload5 more...]]``
 
-[indexterm2 stopped..io_service]
-Determine whether the [link boost_asio.reference.io_service `io_service`] object has been stopped.
+[heading Requirements]
 
+[*Header: ][^boost/asio/error.hpp]
 
- bool stopped() const;
+[*Convenience header: ][^boost/asio.hpp]
 
 
-This function is used to determine whether an [link boost_asio.reference.io_service `io_service`] object has been stopped, either through an explicit call to `stop()`, or due to running out of work. When an [link boost_asio.reference.io_service `io_service`] object is stopped, calls to `run()`, `run_one()`, `poll()` or `poll_one()` will return immediately without invoking any handlers.
+[section:overload1 error::make_error_code (1 of 5 overloads)]
 
 
-[heading Return Value]
-
-`true` if the [link boost_asio.reference.io_service `io_service`] object is stopped, otherwise `false`.
 
+ boost::system::error_code make_error_code(
+ basic_errors e);
 
 
 
@@ -53819,275 +53785,257 @@
 
 
 
-[section:use_service io_service::use_service]
+[section:overload2 error::make_error_code (2 of 5 overloads)]
 
-[indexterm2 use_service..io_service]
-Obtain the service object corresponding to the given type.
 
 
- template<
- typename ``[link boost_asio.reference.Service Service]``>
- friend Service & use_service(
- io_service & ios);
+ boost::system::error_code make_error_code(
+ netdb_errors e);
 
 
-This function is used to locate a service object that corresponds to the given service type. If there is no existing implementation of the service, then the [link boost_asio.reference.io_service `io_service`] will create a new instance of the service.
 
+[endsect]
 
-[heading Parameters]
-
 
-[variablelist
-
-[[ios][The [link boost_asio.reference.io_service `io_service`] object that owns the service.]]
 
-]
+[section:overload3 error::make_error_code (3 of 5 overloads)]
 
 
-[heading Return Value]
-
-The service interface implementing the specified service type. Ownership of the service interface is not transferred to the caller.
 
+ boost::system::error_code make_error_code(
+ addrinfo_errors e);
 
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/io_service.hpp]
+[endsect]
 
-[*Convenience header: ][^boost/asio.hpp]
 
 
-[endsect]
+[section:overload4 error::make_error_code (4 of 5 overloads)]
 
 
 
-[section:wrap io_service::wrap]
+ boost::system::error_code make_error_code(
+ misc_errors e);
 
-[indexterm2 wrap..io_service]
-Create a new handler that automatically dispatches the wrapped handler on the [link boost_asio.reference.io_service `io_service`].
 
 
- template<
- typename ``[link boost_asio.reference.Handler Handler]``>
- unspecified wrap(
- Handler handler);
+[endsect]
 
 
-This function is used to create a new handler function object that, when invoked, will automatically pass the wrapped handler to the [link boost_asio.reference.io_service `io_service`] object's dispatch function.
 
+[section:overload5 error::make_error_code (5 of 5 overloads)]
 
-[heading Parameters]
-
 
-[variablelist
-
-[[handler][The handler to be wrapped. The [link boost_asio.reference.io_service `io_service`] will make a copy of the handler object as required. The function signature of the handler must be:
-``
- void handler(A1 a1, ... An an);
-``
-]]
 
-]
+ boost::system::error_code make_error_code(
+ ssl_errors e);
 
 
-[heading Return Value]
-
-A function object that, when invoked, passes the wrapped handler to the [link boost_asio.reference.io_service `io_service`] object's dispatch function. Given a function object with the signature:
 
- R f(A1 a1, ... An an);
+[endsect]
 
 
-If this function object is passed to the wrap function like so:
+[endsect]
 
- io_service.wrap(f);
 
+[section:error__misc_category error::misc_category]
 
-then the return value is a function object with the signature
+[indexterm1 error::misc_category]
 
- void g(A1 a1, ... An an);
+ static const boost::system::error_category & misc_category = boost::asio::error::get_misc_category();
 
 
-that, when invoked, executes code equivalent to:
+[heading Requirements]
 
- io_service.dispatch(boost::bind(f, a1, ... an));
+[*Header: ][^boost/asio/error.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
 
+[endsect]
 
 
 
+[section:error__misc_errors error::misc_errors]
 
-[endsect]
+[indexterm1 error::misc_errors]
 
+ enum misc_errors
 
+[indexterm2 already_open..error::misc_errors]
+[indexterm2 eof..error::misc_errors]
+[indexterm2 not_found..error::misc_errors]
+[indexterm2 fd_set_failure..error::misc_errors]
 
-[section:_io_service io_service::~io_service]
+[heading Values]
+[variablelist
 
-[indexterm2 ~io_service..io_service]
-Destructor.
+ [
+ [already_open]
+ [Already open. ]
+ ]
 
+ [
+ [eof]
+ [End of file or stream. ]
+ ]
 
- ~io_service();
+ [
+ [not_found]
+ [Element not found. ]
+ ]
+
+ [
+ [fd_set_failure]
+ [The descriptor cannot fit into the select system call's fd_set. ]
+ ]
 
+]
 
-On destruction, the [link boost_asio.reference.io_service `io_service`] performs the following sequence of operations:
 
+[heading Requirements]
 
-* For each service object `svc` in the [link boost_asio.reference.io_service `io_service`] set, in reverse order of the beginning of service object lifetime, performs `svc->shutdown_service()`.
+[*Header: ][^boost/asio/error.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
-* Uninvoked handler objects that were scheduled for deferred invocation on the [link boost_asio.reference.io_service `io_service`], or any associated strand, are destroyed.
 
+[endsect]
 
-* For each service object `svc` in the [link boost_asio.reference.io_service `io_service`] set, in reverse order of the beginning of service object lifetime, performs `delete static_cast<io_service::service*>(svc)`.
 
 
-[heading Remarks]
-
-The destruction sequence described above permits programs to simplify their resource management by using `shared_ptr<>`. Where an object's lifetime is tied to the lifetime of a connection (or some other sequence of asynchronous operations), a `shared_ptr` to the object would be bound into the handlers for all asynchronous operations associated with it. This works as follows:
+[section:error__netdb_category error::netdb_category]
 
+[indexterm1 error::netdb_category]
 
-* When a single connection ends, all associated asynchronous operations complete. The corresponding handler objects are destroyed, and all `shared_ptr` references to the objects are destroyed.
+ static const boost::system::error_category & netdb_category = boost::asio::error::get_netdb_category();
 
 
-* To shut down the whole program, the [link boost_asio.reference.io_service `io_service`] function `stop()` is called to terminate any `run()` calls as soon as possible. The [link boost_asio.reference.io_service `io_service`] destructor defined above destroys all handlers, causing all `shared_ptr` references to all connection objects to be destroyed.
+[heading Requirements]
 
+[*Header: ][^boost/asio/error.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
 
-[endsect]
+[section:error__netdb_errors error::netdb_errors]
 
-[section:io_service__id io_service::id]
+[indexterm1 error::netdb_errors]
 
+ enum netdb_errors
 
-Class used to uniquely identify a service.
+[indexterm2 host_not_found..error::netdb_errors]
+[indexterm2 host_not_found_try_again..error::netdb_errors]
+[indexterm2 no_data..error::netdb_errors]
+[indexterm2 no_recovery..error::netdb_errors]
 
+[heading Values]
+[variablelist
 
- class id :
- noncopyable
+ [
+ [host_not_found]
+ [Host not found (authoritative). ]
+ ]
 
+ [
+ [host_not_found_try_again]
+ [Host not found (non-authoritative). ]
+ ]
 
-[heading Member Functions]
-[table
- [[Name][Description]]
+ [
+ [no_data]
+ [The query is valid but does not have associated address data. ]
+ ]
 
   [
- [[link boost_asio.reference.io_service__id.id [*id]]]
- [Constructor. ]
+ [no_recovery]
+ [A non-recoverable error occurred. ]
   ]
-
+
 ]
 
+
 [heading Requirements]
 
-[*Header: ][^boost/asio/io_service.hpp]
+[*Header: ][^boost/asio/error.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
 
-[section:id io_service::id::id]
+[endsect]
 
-[indexterm2 id..io_service::id]
-Constructor.
 
 
- id();
+[section:error__ssl_category error::ssl_category]
 
+[indexterm1 error::ssl_category]
 
+ static const boost::system::error_category & ssl_category = boost::asio::error::get_ssl_category();
 
-[endsect]
 
+[heading Requirements]
 
+[*Header: ][^boost/asio/ssl/error.hpp]
 
-[endsect]
+[*Convenience header: ][^boost/asio/ssl.hpp]
 
-[section:io_service__service io_service::service]
 
+[endsect]
 
-Base class for all [link boost_asio.reference.io_service `io_service`] services.
 
 
- class service :
- noncopyable
+[section:error__ssl_errors error::ssl_errors]
 
+[indexterm1 error::ssl_errors]
 
-[heading Member Functions]
-[table
- [[Name][Description]]
+ enum ssl_errors
 
- [
- [[link boost_asio.reference.io_service__service.get_io_service [*get_io_service]]]
- [Get the io_service object that owns the service. ]
- ]
-
-]
 
-[heading Protected Member Functions]
-[table
- [[Name][Description]]
+[heading Requirements]
 
- [
- [[link boost_asio.reference.io_service__service.service [*service]]]
- [Constructor. ]
- ]
-
- [
- [[link boost_asio.reference.io_service__service._service [*~service]]]
- [Destructor. ]
- ]
-
-]
+[*Header: ][^boost/asio/ssl/error.hpp]
 
-[heading Private Member Functions]
-[table
- [[Name][Description]]
+[*Convenience header: ][^boost/asio/ssl.hpp]
 
- [
- [[link boost_asio.reference.io_service__service.fork_service [*fork_service]]]
- [Handle notification of a fork-related event to perform any necessary housekeeping. ]
- ]
-
- [
- [[link boost_asio.reference.io_service__service.shutdown_service [*shutdown_service]]]
- [Destroy all user-defined handler objects owned by the service. ]
- ]
-
-]
 
-[heading Requirements]
+[endsect]
 
-[*Header: ][^boost/asio/io_service.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
 
+[section:error__system_category error::system_category]
 
-[section:get_io_service io_service::service::get_io_service]
+[indexterm1 error::system_category]
 
-[indexterm2 get_io_service..io_service::service]
-Get the [link boost_asio.reference.io_service `io_service`] object that owns the service.
+ static const boost::system::error_category & system_category = boost::asio::error::get_system_category();
 
 
- boost::asio::io_service & get_io_service();
+[heading Requirements]
 
+[*Header: ][^boost/asio/error.hpp]
+
+[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
 
-[section:service io_service::service::service]
+[section:has_service has_service]
 
-[indexterm2 service..io_service::service]
-Constructor.
+[indexterm1 has_service]
 
+ template<
+ typename ``[link boost_asio.reference.Service Service]``>
+ bool has_service(
+ io_service & ios);
 
- service(
- boost::asio::io_service & owner);
 
+This function is used to determine whether the [link boost_asio.reference.io_service `io_service`] contains a service object corresponding to the given service type.
 
 
 [heading Parameters]
@@ -54095,694 +54043,792 @@
 
 [variablelist
   
-[[owner][The [link boost_asio.reference.io_service `io_service`] object that owns the service. ]]
+[[ios][The [link boost_asio.reference.io_service `io_service`] object that owns the service.]]
 
 ]
 
 
+[heading Return Value]
+
+A boolean indicating whether the [link boost_asio.reference.io_service `io_service`] contains the service.
 
 
-[endsect]
-
-
-
-[section:_service io_service::service::~service]
-
-[indexterm2 ~service..io_service::service]
-Destructor.
 
+[heading Requirements]
 
- virtual ~service();
+[*Header: ][^boost/asio/io_service.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
 
-[section:fork_service io_service::service::fork_service]
-
-[indexterm2 fork_service..io_service::service]
-Handle notification of a fork-related event to perform any necessary housekeeping.
-
-
- virtual void fork_service(
- boost::asio::io_service::fork_event event);
-
-
-This function is not a pure virtual so that services only have to implement it if necessary. The default implementation does nothing.
-
-
-[endsect]
+[section:high_resolution_timer high_resolution_timer]
 
+[indexterm1 high_resolution_timer]
+Typedef for a timer based on the high resolution clock.
 
 
-[section:shutdown_service io_service::service::shutdown_service]
+ typedef basic_waitable_timer< chrono::high_resolution_clock > high_resolution_timer;
 
-[indexterm2 shutdown_service..io_service::service]
-Destroy all user-defined handler objects owned by the service.
 
+[heading Types]
+[table
+ [[Name][Description]]
 
- void shutdown_service();
+ [
 
+ [[link boost_asio.reference.basic_waitable_timer.clock_type [*clock_type]]]
+ [The clock type. ]
+
+ ]
 
+ [
 
-[endsect]
+ [[link boost_asio.reference.basic_waitable_timer.duration [*duration]]]
+ [The duration type of the clock. ]
+
+ ]
 
+ [
 
+ [[link boost_asio.reference.basic_waitable_timer.implementation_type [*implementation_type]]]
+ [The underlying implementation type of I/O object. ]
+
+ ]
 
-[endsect]
+ [
 
-[section:io_service__strand io_service::strand]
+ [[link boost_asio.reference.basic_waitable_timer.service_type [*service_type]]]
+ [The type of the service that will be used to provide I/O operations. ]
+
+ ]
 
+ [
 
-Provides serialised handler execution.
+ [[link boost_asio.reference.basic_waitable_timer.time_point [*time_point]]]
+ [The time point type of the clock. ]
+
+ ]
 
+ [
 
- class strand
+ [[link boost_asio.reference.basic_waitable_timer.traits_type [*traits_type]]]
+ [The wait traits type. ]
+
+ ]
 
+]
 
 [heading Member Functions]
 [table
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.io_service__strand.dispatch [*dispatch]]]
- [Request the strand to invoke the given handler. ]
+ [[link boost_asio.reference.basic_waitable_timer.async_wait [*async_wait]]]
+ [Start an asynchronous wait on the timer. ]
   ]
   
   [
- [[link boost_asio.reference.io_service__strand.get_io_service [*get_io_service]]]
- [Get the io_service associated with the strand. ]
+ [[link boost_asio.reference.basic_waitable_timer.basic_waitable_timer [*basic_waitable_timer]]]
+ [Constructor.
+
+ Constructor to set a particular expiry time as an absolute time.
+
+ Constructor to set a particular expiry time relative to now. ]
   ]
   
   [
- [[link boost_asio.reference.io_service__strand.post [*post]]]
- [Request the strand to invoke the given handler and return immediately. ]
+ [[link boost_asio.reference.basic_waitable_timer.cancel [*cancel]]]
+ [Cancel any asynchronous operations that are waiting on the timer. ]
   ]
   
   [
- [[link boost_asio.reference.io_service__strand.strand [*strand]]]
- [Constructor. ]
+ [[link boost_asio.reference.basic_waitable_timer.cancel_one [*cancel_one]]]
+ [Cancels one asynchronous operation that is waiting on the timer. ]
   ]
   
   [
- [[link boost_asio.reference.io_service__strand.wrap [*wrap]]]
- [Create a new handler that automatically dispatches the wrapped handler on the strand. ]
+ [[link boost_asio.reference.basic_waitable_timer.expires_at [*expires_at]]]
+ [Get the timer's expiry time as an absolute time.
+
+ Set the timer's expiry time as an absolute time. ]
   ]
   
   [
- [[link boost_asio.reference.io_service__strand._strand [*~strand]]]
- [Destructor. ]
+ [[link boost_asio.reference.basic_waitable_timer.expires_from_now [*expires_from_now]]]
+ [Get the timer's expiry time relative to now.
+
+ Set the timer's expiry time relative to now. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_waitable_timer.get_io_service [*get_io_service]]]
+ [Get the io_service associated with the object. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_waitable_timer.wait [*wait]]]
+ [Perform a blocking wait on the timer. ]
   ]
   
 ]
 
-The [link boost_asio.reference.io_service__strand `io_service::strand`] class provides the ability to post and dispatch handlers with the guarantee that none of those handlers will execute concurrently.
-
+[heading Protected Member Functions]
+[table
+ [[Name][Description]]
 
-[heading Order of handler invocation]
+ [
+ [[link boost_asio.reference.basic_waitable_timer.get_implementation [*get_implementation]]]
+ [Get the underlying implementation of the I/O object. ]
+ ]
   
-Given:
-
-
-* a strand object `s`
+ [
+ [[link boost_asio.reference.basic_waitable_timer.get_service [*get_service]]]
+ [Get the service associated with the I/O object. ]
+ ]
+
+]
 
+[heading Protected Data Members]
+[table
+ [[Name][Description]]
 
-* an object `a` meeting completion handler requirements
+ [
+ [[link boost_asio.reference.basic_waitable_timer.implementation [*implementation]]]
+ [(Deprecated: Use get_implementation().) The underlying implementation of the I/O object. ]
+ ]
 
+ [
+ [[link boost_asio.reference.basic_waitable_timer.service [*service]]]
+ [(Deprecated: Use get_service().) The service associated with the I/O object. ]
+ ]
 
-* an object `a1` which is an arbitrary copy of `a` made by the implementation
+]
 
+The [link boost_asio.reference.basic_waitable_timer `basic_waitable_timer`] class template provides the ability to perform a blocking or asynchronous wait for a timer to expire.
 
-* an object `b` meeting completion handler requirements
+A waitable timer is always in one of two states: "expired" or "not expired". If the `wait()` or `async_wait()` function is called on an expired timer, the wait operation will complete immediately.
 
+Most applications will use the boost::asio::waitable\_timer typedef.
 
-* an object `b1` which is an arbitrary copy of `b` made by the implementation
 
-if any of the following conditions are true:
+[heading Remarks]
+
+This waitable timer functionality is for use with the C++11 standard library's `<chrono>` facility, or with the Boost.Chrono library.
 
 
-* `s.post(a)` happens-before `s.post(b)`
+[heading Thread Safety]
+
+[*Distinct] [*objects:] Safe.
 
+[*Shared] [*objects:] Unsafe.
 
-* `s.post(a)` happens-before `s.dispatch(b)`, where the latter is performed outside the strand
 
+[heading Examples]
+
+Performing a blocking wait:
 
-* `s.dispatch(a)` happens-before `s.post(b)`, where the former is performed outside the strand
+ // Construct a timer without setting an expiry time.
+ boost::asio::waitable_timer timer(io_service);
 
+ // Set an expiry time relative to now.
+ timer.expires_from_now(boost::posix_time::seconds(5));
 
-* `s.dispatch(a)` happens-before `s.dispatch(b)`, where both are performed outside the strand
+ // Wait for the timer to expire.
+ timer.wait();
 
-then `asio_handler_invoke(a1, &a1)` happens-before `asio_handler_invoke(b1, &b1)`.
 
-Note that in the following case:
 
- async_op_1(..., s.wrap(a));
- async_op_2(..., s.wrap(b));
 
 
-the completion of the first async operation will perform `s.dispatch(a)`, and the second will perform `s.dispatch(b)`, but the order in which those are performed is unspecified. That is, you cannot state whether one happens-before the other. Therefore none of the above conditions are met and no ordering guarantee is made.
+Performing an asynchronous wait:
 
+ void handler(const boost::system::error_code& error)
+ {
+ if (!error)
+ {
+ // Timer expired.
+ }
+ }
 
-[heading Thread Safety]
-
-[*Distinct] [*objects:] Safe.
+ ...
 
-[*Shared] [*objects:] Safe.
+ // Construct a timer with an absolute expiry time.
+ boost::asio::waitable_timer timer(io_service,
+ boost::posix_time::time_from_string("2005-12-07 23:59:59.000"));
 
+ // Start an asynchronous wait.
+ timer.async_wait(handler);
 
 
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/strand.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
+[heading Changing an active waitable_timer's expiry time]
+
 
 
-[section:dispatch io_service::strand::dispatch]
+Changing the expiry time of a timer while there are pending asynchronous waits causes those wait operations to be cancelled. To ensure that the action associated with the timer is performed only once, use something like this: used:
 
-[indexterm2 dispatch..io_service::strand]
-Request the strand to invoke the given handler.
 
 
- template<
- typename ``[link boost_asio.reference.CompletionHandler CompletionHandler]``>
- void dispatch(
- CompletionHandler handler);
+ void on_some_event()
+ {
+ if (my_timer.expires_from_now(seconds(5)) > 0)
+ {
+ // We managed to cancel the timer. Start new asynchronous wait.
+ my_timer.async_wait(on_timeout);
+ }
+ else
+ {
+ // Too late, timer has already expired!
+ }
+ }
 
+ void on_timeout(const boost::system::error_code& e)
+ {
+ if (e != boost::asio::error::operation_aborted)
+ {
+ // Timer was not cancelled, take necessary action.
+ }
+ }
 
-This function is used to ask the strand to execute the given handler.
 
-The strand object guarantees that handlers posted or dispatched through the strand will not be executed concurrently. The handler may be executed inside this function if the guarantee can be met. If this function is called from within a handler that was posted or dispatched through the same strand, then the new handler will be executed immediately.
 
-The strand's guarantee is in addition to the guarantee provided by the underlying [link boost_asio.reference.io_service `io_service`]. The [link boost_asio.reference.io_service `io_service`] guarantees that the handler will only be called in a thread in which the io\_service's run member function is currently being invoked.
 
 
-[heading Parameters]
-
+* The `boost::asio::basic_waitable_timer::expires_from_now()` function cancels any pending asynchronous waits, and returns the number of asynchronous waits that were cancelled. If it returns 0 then you were too late and the wait handler has already been executed, or will soon be executed. If it returns 1 then the wait handler was successfully cancelled.
 
-[variablelist
-
-[[handler][The handler to be called. The strand will make a copy of the handler object as required. The function signature of the handler must be:
-``
- void handler();
-``
-]]
 
-]
+* If a wait handler is cancelled, the boost::system::error\_code passed to it contains the value `boost::asio::error::operation_aborted`.
 
 
 
 
-[endsect]
+This typedef uses the C++11 `<chrono>` standard library facility, if available. Otherwise, it may use the Boost.Chrono library. To explicitly utilise Boost.Chrono, use the [link boost_asio.reference.basic_waitable_timer `basic_waitable_timer`] template directly:
 
+ typedef basic_waitable_timer<boost::chrono::high_resolution_clock> timer;
 
 
-[section:get_io_service io_service::strand::get_io_service]
 
-[indexterm2 get_io_service..io_service::strand]
-Get the [link boost_asio.reference.io_service `io_service`] associated with the strand.
 
+[heading Requirements]
 
- boost::asio::io_service & get_io_service();
+[*Header: ][^boost/asio/high_resolution_timer.hpp]
 
+[*Convenience header: ]None
 
-This function may be used to obtain the [link boost_asio.reference.io_service `io_service`] object that the strand uses to dispatch handlers for asynchronous operations.
 
+[endsect]
 
-[heading Return Value]
-
-A reference to the [link boost_asio.reference.io_service `io_service`] object that the strand will use to dispatch handlers. Ownership is not transferred to the caller.
 
+[section:invalid_service_owner invalid_service_owner]
 
 
+Exception thrown when trying to add a service object to an [link boost_asio.reference.io_service `io_service`] where the service has a different owner.
 
-[endsect]
 
+ class invalid_service_owner
 
 
-[section:post io_service::strand::post]
+[heading Member Functions]
+[table
+ [[Name][Description]]
 
-[indexterm2 post..io_service::strand]
-Request the strand to invoke the given handler and return immediately.
+ [
+ [[link boost_asio.reference.invalid_service_owner.invalid_service_owner [*invalid_service_owner]]]
+ []
+ ]
+
+]
 
+[heading Requirements]
 
- template<
- typename ``[link boost_asio.reference.CompletionHandler CompletionHandler]``>
- void post(
- CompletionHandler handler);
+[*Header: ][^boost/asio/io_service.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
-This function is used to ask the strand to execute the given handler, but without allowing the strand to call the handler from inside this function.
 
-The strand object guarantees that handlers posted or dispatched through the strand will not be executed concurrently. The strand's guarantee is in addition to the guarantee provided by the underlying [link boost_asio.reference.io_service `io_service`]. The [link boost_asio.reference.io_service `io_service`] guarantees that the handler will only be called in a thread in which the io\_service's run member function is currently being invoked.
+[section:invalid_service_owner invalid_service_owner::invalid_service_owner]
 
+[indexterm2 invalid_service_owner..invalid_service_owner]
 
-[heading Parameters]
-
+ invalid_service_owner();
 
-[variablelist
-
-[[handler][The handler to be called. The strand will make a copy of the handler object as required. The function signature of the handler must be:
-``
- void handler();
-``
-]]
 
-]
 
+[endsect]
 
 
 
 [endsect]
 
+[section:io_service io_service]
 
 
-[section:strand io_service::strand::strand]
+Provides core I/O functionality.
 
-[indexterm2 strand..io_service::strand]
-Constructor.
 
+ class io_service :
+ noncopyable
 
- strand(
- boost::asio::io_service & io_service);
 
+[heading Types]
+[table
+ [[Name][Description]]
 
-Constructs the strand.
+ [
 
+ [[link boost_asio.reference.io_service__id [*id]]]
+ [Class used to uniquely identify a service. ]
+
+ ]
 
-[heading Parameters]
-
+ [
 
-[variablelist
+ [[link boost_asio.reference.io_service__service [*service]]]
+ [Base class for all io_service services. ]
   
-[[io_service][The [link boost_asio.reference.io_service `io_service`] object that the strand will use to dispatch handlers that are ready to be run. ]]
-
-]
+ ]
 
+ [
 
+ [[link boost_asio.reference.io_service__strand [*strand]]]
+ [Provides serialised handler execution. ]
+
+ ]
 
+ [
 
-[endsect]
+ [[link boost_asio.reference.io_service__work [*work]]]
+ [Class to inform the io_service when it has work to do. ]
+
+ ]
 
+ [
 
+ [[link boost_asio.reference.io_service.fork_event [*fork_event]]]
+ [Fork-related event notifications. ]
+
+ ]
 
-[section:wrap io_service::strand::wrap]
+]
 
-[indexterm2 wrap..io_service::strand]
-Create a new handler that automatically dispatches the wrapped handler on the strand.
+[heading Member Functions]
+[table
+ [[Name][Description]]
 
+ [
+ [[link boost_asio.reference.io_service.dispatch [*dispatch]]]
+ [Request the io_service to invoke the given handler. ]
+ ]
+
+ [
+ [[link boost_asio.reference.io_service.io_service [*io_service]]]
+ [Constructor. ]
+ ]
+
+ [
+ [[link boost_asio.reference.io_service.notify_fork [*notify_fork]]]
+ [Notify the io_service of a fork-related event. ]
+ ]
+
+ [
+ [[link boost_asio.reference.io_service.poll [*poll]]]
+ [Run the io_service object's event processing loop to execute ready handlers. ]
+ ]
+
+ [
+ [[link boost_asio.reference.io_service.poll_one [*poll_one]]]
+ [Run the io_service object's event processing loop to execute one ready handler. ]
+ ]
+
+ [
+ [[link boost_asio.reference.io_service.post [*post]]]
+ [Request the io_service to invoke the given handler and return immediately. ]
+ ]
+
+ [
+ [[link boost_asio.reference.io_service.reset [*reset]]]
+ [Reset the io_service in preparation for a subsequent run() invocation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.io_service.run [*run]]]
+ [Run the io_service object's event processing loop. ]
+ ]
+
+ [
+ [[link boost_asio.reference.io_service.run_one [*run_one]]]
+ [Run the io_service object's event processing loop to execute at most one handler. ]
+ ]
+
+ [
+ [[link boost_asio.reference.io_service.stop [*stop]]]
+ [Stop the io_service object's event processing loop. ]
+ ]
+
+ [
+ [[link boost_asio.reference.io_service.stopped [*stopped]]]
+ [Determine whether the io_service object has been stopped. ]
+ ]
+
+ [
+ [[link boost_asio.reference.io_service.wrap [*wrap]]]
+ [Create a new handler that automatically dispatches the wrapped handler on the io_service. ]
+ ]
+
+ [
+ [[link boost_asio.reference.io_service._io_service [*~io_service]]]
+ [Destructor. ]
+ ]
+
+]
 
- template<
- typename ``[link boost_asio.reference.Handler Handler]``>
- unspecified wrap(
- Handler handler);
+[heading Friends]
+[table
+ [[Name][Description]]
 
+ [
+ [[link boost_asio.reference.io_service.add_service [*add_service]]]
+ [Add a service object to the io_service. ]
+ ]
+
+ [
+ [[link boost_asio.reference.io_service.has_service [*has_service]]]
+ [Determine if an io_service contains a specified service type. ]
+ ]
+
+ [
+ [[link boost_asio.reference.io_service.use_service [*use_service]]]
+ [Obtain the service object corresponding to the given type. ]
+ ]
+
+]
 
-This function is used to create a new handler function object that, when invoked, will automatically pass the wrapped handler to the strand's dispatch function.
+The [link boost_asio.reference.io_service `io_service`] class provides the core I/O functionality for users of the asynchronous I/O objects, including:
 
 
-[heading Parameters]
-
+* `boost::asio::ip::tcp::socket`
 
-[variablelist
-
-[[handler][The handler to be wrapped. The strand will make a copy of the handler object as required. The function signature of the handler must be:
-``
- void handler(A1 a1, ... An an);
-``
-]]
+* `boost::asio::ip::tcp::acceptor`
 
-]
+* `boost::asio::ip::udp::socket`
 
+* [link boost_asio.reference.deadline_timer `deadline_timer`].
 
-[heading Return Value]
-
-A function object that, when invoked, passes the wrapped handler to the strand's dispatch function. Given a function object with the signature:
+The [link boost_asio.reference.io_service `io_service`] class also includes facilities intended for developers of custom asynchronous services.
 
- R f(A1 a1, ... An an);
 
+[heading Thread Safety]
+
+[*Distinct] [*objects:] Safe.
 
-If this function object is passed to the wrap function like so:
+[*Shared] [*objects:] Safe, with the specific exceptions of the `reset()` and `notify_fork()` functions. Calling `reset()` while there are unfinished `run()`, `run_one()`, `poll()` or `poll_one()` calls results in undefined behaviour. The `notify_fork()` function should not be called while any [link boost_asio.reference.io_service `io_service`] function, or any function on an I/O object that is associated with the [link boost_asio.reference.io_service `io_service`], is being called in another thread.
 
- strand.wrap(f);
 
 
-then the return value is a function object with the signature
+[heading Synchronous and asynchronous operations]
+
 
- void g(A1 a1, ... An an);
 
+Synchronous operations on I/O objects implicitly run the [link boost_asio.reference.io_service `io_service`] object for an individual operation. The [link boost_asio.reference.io_service `io_service`] functions `run()`, `run_one()`, `poll()` or `poll_one()` must be called for the [link boost_asio.reference.io_service `io_service`] to perform asynchronous operations on behalf of a C++ program. Notification that an asynchronous operation has completed is delivered by invocation of the associated handler. Handlers are invoked only by a thread that is currently calling any overload of `run()`, `run_one()`, `poll()` or `poll_one()` for the [link boost_asio.reference.io_service `io_service`].
 
-that, when invoked, executes code equivalent to:
 
- strand.dispatch(boost::bind(f, a1, ... an));
+[heading Effect of exceptions thrown from handlers]
+
 
 
+If an exception is thrown from a handler, the exception is allowed to propagate through the throwing thread's invocation of `run()`, `run_one()`, `poll()` or `poll_one()`. No other threads that are calling any of these functions are affected. It is then the responsibility of the application to catch the exception.
 
+After the exception has been caught, the `run()`, `run_one()`, `poll()` or `poll_one()` call may be restarted [*without] the need for an intervening call to `reset()`. This allows the thread to rejoin the [link boost_asio.reference.io_service `io_service`] object's thread pool without impacting any other threads in the pool.
 
+For example:
 
 
 
-[endsect]
+ boost::asio::io_service io_service;
+ ...
+ for (;;)
+ {
+ try
+ {
+ io_service.run();
+ break; // run() exited normally
+ }
+ catch (my_exception& e)
+ {
+ // Deal with exception as appropriate.
+ }
+ }
 
 
 
-[section:_strand io_service::strand::~strand]
 
-[indexterm2 ~strand..io_service::strand]
-Destructor.
 
+[heading Stopping the io_service from running out of work]
+
 
- ~strand();
 
+Some applications may need to prevent an [link boost_asio.reference.io_service `io_service`] object's `run()` call from returning when there is no more work to do. For example, the [link boost_asio.reference.io_service `io_service`] may be being run in a background thread that is launched prior to the application's asynchronous operations. The `run()` call may be kept running by creating an object of type [link boost_asio.reference.io_service__work `io_service::work`]:
 
-Destroys a strand.
 
-Handlers posted through the strand that have not yet been invoked will still be dispatched in a way that meets the guarantee of non-concurrency.
 
+ boost::asio::io_service io_service;
+ boost::asio::io_service::work work(io_service);
+ ...
 
-[endsect]
 
 
 
-[endsect]
+To effect a shutdown, the application will then need to call the [link boost_asio.reference.io_service `io_service`] object's `stop()` member function. This will cause the [link boost_asio.reference.io_service `io_service`] `run()` call to return as soon as possible, abandoning unfinished operations and without permitting ready handlers to be dispatched.
 
-[section:io_service__work io_service::work]
+Alternatively, if the application requires that all operations and handlers be allowed to finish normally, the work object may be explicitly destroyed.
 
 
-Class to inform the [link boost_asio.reference.io_service `io_service`] when it has work to do.
 
+ boost::asio::io_service io_service;
+ auto_ptr<boost::asio::io_service::work> work(
+ new boost::asio::io_service::work(io_service));
+ ...
+ work.reset(); // Allow run() to exit.
 
- class work
 
 
-[heading Member Functions]
-[table
- [[Name][Description]]
 
- [
- [[link boost_asio.reference.io_service__work.get_io_service [*get_io_service]]]
- [Get the io_service associated with the work. ]
- ]
-
- [
- [[link boost_asio.reference.io_service__work.work [*work]]]
- [Constructor notifies the io_service that work is starting.
 
- Copy constructor notifies the io_service that work is starting. ]
- ]
-
- [
- [[link boost_asio.reference.io_service__work._work [*~work]]]
- [Destructor notifies the io_service that the work is complete. ]
- ]
+[heading The io_service class and I/O services]
   
-]
 
-The work class is used to inform the [link boost_asio.reference.io_service `io_service`] when work starts and finishes. This ensures that the [link boost_asio.reference.io_service `io_service`] object's `run()` function will not exit while work is underway, and that it does exit when there is no unfinished work remaining.
 
-The work class is copy-constructible so that it may be used as a data member in a handler class. It is not assignable.
+Class [link boost_asio.reference.io_service `io_service`] implements an extensible, type-safe, polymorphic set of I/O services, indexed by service type. An object of class [link boost_asio.reference.io_service `io_service`] must be initialised before I/O objects such as sockets, resolvers and timers can be used. These I/O objects are distinguished by having constructors that accept an `io_service&` parameter.
 
-[heading Requirements]
+I/O services exist to manage the logical interface to the operating system on behalf of the I/O objects. In particular, there are resources that are shared across a class of I/O objects. For example, timers may be implemented in terms of a single timer queue. The I/O services manage these shared resources.
 
-[*Header: ][^boost/asio/io_service.hpp]
+Access to the services of an [link boost_asio.reference.io_service `io_service`] is via three function templates, `use_service()`, `add_service()` and `has_service()`.
 
-[*Convenience header: ][^boost/asio.hpp]
+In a call to `use_service<Service>()`, the type argument chooses a service, making available all members of the named type. If `Service` is not present in an [link boost_asio.reference.io_service `io_service`], an object of type `Service` is created and added to the [link boost_asio.reference.io_service `io_service`]. A C++ program can check if an [link boost_asio.reference.io_service `io_service`] implements a particular service with the function template `has_service<Service>()`.
 
+Service objects may be explicitly added to an [link boost_asio.reference.io_service `io_service`] using the function template `add_service<Service>()`. If the `Service` is already present, the [link boost_asio.reference.service_already_exists `service_already_exists`] exception is thrown. If the owner of the service is not the same object as the [link boost_asio.reference.io_service `io_service`] parameter, the [link boost_asio.reference.invalid_service_owner `invalid_service_owner`] exception is thrown.
 
-[section:get_io_service io_service::work::get_io_service]
+Once a service reference is obtained from an [link boost_asio.reference.io_service `io_service`] object by calling `use_service()`, that reference remains usable as long as the owning [link boost_asio.reference.io_service `io_service`] object exists.
 
-[indexterm2 get_io_service..io_service::work]
-Get the [link boost_asio.reference.io_service `io_service`] associated with the work.
+All I/O service implementations have [link boost_asio.reference.io_service__service `io_service::service`] as a public base class. Custom I/O services may be implemented by deriving from this class and then added to an [link boost_asio.reference.io_service `io_service`] using the facilities described above.
 
+[heading Requirements]
 
- boost::asio::io_service & get_io_service();
+[*Header: ][^boost/asio/io_service.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
 
-[endsect]
+[section:add_service io_service::add_service]
 
+[indexterm2 add_service..io_service]
+Add a service object to the [link boost_asio.reference.io_service `io_service`].
 
-[section:work io_service::work::work]
 
-[indexterm2 work..io_service::work]
-Constructor notifies the [link boost_asio.reference.io_service `io_service`] that work is starting.
+ template<
+ typename ``[link boost_asio.reference.Service Service]``>
+ friend void add_service(
+ io_service & ios,
+ Service * svc);
 
 
- explicit ``[link boost_asio.reference.io_service__work.work.overload1 work]``(
- boost::asio::io_service & io_service);
- `` [''''&raquo;''' [link boost_asio.reference.io_service__work.work.overload1 more...]]``
+This function is used to add a service to the [link boost_asio.reference.io_service `io_service`].
 
 
-Copy constructor notifies the [link boost_asio.reference.io_service `io_service`] that work is starting.
+[heading Parameters]
+
 
+[variablelist
+
+[[ios][The [link boost_asio.reference.io_service `io_service`] object that owns the service.]]
 
- ``[link boost_asio.reference.io_service__work.work.overload2 work]``(
- const work & other);
- `` [''''&raquo;''' [link boost_asio.reference.io_service__work.work.overload2 more...]]``
+[[svc][The service object. On success, ownership of the service object is transferred to the [link boost_asio.reference.io_service `io_service`]. When the [link boost_asio.reference.io_service `io_service`] object is destroyed, it will destroy the service object by performing:
+``
+ delete static_cast<io_service::service*>(svc)
+``
+]]
 
+]
 
-[section:overload1 io_service::work::work (1 of 2 overloads)]
 
+[heading Exceptions]
+
 
-Constructor notifies the [link boost_asio.reference.io_service `io_service`] that work is starting.
+[variablelist
+
+[[boost::asio::service_already_exists][Thrown if a service of the given type is already present in the [link boost_asio.reference.io_service `io_service`].]]
 
+[[boost::asio::invalid_service_owner][Thrown if the service's owning [link boost_asio.reference.io_service `io_service`] is not the [link boost_asio.reference.io_service `io_service`] object specified by the ios parameter. ]]
 
- work(
- boost::asio::io_service & io_service);
+]
 
 
-The constructor is used to inform the [link boost_asio.reference.io_service `io_service`] that some work has begun. This ensures that the [link boost_asio.reference.io_service `io_service`] object's `run()` function will not exit while the work is underway.
 
+[heading Requirements]
 
-[endsect]
+[*Header: ][^boost/asio/io_service.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
 
-[section:overload2 io_service::work::work (2 of 2 overloads)]
+[endsect]
 
 
-Copy constructor notifies the [link boost_asio.reference.io_service `io_service`] that work is starting.
 
+[section:dispatch io_service::dispatch]
 
- work(
- const work & other);
+[indexterm2 dispatch..io_service]
+Request the [link boost_asio.reference.io_service `io_service`] to invoke the given handler.
 
 
-The constructor is used to inform the [link boost_asio.reference.io_service `io_service`] that some work has begun. This ensures that the [link boost_asio.reference.io_service `io_service`] object's `run()` function will not exit while the work is underway.
+ template<
+ typename ``[link boost_asio.reference.CompletionHandler CompletionHandler]``>
+ void dispatch(
+ CompletionHandler handler);
 
 
-[endsect]
+This function is used to ask the [link boost_asio.reference.io_service `io_service`] to execute the given handler.
 
+The [link boost_asio.reference.io_service `io_service`] guarantees that the handler will only be called in a thread in which the `run()`, `run_one()`, `poll()` or `poll_one()` member functions is currently being invoked. The handler may be executed inside this function if the guarantee can be met.
 
-[endsect]
 
+[heading Parameters]
+
 
-[section:_work io_service::work::~work]
+[variablelist
+
+[[handler][The handler to be called. The [link boost_asio.reference.io_service `io_service`] will make a copy of the handler object as required. The function signature of the handler must be:
+``
+ void handler();
+``
+]]
 
-[indexterm2 ~work..io_service::work]
-Destructor notifies the [link boost_asio.reference.io_service `io_service`] that the work is complete.
+]
 
 
- ~work();
+[heading Remarks]
+
+This function throws an exception only if:
 
 
-The destructor is used to inform the [link boost_asio.reference.io_service `io_service`] that some work has finished. Once the count of unfinished work reaches zero, the [link boost_asio.reference.io_service `io_service`] object's `run()` function is permitted to exit.
+* the handler's `asio_handler_allocate` function; or
 
 
-[endsect]
+* the handler's copy constructor
 
+throws an exception.
 
 
 [endsect]
 
-[section:ip__address ip::address]
-
-
-Implements version-independent IP addresses.
 
 
- class address
+[section:fork_event io_service::fork_event]
 
+[indexterm2 fork_event..io_service]
+Fork-related event notifications.
 
-[heading Member Functions]
-[table
- [[Name][Description]]
 
- [
- [[link boost_asio.reference.ip__address.address [*address]]]
- [Default constructor.
+ enum fork_event
 
- Construct an address from an IPv4 address.
+[indexterm2 fork_prepare..io_service]
+[indexterm2 fork_parent..io_service]
+[indexterm2 fork_child..io_service]
 
- Construct an address from an IPv6 address.
+[heading Values]
+[variablelist
 
- Copy constructor. ]
- ]
-
- [
- [[link boost_asio.reference.ip__address.from_string [*from_string]]]
- [Create an address from an IPv4 address string in dotted decimal form, or from an IPv6 address in hexadecimal notation. ]
- ]
-
- [
- [[link boost_asio.reference.ip__address.is_loopback [*is_loopback]]]
- [Determine whether the address is a loopback address. ]
- ]
-
- [
- [[link boost_asio.reference.ip__address.is_multicast [*is_multicast]]]
- [Determine whether the address is a multicast address. ]
- ]
-
- [
- [[link boost_asio.reference.ip__address.is_unspecified [*is_unspecified]]]
- [Determine whether the address is unspecified. ]
- ]
-
- [
- [[link boost_asio.reference.ip__address.is_v4 [*is_v4]]]
- [Get whether the address is an IP version 4 address. ]
- ]
-
   [
- [[link boost_asio.reference.ip__address.is_v6 [*is_v6]]]
- [Get whether the address is an IP version 6 address. ]
+ [fork_prepare]
+ [Notify the io_service that the process is about to fork. ]
   ]
-
- [
- [[link boost_asio.reference.ip__address.operator_eq_ [*operator=]]]
- [Assign from another address.
-
- Assign from an IPv4 address.
 
- Assign from an IPv6 address. ]
- ]
-
- [
- [[link boost_asio.reference.ip__address.to_string [*to_string]]]
- [Get the address as a string in dotted decimal format. ]
- ]
-
   [
- [[link boost_asio.reference.ip__address.to_v4 [*to_v4]]]
- [Get the address as an IP version 4 address. ]
+ [fork_parent]
+ [Notify the io_service that the process has forked and is the parent. ]
   ]
-
+
   [
- [[link boost_asio.reference.ip__address.to_v6 [*to_v6]]]
- [Get the address as an IP version 6 address. ]
+ [fork_child]
+ [Notify the io_service that the process has forked and is the child. ]
   ]
-
+
 ]
 
-[heading Friends]
-[table
- [[Name][Description]]
 
- [
- [[link boost_asio.reference.ip__address.operator_not__eq_ [*operator!=]]]
- [Compare two addresses for inequality. ]
- ]
-
- [
- [[link boost_asio.reference.ip__address.operator_lt_ [*operator<]]]
- [Compare addresses for ordering. ]
- ]
-
- [
- [[link boost_asio.reference.ip__address.operator_lt__eq_ [*operator<=]]]
- [Compare addresses for ordering. ]
- ]
-
- [
- [[link boost_asio.reference.ip__address.operator_eq__eq_ [*operator==]]]
- [Compare two addresses for equality. ]
- ]
-
- [
- [[link boost_asio.reference.ip__address.operator_gt_ [*operator>]]]
- [Compare addresses for ordering. ]
- ]
-
- [
- [[link boost_asio.reference.ip__address.operator_gt__eq_ [*operator>=]]]
- [Compare addresses for ordering. ]
- ]
-
-]
 
-[heading Related Functions]
-[table
- [[Name][Description]]
+[endsect]
 
- [
- [[link boost_asio.reference.ip__address.operator_lt__lt_ [*operator<<]]]
- [Output an address as a string. ]
- ]
-
-]
 
-The [link boost_asio.reference.ip__address `ip::address`] class provides the ability to use either IP version 4 or version 6 addresses.
 
+[section:has_service io_service::has_service]
 
-[heading Thread Safety]
-
-[*Distinct] [*objects:] Safe.
+[indexterm2 has_service..io_service]
+Determine if an [link boost_asio.reference.io_service `io_service`] contains a specified service type.
 
-[*Shared] [*objects:] Unsafe.
 
+ template<
+ typename ``[link boost_asio.reference.Service Service]``>
+ friend bool has_service(
+ io_service & ios);
 
 
-[heading Requirements]
+This function is used to determine whether the [link boost_asio.reference.io_service `io_service`] contains a service object corresponding to the given service type.
 
-[*Header: ][^boost/asio/ip/address.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
+[heading Parameters]
+
 
-[section:address ip::address::address]
+[variablelist
+
+[[ios][The [link boost_asio.reference.io_service `io_service`] object that owns the service.]]
 
-[indexterm2 address..ip::address]
-Default constructor.
+]
 
 
- ``[link boost_asio.reference.ip__address.address.overload1 address]``();
- `` [''''&raquo;''' [link boost_asio.reference.ip__address.address.overload1 more...]]``
+[heading Return Value]
+
+A boolean indicating whether the [link boost_asio.reference.io_service `io_service`] contains the service.
 
 
-Construct an address from an IPv4 address.
 
+[heading Requirements]
 
- ``[link boost_asio.reference.ip__address.address.overload2 address]``(
- const boost::asio::ip::address_v4 & ipv4_address);
- `` [''''&raquo;''' [link boost_asio.reference.ip__address.address.overload2 more...]]``
+[*Header: ][^boost/asio/io_service.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
-Construct an address from an IPv6 address.
 
+[endsect]
 
- ``[link boost_asio.reference.ip__address.address.overload3 address]``(
- const boost::asio::ip::address_v6 & ipv6_address);
- `` [''''&raquo;''' [link boost_asio.reference.ip__address.address.overload3 more...]]``
 
+[section:io_service io_service::io_service]
 
-Copy constructor.
+[indexterm2 io_service..io_service]
+Constructor.
 
 
- ``[link boost_asio.reference.ip__address.address.overload4 address]``(
- const address & other);
- `` [''''&raquo;''' [link boost_asio.reference.ip__address.address.overload4 more...]]``
+ ``[link boost_asio.reference.io_service.io_service.overload1 io_service]``();
+ `` [''''&raquo;''' [link boost_asio.reference.io_service.io_service.overload1 more...]]``
+
+ explicit ``[link boost_asio.reference.io_service.io_service.overload2 io_service]``(
+ std::size_t concurrency_hint);
+ `` [''''&raquo;''' [link boost_asio.reference.io_service.io_service.overload2 more...]]``
 
 
-[section:overload1 ip::address::address (1 of 4 overloads)]
+[section:overload1 io_service::io_service (1 of 2 overloads)]
 
 
-Default constructor.
+Constructor.
 
 
- address();
+ io_service();
 
 
 
@@ -54790,204 +54836,224 @@
 
 
 
-[section:overload2 ip::address::address (2 of 4 overloads)]
-
+[section:overload2 io_service::io_service (2 of 2 overloads)]
 
-Construct an address from an IPv4 address.
 
+Constructor.
 
- address(
- const boost::asio::ip::address_v4 & ipv4_address);
 
+ io_service(
+ std::size_t concurrency_hint);
 
 
-[endsect]
+Construct with a hint about the required level of concurrency.
 
 
+[heading Parameters]
+
 
-[section:overload3 ip::address::address (3 of 4 overloads)]
+[variablelist
+
+[[concurrency_hint][A suggestion to the implementation on how many threads it should allow to run simultaneously. ]]
 
+]
 
-Construct an address from an IPv6 address.
 
 
- address(
- const boost::asio::ip::address_v6 & ipv6_address);
 
+[endsect]
 
 
 [endsect]
 
 
+[section:notify_fork io_service::notify_fork]
 
-[section:overload4 ip::address::address (4 of 4 overloads)]
+[indexterm2 notify_fork..io_service]
+Notify the [link boost_asio.reference.io_service `io_service`] of a fork-related event.
 
 
-Copy constructor.
+ void notify_fork(
+ boost::asio::io_service::fork_event event);
 
 
- address(
- const address & other);
+This function is used to inform the [link boost_asio.reference.io_service `io_service`] that the process is about to fork, or has just forked. This allows the [link boost_asio.reference.io_service `io_service`], and the services it contains, to perform any necessary housekeeping to ensure correct operation following a fork.
 
+This function must not be called while any other [link boost_asio.reference.io_service `io_service`] function, or any function on an I/O object associated with the [link boost_asio.reference.io_service `io_service`], is being called in another thread. It is, however, safe to call this function from within a completion handler, provided no other thread is accessing the [link boost_asio.reference.io_service `io_service`].
 
 
-[endsect]
+[heading Parameters]
+
 
+[variablelist
+
+[[event][A fork-related event.]]
 
-[endsect]
+]
 
-[section:from_string ip::address::from_string]
 
-[indexterm2 from_string..ip::address]
-Create an address from an IPv4 address string in dotted decimal form, or from an IPv6 address in hexadecimal notation.
+[heading Exceptions]
+
 
+[variablelist
+
+[[boost::system::system_error][Thrown on failure. If the notification fails the [link boost_asio.reference.io_service `io_service`] object should no longer be used and should be destroyed.]]
 
- static address ``[link boost_asio.reference.ip__address.from_string.overload1 from_string]``(
- const char * str);
- `` [''''&raquo;''' [link boost_asio.reference.ip__address.from_string.overload1 more...]]``
+]
 
- static address ``[link boost_asio.reference.ip__address.from_string.overload2 from_string]``(
- const char * str,
- boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.ip__address.from_string.overload2 more...]]``
 
- static address ``[link boost_asio.reference.ip__address.from_string.overload3 from_string]``(
- const std::string & str);
- `` [''''&raquo;''' [link boost_asio.reference.ip__address.from_string.overload3 more...]]``
+[heading Example]
+
+The following code illustrates how to incorporate the `notify_fork()` function:
 
- static address ``[link boost_asio.reference.ip__address.from_string.overload4 from_string]``(
- const std::string & str,
- boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.ip__address.from_string.overload4 more...]]``
+ my_io_service.notify_fork(boost::asio::io_service::fork_prepare);
+ if (fork() == 0)
+ {
+ // This is the child process.
+ my_io_service.notify_fork(boost::asio::io_service::fork_child);
+ }
+ else
+ {
+ // This is the parent process.
+ my_io_service.notify_fork(boost::asio::io_service::fork_parent);
+ }
 
 
-[section:overload1 ip::address::from_string (1 of 4 overloads)]
 
 
-Create an address from an IPv4 address string in dotted decimal form, or from an IPv6 address in hexadecimal notation.
 
+[heading Remarks]
+
+For each service object `svc` in the [link boost_asio.reference.io_service `io_service`] set, performs `svc->fork_service();`. When processing the fork\_prepare event, services are visited in reverse order of the beginning of service object lifetime. Otherwise, services are visited in order of the beginning of service object lifetime.
 
- static address from_string(
- const char * str);
 
 
 
 [endsect]
 
 
+[section:poll io_service::poll]
 
-[section:overload2 ip::address::from_string (2 of 4 overloads)]
-
+[indexterm2 poll..io_service]
+Run the [link boost_asio.reference.io_service `io_service`] object's event processing loop to execute ready handlers.
 
-Create an address from an IPv4 address string in dotted decimal form, or from an IPv6 address in hexadecimal notation.
 
+ std::size_t ``[link boost_asio.reference.io_service.poll.overload1 poll]``();
+ `` [''''&raquo;''' [link boost_asio.reference.io_service.poll.overload1 more...]]``
 
- static address from_string(
- const char * str,
+ std::size_t ``[link boost_asio.reference.io_service.poll.overload2 poll]``(
       boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.io_service.poll.overload2 more...]]``
 
 
+[section:overload1 io_service::poll (1 of 2 overloads)]
 
-[endsect]
-
-
-
-[section:overload3 ip::address::from_string (3 of 4 overloads)]
-
-
-Create an address from an IPv4 address string in dotted decimal form, or from an IPv6 address in hexadecimal notation.
 
+Run the [link boost_asio.reference.io_service `io_service`] object's event processing loop to execute ready handlers.
 
- static address from_string(
- const std::string & str);
 
+ std::size_t poll();
 
 
-[endsect]
+The `poll()` function runs handlers that are ready to run, without blocking, until the [link boost_asio.reference.io_service `io_service`] has been stopped or there are no more ready handlers.
 
 
+[heading Return Value]
+
+The number of handlers that were executed.
 
-[section:overload4 ip::address::from_string (4 of 4 overloads)]
 
+[heading Exceptions]
+
 
-Create an address from an IPv4 address string in dotted decimal form, or from an IPv6 address in hexadecimal notation.
+[variablelist
+
+[[boost::system::system_error][Thrown on failure. ]]
 
+]
 
- static address from_string(
- const std::string & str,
- boost::system::error_code & ec);
 
 
 
 [endsect]
 
 
-[endsect]
 
+[section:overload2 io_service::poll (2 of 2 overloads)]
 
-[section:is_loopback ip::address::is_loopback]
 
-[indexterm2 is_loopback..ip::address]
-Determine whether the address is a loopback address.
+Run the [link boost_asio.reference.io_service `io_service`] object's event processing loop to execute ready handlers.
 
 
- bool is_loopback() const;
+ std::size_t poll(
+ boost::system::error_code & ec);
 
 
+The `poll()` function runs handlers that are ready to run, without blocking, until the [link boost_asio.reference.io_service `io_service`] has been stopped or there are no more ready handlers.
 
-[endsect]
 
+[heading Parameters]
+
 
+[variablelist
+
+[[ec][Set to indicate what error occurred, if any.]]
 
-[section:is_multicast ip::address::is_multicast]
+]
 
-[indexterm2 is_multicast..ip::address]
-Determine whether the address is a multicast address.
 
+[heading Return Value]
+
+The number of handlers that were executed.
 
- bool is_multicast() const;
 
 
 
 [endsect]
 
 
+[endsect]
 
-[section:is_unspecified ip::address::is_unspecified]
-
-[indexterm2 is_unspecified..ip::address]
-Determine whether the address is unspecified.
-
+[section:poll_one io_service::poll_one]
 
- bool is_unspecified() const;
+[indexterm2 poll_one..io_service]
+Run the [link boost_asio.reference.io_service `io_service`] object's event processing loop to execute one ready handler.
 
 
+ std::size_t ``[link boost_asio.reference.io_service.poll_one.overload1 poll_one]``();
+ `` [''''&raquo;''' [link boost_asio.reference.io_service.poll_one.overload1 more...]]``
 
-[endsect]
+ std::size_t ``[link boost_asio.reference.io_service.poll_one.overload2 poll_one]``(
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.io_service.poll_one.overload2 more...]]``
 
 
+[section:overload1 io_service::poll_one (1 of 2 overloads)]
 
-[section:is_v4 ip::address::is_v4]
 
-[indexterm2 is_v4..ip::address]
-Get whether the address is an IP version 4 address.
+Run the [link boost_asio.reference.io_service `io_service`] object's event processing loop to execute one ready handler.
 
 
- bool is_v4() const;
+ std::size_t poll_one();
 
 
+The `poll_one()` function runs at most one handler that is ready to run, without blocking.
 
-[endsect]
 
+[heading Return Value]
+
+The number of handlers that were executed.
 
 
-[section:is_v6 ip::address::is_v6]
+[heading Exceptions]
+
 
-[indexterm2 is_v6..ip::address]
-Get whether the address is an IP version 6 address.
+[variablelist
+
+[[boost::system::system_error][Thrown on failure. ]]
 
+]
 
- bool is_v6() const;
 
 
 
@@ -54995,65 +55061,57 @@
 
 
 
-[section:operator_not__eq_ ip::address::operator!=]
-
-[indexterm2 operator!=..ip::address]
-Compare two addresses for inequality.
-
-
- friend bool operator!=(
- const address & a1,
- const address & a2);
+[section:overload2 io_service::poll_one (2 of 2 overloads)]
 
 
-[heading Requirements]
+Run the [link boost_asio.reference.io_service `io_service`] object's event processing loop to execute one ready handler.
 
-[*Header: ][^boost/asio/ip/address.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
+ std::size_t poll_one(
+ boost::system::error_code & ec);
 
 
-[endsect]
+The `poll_one()` function runs at most one handler that is ready to run, without blocking.
 
 
+[heading Parameters]
+
 
-[section:operator_lt_ ip::address::operator<]
+[variablelist
+
+[[ec][Set to indicate what error occurred, if any.]]
 
-[indexterm2 operator<..ip::address]
-Compare addresses for ordering.
+]
 
 
- friend bool operator<(
- const address & a1,
- const address & a2);
+[heading Return Value]
+
+The number of handlers that were executed.
 
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/ip/address.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
+[endsect]
 
 
 [endsect]
 
 
+[section:post io_service::post]
 
-[section:operator_lt__lt_ ip::address::operator<<]
-
-[indexterm2 operator<<..ip::address]
-Output an address as a string.
+[indexterm2 post..io_service]
+Request the [link boost_asio.reference.io_service `io_service`] to invoke the given handler and return immediately.
 
 
   template<
- typename Elem,
- typename Traits>
- std::basic_ostream< Elem, Traits > & operator<<(
- std::basic_ostream< Elem, Traits > & os,
- const address & addr);
+ typename ``[link boost_asio.reference.CompletionHandler CompletionHandler]``>
+ void post(
+ CompletionHandler handler);
 
 
-Used to output a human-readable string for a specified address.
+This function is used to ask the [link boost_asio.reference.io_service `io_service`] to execute the given handler, but without allowing the [link boost_asio.reference.io_service `io_service`] to call the handler from inside this function.
+
+The [link boost_asio.reference.io_service `io_service`] guarantees that the handler will only be called in a thread in which the `run()`, `run_one()`, `poll()` or `poll_one()` member functions is currently being invoked.
 
 
 [heading Parameters]
@@ -55061,250 +55119,256 @@
 
 [variablelist
   
-[[os][The output stream to which the string will be written.]]
-
-[[addr][The address to be written.]]
+[[handler][The handler to be called. The [link boost_asio.reference.io_service `io_service`] will make a copy of the handler object as required. The function signature of the handler must be:
+``
+ void handler();
+``
+]]
 
 ]
 
 
-[heading Return Value]
+[heading Remarks]
       
-The output stream.
+This function throws an exception only if:
 
 
+* the handler's `asio_handler_allocate` function; or
 
 
-[endsect]
+* the handler's copy constructor
 
+throws an exception.
 
 
-[section:operator_lt__eq_ ip::address::operator<=]
+[endsect]
 
-[indexterm2 operator<=..ip::address]
-Compare addresses for ordering.
 
 
- friend bool operator<=(
- const address & a1,
- const address & a2);
+[section:reset io_service::reset]
 
+[indexterm2 reset..io_service]
+Reset the [link boost_asio.reference.io_service `io_service`] in preparation for a subsequent `run()` invocation.
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/ip/address.hpp]
+ void reset();
 
-[*Convenience header: ][^boost/asio.hpp]
 
+This function must be called prior to any second or later set of invocations of the `run()`, `run_one()`, `poll()` or `poll_one()` functions when a previous invocation of these functions returned due to the [link boost_asio.reference.io_service `io_service`] being stopped or running out of work. After a call to `reset()`, the [link boost_asio.reference.io_service `io_service`] object's `stopped()` function will return `false`.
 
-[endsect]
+This function must not be called while there are any unfinished calls to the `run()`, `run_one()`, `poll()` or `poll_one()` functions.
 
 
-[section:operator_eq_ ip::address::operator=]
+[endsect]
 
-[indexterm2 operator=..ip::address]
-Assign from another address.
 
+[section:run io_service::run]
 
- address & ``[link boost_asio.reference.ip__address.operator_eq_.overload1 operator=]``(
- const address & other);
- `` [''''&raquo;''' [link boost_asio.reference.ip__address.operator_eq_.overload1 more...]]``
+[indexterm2 run..io_service]
+Run the [link boost_asio.reference.io_service `io_service`] object's event processing loop.
 
 
-Assign from an IPv4 address.
+ std::size_t ``[link boost_asio.reference.io_service.run.overload1 run]``();
+ `` [''''&raquo;''' [link boost_asio.reference.io_service.run.overload1 more...]]``
 
+ std::size_t ``[link boost_asio.reference.io_service.run.overload2 run]``(
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.io_service.run.overload2 more...]]``
 
- address & ``[link boost_asio.reference.ip__address.operator_eq_.overload2 operator=]``(
- const boost::asio::ip::address_v4 & ipv4_address);
- `` [''''&raquo;''' [link boost_asio.reference.ip__address.operator_eq_.overload2 more...]]``
 
+[section:overload1 io_service::run (1 of 2 overloads)]
 
-Assign from an IPv6 address.
 
+Run the [link boost_asio.reference.io_service `io_service`] object's event processing loop.
 
- address & ``[link boost_asio.reference.ip__address.operator_eq_.overload3 operator=]``(
- const boost::asio::ip::address_v6 & ipv6_address);
- `` [''''&raquo;''' [link boost_asio.reference.ip__address.operator_eq_.overload3 more...]]``
 
+ std::size_t run();
 
-[section:overload1 ip::address::operator= (1 of 3 overloads)]
 
+The `run()` function blocks until all work has finished and there are no more handlers to be dispatched, or until the [link boost_asio.reference.io_service `io_service`] has been stopped.
 
-Assign from another address.
-
-
- address & operator=(
- const address & other);
-
+Multiple threads may call the `run()` function to set up a pool of threads from which the [link boost_asio.reference.io_service `io_service`] may execute handlers. All threads that are waiting in the pool are equivalent and the [link boost_asio.reference.io_service `io_service`] may choose any one of them to invoke a handler.
 
+A normal exit from the `run()` function implies that the [link boost_asio.reference.io_service `io_service`] object is stopped (the `stopped()` function returns `true`). Subsequent calls to `run()`, `run_one()`, `poll()` or `poll_one()` will return immediately unless there is a prior call to `reset()`.
 
-[endsect]
 
+[heading Return Value]
+
+The number of handlers that were executed.
 
 
-[section:overload2 ip::address::operator= (2 of 3 overloads)]
+[heading Exceptions]
+
 
+[variablelist
+
+[[boost::system::system_error][Thrown on failure.]]
 
-Assign from an IPv4 address.
+]
 
 
- address & operator=(
- const boost::asio::ip::address_v4 & ipv4_address);
+[heading Remarks]
+
+The `run()` function must not be called from a thread that is currently calling one of `run()`, `run_one()`, `poll()` or `poll_one()` on the same [link boost_asio.reference.io_service `io_service`] object.
 
+The `poll()` function may also be used to dispatch ready handlers, but without blocking.
 
 
 [endsect]
 
 
 
-[section:overload3 ip::address::operator= (3 of 3 overloads)]
-
+[section:overload2 io_service::run (2 of 2 overloads)]
 
-Assign from an IPv6 address.
 
+Run the [link boost_asio.reference.io_service `io_service`] object's event processing loop.
 
- address & operator=(
- const boost::asio::ip::address_v6 & ipv6_address);
 
+ std::size_t run(
+ boost::system::error_code & ec);
 
 
-[endsect]
+The `run()` function blocks until all work has finished and there are no more handlers to be dispatched, or until the [link boost_asio.reference.io_service `io_service`] has been stopped.
 
+Multiple threads may call the `run()` function to set up a pool of threads from which the [link boost_asio.reference.io_service `io_service`] may execute handlers. All threads that are waiting in the pool are equivalent and the [link boost_asio.reference.io_service `io_service`] may choose any one of them to invoke a handler.
 
-[endsect]
+A normal exit from the `run()` function implies that the [link boost_asio.reference.io_service `io_service`] object is stopped (the `stopped()` function returns `true`). Subsequent calls to `run()`, `run_one()`, `poll()` or `poll_one()` will return immediately unless there is a prior call to `reset()`.
 
 
-[section:operator_eq__eq_ ip::address::operator==]
+[heading Parameters]
+
 
-[indexterm2 operator==..ip::address]
-Compare two addresses for equality.
+[variablelist
+
+[[ec][Set to indicate what error occurred, if any.]]
 
+]
 
- friend bool operator==(
- const address & a1,
- const address & a2);
 
+[heading Return Value]
+
+The number of handlers that were executed.
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/ip/address.hpp]
+[heading Remarks]
+
+The `run()` function must not be called from a thread that is currently calling one of `run()`, `run_one()`, `poll()` or `poll_one()` on the same [link boost_asio.reference.io_service `io_service`] object.
 
-[*Convenience header: ][^boost/asio.hpp]
+The `poll()` function may also be used to dispatch ready handlers, but without blocking.
 
 
 [endsect]
 
 
+[endsect]
 
-[section:operator_gt_ ip::address::operator>]
+[section:run_one io_service::run_one]
 
-[indexterm2 operator>..ip::address]
-Compare addresses for ordering.
+[indexterm2 run_one..io_service]
+Run the [link boost_asio.reference.io_service `io_service`] object's event processing loop to execute at most one handler.
 
 
- friend bool operator>(
- const address & a1,
- const address & a2);
+ std::size_t ``[link boost_asio.reference.io_service.run_one.overload1 run_one]``();
+ `` [''''&raquo;''' [link boost_asio.reference.io_service.run_one.overload1 more...]]``
 
+ std::size_t ``[link boost_asio.reference.io_service.run_one.overload2 run_one]``(
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.io_service.run_one.overload2 more...]]``
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/ip/address.hpp]
+[section:overload1 io_service::run_one (1 of 2 overloads)]
 
-[*Convenience header: ][^boost/asio.hpp]
 
+Run the [link boost_asio.reference.io_service `io_service`] object's event processing loop to execute at most one handler.
 
-[endsect]
 
+ std::size_t run_one();
 
 
-[section:operator_gt__eq_ ip::address::operator>=]
+The `run_one()` function blocks until one handler has been dispatched, or until the [link boost_asio.reference.io_service `io_service`] has been stopped.
 
-[indexterm2 operator>=..ip::address]
-Compare addresses for ordering.
 
+[heading Return Value]
+
+The number of handlers that were executed. A zero return value implies that the [link boost_asio.reference.io_service `io_service`] object is stopped (the `stopped()` function returns `true`). Subsequent calls to `run()`, `run_one()`, `poll()` or `poll_one()` will return immediately unless there is a prior call to `reset()`.
 
- friend bool operator>=(
- const address & a1,
- const address & a2);
 
+[heading Exceptions]
+
 
-[heading Requirements]
+[variablelist
+
+[[boost::system::system_error][Thrown on failure. ]]
+
+]
 
-[*Header: ][^boost/asio/ip/address.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
-[section:to_string ip::address::to_string]
 
-[indexterm2 to_string..ip::address]
-Get the address as a string in dotted decimal format.
+[section:overload2 io_service::run_one (2 of 2 overloads)]
 
 
- std::string ``[link boost_asio.reference.ip__address.to_string.overload1 to_string]``() const;
- `` [''''&raquo;''' [link boost_asio.reference.ip__address.to_string.overload1 more...]]``
+Run the [link boost_asio.reference.io_service `io_service`] object's event processing loop to execute at most one handler.
 
- std::string ``[link boost_asio.reference.ip__address.to_string.overload2 to_string]``(
- boost::system::error_code & ec) const;
- `` [''''&raquo;''' [link boost_asio.reference.ip__address.to_string.overload2 more...]]``
 
+ std::size_t run_one(
+ boost::system::error_code & ec);
 
-[section:overload1 ip::address::to_string (1 of 2 overloads)]
+
+The `run_one()` function blocks until one handler has been dispatched, or until the [link boost_asio.reference.io_service `io_service`] has been stopped.
 
 
-Get the address as a string in dotted decimal format.
+[heading Return Value]
+
+The number of handlers that were executed. A zero return value implies that the [link boost_asio.reference.io_service `io_service`] object is stopped (the `stopped()` function returns `true`). Subsequent calls to `run()`, `run_one()`, `poll()` or `poll_one()` will return immediately unless there is a prior call to `reset()`.
 
+The number of handlers that were executed.
 
- std::string to_string() const;
 
 
 
 [endsect]
 
 
-
-[section:overload2 ip::address::to_string (2 of 2 overloads)]
+[endsect]
 
 
-Get the address as a string in dotted decimal format.
+[section:stop io_service::stop]
 
+[indexterm2 stop..io_service]
+Stop the [link boost_asio.reference.io_service `io_service`] object's event processing loop.
 
- std::string to_string(
- boost::system::error_code & ec) const;
 
+ void stop();
 
 
-[endsect]
+This function does not block, but instead simply signals the [link boost_asio.reference.io_service `io_service`] to stop. All invocations of its `run()` or `run_one()` member functions should return as soon as possible. Subsequent calls to `run()`, `run_one()`, `poll()` or `poll_one()` will return immediately until `reset()` is called.
 
 
 [endsect]
 
 
-[section:to_v4 ip::address::to_v4]
-
-[indexterm2 to_v4..ip::address]
-Get the address as an IP version 4 address.
-
-
- boost::asio::ip::address_v4 to_v4() const;
 
+[section:stopped io_service::stopped]
 
+[indexterm2 stopped..io_service]
+Determine whether the [link boost_asio.reference.io_service `io_service`] object has been stopped.
 
-[endsect]
 
+ bool stopped() const;
 
 
-[section:to_v6 ip::address::to_v6]
+This function is used to determine whether an [link boost_asio.reference.io_service `io_service`] object has been stopped, either through an explicit call to `stop()`, or due to running out of work. When an [link boost_asio.reference.io_service `io_service`] object is stopped, calls to `run()`, `run_one()`, `poll()` or `poll_one()` will return immediately without invoking any handlers.
 
-[indexterm2 to_v6..ip::address]
-Get the address as an IP version 6 address.
 
+[heading Return Value]
+
+`true` if the [link boost_asio.reference.io_service `io_service`] object is stopped, otherwise `false`.
 
- boost::asio::ip::address_v6 to_v6() const;
 
 
 
@@ -55312,259 +55376,139 @@
 
 
 
-[endsect]
-
-[section:ip__address_v4 ip::address_v4]
+[section:use_service io_service::use_service]
 
+[indexterm2 use_service..io_service]
+Obtain the service object corresponding to the given type.
 
-Implements IP version 4 style addresses.
 
+ template<
+ typename ``[link boost_asio.reference.Service Service]``>
+ friend Service & use_service(
+ io_service & ios);
 
- class address_v4
 
+This function is used to locate a service object that corresponds to the given service type. If there is no existing implementation of the service, then the [link boost_asio.reference.io_service `io_service`] will create a new instance of the service.
 
-[heading Types]
-[table
- [[Name][Description]]
 
- [
+[heading Parameters]
+
 
- [[link boost_asio.reference.ip__address_v4.bytes_type [*bytes_type]]]
- [The type used to represent an address as an array of bytes. ]
+[variablelist
   
- ]
+[[ios][The [link boost_asio.reference.io_service `io_service`] object that owns the service.]]
 
 ]
 
-[heading Member Functions]
-[table
- [[Name][Description]]
 
- [
- [[link boost_asio.reference.ip__address_v4.address_v4 [*address_v4]]]
- [Default constructor.
+[heading Return Value]
+
+The service interface implementing the specified service type. Ownership of the service interface is not transferred to the caller.
 
- Construct an address from raw bytes.
 
- Construct an address from a unsigned long in host byte order.
 
- Copy constructor. ]
- ]
-
- [
- [[link boost_asio.reference.ip__address_v4.any [*any]]]
- [Obtain an address object that represents any address. ]
- ]
-
- [
- [[link boost_asio.reference.ip__address_v4.broadcast [*broadcast]]]
- [Obtain an address object that represents the broadcast address.
+[heading Requirements]
 
- Obtain an address object that represents the broadcast address that corresponds to the specified address and netmask. ]
- ]
-
- [
- [[link boost_asio.reference.ip__address_v4.from_string [*from_string]]]
- [Create an address from an IP address string in dotted decimal form. ]
- ]
-
- [
- [[link boost_asio.reference.ip__address_v4.is_class_a [*is_class_a]]]
- [Determine whether the address is a class A address. ]
- ]
-
- [
- [[link boost_asio.reference.ip__address_v4.is_class_b [*is_class_b]]]
- [Determine whether the address is a class B address. ]
- ]
-
- [
- [[link boost_asio.reference.ip__address_v4.is_class_c [*is_class_c]]]
- [Determine whether the address is a class C address. ]
- ]
-
- [
- [[link boost_asio.reference.ip__address_v4.is_loopback [*is_loopback]]]
- [Determine whether the address is a loopback address. ]
- ]
-
- [
- [[link boost_asio.reference.ip__address_v4.is_multicast [*is_multicast]]]
- [Determine whether the address is a multicast address. ]
- ]
-
- [
- [[link boost_asio.reference.ip__address_v4.is_unspecified [*is_unspecified]]]
- [Determine whether the address is unspecified. ]
- ]
-
- [
- [[link boost_asio.reference.ip__address_v4.loopback [*loopback]]]
- [Obtain an address object that represents the loopback address. ]
- ]
-
- [
- [[link boost_asio.reference.ip__address_v4.netmask [*netmask]]]
- [Obtain the netmask that corresponds to the address, based on its address class. ]
- ]
-
- [
- [[link boost_asio.reference.ip__address_v4.operator_eq_ [*operator=]]]
- [Assign from another address. ]
- ]
-
- [
- [[link boost_asio.reference.ip__address_v4.to_bytes [*to_bytes]]]
- [Get the address in bytes, in network byte order. ]
- ]
-
- [
- [[link boost_asio.reference.ip__address_v4.to_string [*to_string]]]
- [Get the address as a string in dotted decimal format. ]
- ]
-
- [
- [[link boost_asio.reference.ip__address_v4.to_ulong [*to_ulong]]]
- [Get the address as an unsigned long in host byte order. ]
- ]
-
-]
+[*Header: ][^boost/asio/io_service.hpp]
 
-[heading Friends]
-[table
- [[Name][Description]]
+[*Convenience header: ][^boost/asio.hpp]
 
- [
- [[link boost_asio.reference.ip__address_v4.operator_not__eq_ [*operator!=]]]
- [Compare two addresses for inequality. ]
- ]
-
- [
- [[link boost_asio.reference.ip__address_v4.operator_lt_ [*operator<]]]
- [Compare addresses for ordering. ]
- ]
-
- [
- [[link boost_asio.reference.ip__address_v4.operator_lt__eq_ [*operator<=]]]
- [Compare addresses for ordering. ]
- ]
-
- [
- [[link boost_asio.reference.ip__address_v4.operator_eq__eq_ [*operator==]]]
- [Compare two addresses for equality. ]
- ]
-
- [
- [[link boost_asio.reference.ip__address_v4.operator_gt_ [*operator>]]]
- [Compare addresses for ordering. ]
- ]
-
- [
- [[link boost_asio.reference.ip__address_v4.operator_gt__eq_ [*operator>=]]]
- [Compare addresses for ordering. ]
- ]
-
-]
 
-[heading Related Functions]
-[table
- [[Name][Description]]
+[endsect]
 
- [
- [[link boost_asio.reference.ip__address_v4.operator_lt__lt_ [*operator<<]]]
- [Output an address as a string. ]
- ]
-
-]
 
-The [link boost_asio.reference.ip__address_v4 `ip::address_v4`] class provides the ability to use and manipulate IP version 4 addresses.
 
+[section:wrap io_service::wrap]
 
-[heading Thread Safety]
-
-[*Distinct] [*objects:] Safe.
+[indexterm2 wrap..io_service]
+Create a new handler that automatically dispatches the wrapped handler on the [link boost_asio.reference.io_service `io_service`].
 
-[*Shared] [*objects:] Unsafe.
 
+ template<
+ typename ``[link boost_asio.reference.Handler Handler]``>
+ unspecified wrap(
+ Handler handler);
 
 
-[heading Requirements]
+This function is used to create a new handler function object that, when invoked, will automatically pass the wrapped handler to the [link boost_asio.reference.io_service `io_service`] object's dispatch function.
 
-[*Header: ][^boost/asio/ip/address_v4.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
+[heading Parameters]
+
 
-[section:address_v4 ip::address_v4::address_v4]
+[variablelist
+
+[[handler][The handler to be wrapped. The [link boost_asio.reference.io_service `io_service`] will make a copy of the handler object as required. The function signature of the handler must be:
+``
+ void handler(A1 a1, ... An an);
+``
+]]
 
-[indexterm2 address_v4..ip::address_v4]
-Default constructor.
+]
 
 
- ``[link boost_asio.reference.ip__address_v4.address_v4.overload1 address_v4]``();
- `` [''''&raquo;''' [link boost_asio.reference.ip__address_v4.address_v4.overload1 more...]]``
+[heading Return Value]
+
+A function object that, when invoked, passes the wrapped handler to the [link boost_asio.reference.io_service `io_service`] object's dispatch function. Given a function object with the signature:
 
+ R f(A1 a1, ... An an);
 
-Construct an address from raw bytes.
 
+If this function object is passed to the wrap function like so:
 
- explicit ``[link boost_asio.reference.ip__address_v4.address_v4.overload2 address_v4]``(
- const bytes_type & bytes);
- `` [''''&raquo;''' [link boost_asio.reference.ip__address_v4.address_v4.overload2 more...]]``
+ io_service.wrap(f);
 
 
-Construct an address from a unsigned long in host byte order.
+then the return value is a function object with the signature
 
+ void g(A1 a1, ... An an);
 
- explicit ``[link boost_asio.reference.ip__address_v4.address_v4.overload3 address_v4]``(
- unsigned long addr);
- `` [''''&raquo;''' [link boost_asio.reference.ip__address_v4.address_v4.overload3 more...]]``
 
+that, when invoked, executes code equivalent to:
 
-Copy constructor.
+ io_service.dispatch(boost::bind(f, a1, ... an));
 
 
- ``[link boost_asio.reference.ip__address_v4.address_v4.overload4 address_v4]``(
- const address_v4 & other);
- `` [''''&raquo;''' [link boost_asio.reference.ip__address_v4.address_v4.overload4 more...]]``
 
 
-[section:overload1 ip::address_v4::address_v4 (1 of 4 overloads)]
 
 
-Default constructor.
 
+[endsect]
 
- address_v4();
 
 
+[section:_io_service io_service::~io_service]
 
-[endsect]
+[indexterm2 ~io_service..io_service]
+Destructor.
 
 
+ ~io_service();
 
-[section:overload2 ip::address_v4::address_v4 (2 of 4 overloads)]
 
+On destruction, the [link boost_asio.reference.io_service `io_service`] performs the following sequence of operations:
 
-Construct an address from raw bytes.
 
+* For each service object `svc` in the [link boost_asio.reference.io_service `io_service`] set, in reverse order of the beginning of service object lifetime, performs `svc->shutdown_service()`.
 
- address_v4(
- const bytes_type & bytes);
 
+* Uninvoked handler objects that were scheduled for deferred invocation on the [link boost_asio.reference.io_service `io_service`], or any associated strand, are destroyed.
 
 
-[endsect]
+* For each service object `svc` in the [link boost_asio.reference.io_service `io_service`] set, in reverse order of the beginning of service object lifetime, performs `delete static_cast<io_service::service*>(svc)`.
 
 
+[heading Remarks]
+
+The destruction sequence described above permits programs to simplify their resource management by using `shared_ptr<>`. Where an object's lifetime is tied to the lifetime of a connection (or some other sequence of asynchronous operations), a `shared_ptr` to the object would be bound into the handlers for all asynchronous operations associated with it. This works as follows:
 
-[section:overload3 ip::address_v4::address_v4 (3 of 4 overloads)]
 
+* When a single connection ends, all associated asynchronous operations complete. The corresponding handler objects are destroyed, and all `shared_ptr` references to the objects are destroyed.
 
-Construct an address from a unsigned long in host byte order.
 
+* To shut down the whole program, the [link boost_asio.reference.io_service `io_service`] function `stop()` is called to terminate any `run()` calls as soon as possible. The [link boost_asio.reference.io_service `io_service`] destructor defined above destroys all handlers, causing all `shared_ptr` references to all connection objects to be destroyed.
 
- address_v4(
- unsigned long addr);
 
 
 
@@ -55572,163 +55516,191 @@
 
 
 
-[section:overload4 ip::address_v4::address_v4 (4 of 4 overloads)]
+[endsect]
 
+[section:io_service__id io_service::id]
 
-Copy constructor.
 
+Class used to uniquely identify a service.
 
- address_v4(
- const address_v4 & other);
 
+ class id :
+ noncopyable
 
 
-[endsect]
+[heading Member Functions]
+[table
+ [[Name][Description]]
 
+ [
+ [[link boost_asio.reference.io_service__id.id [*id]]]
+ [Constructor. ]
+ ]
+
+]
 
-[endsect]
+[heading Requirements]
 
+[*Header: ][^boost/asio/io_service.hpp]
 
-[section:any ip::address_v4::any]
+[*Convenience header: ][^boost/asio.hpp]
 
-[indexterm2 any..ip::address_v4]
-Obtain an address object that represents any address.
 
+[section:id io_service::id::id]
 
- static address_v4 any();
+[indexterm2 id..io_service::id]
+Constructor.
 
 
+ id();
 
-[endsect]
 
 
-[section:broadcast ip::address_v4::broadcast]
+[endsect]
 
-[indexterm2 broadcast..ip::address_v4]
-Obtain an address object that represents the broadcast address.
 
 
- static address_v4 ``[link boost_asio.reference.ip__address_v4.broadcast.overload1 broadcast]``();
- `` [''''&raquo;''' [link boost_asio.reference.ip__address_v4.broadcast.overload1 more...]]``
+[endsect]
 
+[section:io_service__service io_service::service]
 
-Obtain an address object that represents the broadcast address that corresponds to the specified address and netmask.
 
+Base class for all [link boost_asio.reference.io_service `io_service`] services.
 
- static address_v4 ``[link boost_asio.reference.ip__address_v4.broadcast.overload2 broadcast]``(
- const address_v4 & addr,
- const address_v4 & mask);
- `` [''''&raquo;''' [link boost_asio.reference.ip__address_v4.broadcast.overload2 more...]]``
 
+ class service :
+ noncopyable
 
-[section:overload1 ip::address_v4::broadcast (1 of 2 overloads)]
 
+[heading Member Functions]
+[table
+ [[Name][Description]]
 
-Obtain an address object that represents the broadcast address.
+ [
+ [[link boost_asio.reference.io_service__service.get_io_service [*get_io_service]]]
+ [Get the io_service object that owns the service. ]
+ ]
+
+]
 
+[heading Protected Member Functions]
+[table
+ [[Name][Description]]
 
- static address_v4 broadcast();
+ [
+ [[link boost_asio.reference.io_service__service.service [*service]]]
+ [Constructor. ]
+ ]
+
+ [
+ [[link boost_asio.reference.io_service__service._service [*~service]]]
+ [Destructor. ]
+ ]
+
+]
 
+[heading Private Member Functions]
+[table
+ [[Name][Description]]
 
+ [
+ [[link boost_asio.reference.io_service__service.fork_service [*fork_service]]]
+ [Handle notification of a fork-related event to perform any necessary housekeeping. ]
+ ]
+
+ [
+ [[link boost_asio.reference.io_service__service.shutdown_service [*shutdown_service]]]
+ [Destroy all user-defined handler objects owned by the service. ]
+ ]
+
+]
 
-[endsect]
+[heading Requirements]
 
+[*Header: ][^boost/asio/io_service.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
-[section:overload2 ip::address_v4::broadcast (2 of 2 overloads)]
 
+[section:get_io_service io_service::service::get_io_service]
 
-Obtain an address object that represents the broadcast address that corresponds to the specified address and netmask.
+[indexterm2 get_io_service..io_service::service]
+Get the [link boost_asio.reference.io_service `io_service`] object that owns the service.
 
 
- static address_v4 broadcast(
- const address_v4 & addr,
- const address_v4 & mask);
+ boost::asio::io_service & get_io_service();
 
 
 
 [endsect]
 
 
-[endsect]
-
 
-[section:bytes_type ip::address_v4::bytes_type]
+[section:service io_service::service::service]
 
-[indexterm2 bytes_type..ip::address_v4]
-The type used to represent an address as an array of bytes.
+[indexterm2 service..io_service::service]
+Constructor.
 
 
- typedef array< unsigned char, 4 > bytes_type;
+ service(
+ boost::asio::io_service & owner);
 
 
 
+[heading Parameters]
+
 
-[heading Remarks]
-
-This type is defined in terms of the C++0x template `std::array` when it is available. Otherwise, it uses `boost:array`.
+[variablelist
+
+[[owner][The [link boost_asio.reference.io_service `io_service`] object that owns the service. ]]
 
+]
 
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/ip/address_v4.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
+[endsect]
 
 
-[endsect]
 
+[section:_service io_service::service::~service]
 
-[section:from_string ip::address_v4::from_string]
+[indexterm2 ~service..io_service::service]
+Destructor.
 
-[indexterm2 from_string..ip::address_v4]
-Create an address from an IP address string in dotted decimal form.
 
+ virtual ~service();
 
- static address_v4 ``[link boost_asio.reference.ip__address_v4.from_string.overload1 from_string]``(
- const char * str);
- `` [''''&raquo;''' [link boost_asio.reference.ip__address_v4.from_string.overload1 more...]]``
 
- static address_v4 ``[link boost_asio.reference.ip__address_v4.from_string.overload2 from_string]``(
- const char * str,
- boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.ip__address_v4.from_string.overload2 more...]]``
 
- static address_v4 ``[link boost_asio.reference.ip__address_v4.from_string.overload3 from_string]``(
- const std::string & str);
- `` [''''&raquo;''' [link boost_asio.reference.ip__address_v4.from_string.overload3 more...]]``
+[endsect]
 
- static address_v4 ``[link boost_asio.reference.ip__address_v4.from_string.overload4 from_string]``(
- const std::string & str,
- boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.ip__address_v4.from_string.overload4 more...]]``
 
 
-[section:overload1 ip::address_v4::from_string (1 of 4 overloads)]
+[section:fork_service io_service::service::fork_service]
 
+[indexterm2 fork_service..io_service::service]
+Handle notification of a fork-related event to perform any necessary housekeeping.
 
-Create an address from an IP address string in dotted decimal form.
 
+ virtual void fork_service(
+ boost::asio::io_service::fork_event event);
 
- static address_v4 from_string(
- const char * str);
 
+This function is not a pure virtual so that services only have to implement it if necessary. The default implementation does nothing.
 
 
 [endsect]
 
 
 
-[section:overload2 ip::address_v4::from_string (2 of 4 overloads)]
-
+[section:shutdown_service io_service::service::shutdown_service]
 
-Create an address from an IP address string in dotted decimal form.
+[indexterm2 shutdown_service..io_service::service]
+Destroy all user-defined handler objects owned by the service.
 
 
- static address_v4 from_string(
- const char * str,
- boost::system::error_code & ec);
+ void shutdown_service();
 
 
 
@@ -55736,102 +55708,148 @@
 
 
 
-[section:overload3 ip::address_v4::from_string (3 of 4 overloads)]
-
-
-Create an address from an IP address string in dotted decimal form.
+[endsect]
 
+[section:io_service__strand io_service::strand]
 
- static address_v4 from_string(
- const std::string & str);
 
+Provides serialised handler execution.
 
 
-[endsect]
+ class strand
 
 
+[heading Member Functions]
+[table
+ [[Name][Description]]
 
-[section:overload4 ip::address_v4::from_string (4 of 4 overloads)]
+ [
+ [[link boost_asio.reference.io_service__strand.dispatch [*dispatch]]]
+ [Request the strand to invoke the given handler. ]
+ ]
+
+ [
+ [[link boost_asio.reference.io_service__strand.get_io_service [*get_io_service]]]
+ [Get the io_service associated with the strand. ]
+ ]
+
+ [
+ [[link boost_asio.reference.io_service__strand.post [*post]]]
+ [Request the strand to invoke the given handler and return immediately. ]
+ ]
+
+ [
+ [[link boost_asio.reference.io_service__strand.strand [*strand]]]
+ [Constructor. ]
+ ]
+
+ [
+ [[link boost_asio.reference.io_service__strand.wrap [*wrap]]]
+ [Create a new handler that automatically dispatches the wrapped handler on the strand. ]
+ ]
+
+ [
+ [[link boost_asio.reference.io_service__strand._strand [*~strand]]]
+ [Destructor. ]
+ ]
+
+]
 
+The [link boost_asio.reference.io_service__strand `io_service::strand`] class provides the ability to post and dispatch handlers with the guarantee that none of those handlers will execute concurrently.
 
-Create an address from an IP address string in dotted decimal form.
 
+[heading Order of handler invocation]
+
+Given:
 
- static address_v4 from_string(
- const std::string & str,
- boost::system::error_code & ec);
 
+* a strand object `s`
 
 
-[endsect]
+* an object `a` meeting completion handler requirements
 
 
-[endsect]
+* an object `a1` which is an arbitrary copy of `a` made by the implementation
 
 
-[section:is_class_a ip::address_v4::is_class_a]
+* an object `b` meeting completion handler requirements
 
-[indexterm2 is_class_a..ip::address_v4]
-Determine whether the address is a class A address.
 
+* an object `b1` which is an arbitrary copy of `b` made by the implementation
 
- bool is_class_a() const;
+if any of the following conditions are true:
 
 
+* `s.post(a)` happens-before `s.post(b)`
 
-[endsect]
 
+* `s.post(a)` happens-before `s.dispatch(b)`, where the latter is performed outside the strand
 
 
-[section:is_class_b ip::address_v4::is_class_b]
+* `s.dispatch(a)` happens-before `s.post(b)`, where the former is performed outside the strand
 
-[indexterm2 is_class_b..ip::address_v4]
-Determine whether the address is a class B address.
 
+* `s.dispatch(a)` happens-before `s.dispatch(b)`, where both are performed outside the strand
 
- bool is_class_b() const;
+then `asio_handler_invoke(a1, &a1)` happens-before `asio_handler_invoke(b1, &b1)`.
 
+Note that in the following case:
 
+ async_op_1(..., s.wrap(a));
+ async_op_2(..., s.wrap(b));
 
-[endsect]
 
+the completion of the first async operation will perform `s.dispatch(a)`, and the second will perform `s.dispatch(b)`, but the order in which those are performed is unspecified. That is, you cannot state whether one happens-before the other. Therefore none of the above conditions are met and no ordering guarantee is made.
 
 
-[section:is_class_c ip::address_v4::is_class_c]
+[heading Thread Safety]
+
+[*Distinct] [*objects:] Safe.
 
-[indexterm2 is_class_c..ip::address_v4]
-Determine whether the address is a class C address.
+[*Shared] [*objects:] Safe.
 
 
- bool is_class_c() const;
 
 
+[heading Requirements]
 
-[endsect]
+[*Header: ][^boost/asio/strand.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
 
-[section:is_loopback ip::address_v4::is_loopback]
+[section:dispatch io_service::strand::dispatch]
 
-[indexterm2 is_loopback..ip::address_v4]
-Determine whether the address is a loopback address.
+[indexterm2 dispatch..io_service::strand]
+Request the strand to invoke the given handler.
 
 
- bool is_loopback() const;
+ template<
+ typename ``[link boost_asio.reference.CompletionHandler CompletionHandler]``>
+ void dispatch(
+ CompletionHandler handler);
 
 
+This function is used to ask the strand to execute the given handler.
 
-[endsect]
+The strand object guarantees that handlers posted or dispatched through the strand will not be executed concurrently. The handler may be executed inside this function if the guarantee can be met. If this function is called from within a handler that was posted or dispatched through the same strand, then the new handler will be executed immediately.
 
+The strand's guarantee is in addition to the guarantee provided by the underlying [link boost_asio.reference.io_service `io_service`]. The [link boost_asio.reference.io_service `io_service`] guarantees that the handler will only be called in a thread in which the io\_service's run member function is currently being invoked.
 
 
-[section:is_multicast ip::address_v4::is_multicast]
+[heading Parameters]
+
 
-[indexterm2 is_multicast..ip::address_v4]
-Determine whether the address is a multicast address.
+[variablelist
+
+[[handler][The handler to be called. The strand will make a copy of the handler object as required. The function signature of the handler must be:
+``
+ void handler();
+``
+]]
 
+]
 
- bool is_multicast() const;
 
 
 
@@ -55839,27 +55857,22 @@
 
 
 
-[section:is_unspecified ip::address_v4::is_unspecified]
-
-[indexterm2 is_unspecified..ip::address_v4]
-Determine whether the address is unspecified.
-
-
- bool is_unspecified() const;
-
+[section:get_io_service io_service::strand::get_io_service]
 
+[indexterm2 get_io_service..io_service::strand]
+Get the [link boost_asio.reference.io_service `io_service`] associated with the strand.
 
-[endsect]
 
+ boost::asio::io_service & get_io_service();
 
 
-[section:loopback ip::address_v4::loopback]
+This function may be used to obtain the [link boost_asio.reference.io_service `io_service`] object that the strand uses to dispatch handlers for asynchronous operations.
 
-[indexterm2 loopback..ip::address_v4]
-Obtain an address object that represents the loopback address.
 
+[heading Return Value]
+
+A reference to the [link boost_asio.reference.io_service `io_service`] object that the strand will use to dispatch handlers. Ownership is not transferred to the caller.
 
- static address_v4 loopback();
 
 
 
@@ -55867,80 +55880,85 @@
 
 
 
-[section:netmask ip::address_v4::netmask]
+[section:post io_service::strand::post]
 
-[indexterm2 netmask..ip::address_v4]
-Obtain the netmask that corresponds to the address, based on its address class.
+[indexterm2 post..io_service::strand]
+Request the strand to invoke the given handler and return immediately.
 
 
- static address_v4 netmask(
- const address_v4 & addr);
+ template<
+ typename ``[link boost_asio.reference.CompletionHandler CompletionHandler]``>
+ void post(
+ CompletionHandler handler);
 
 
+This function is used to ask the strand to execute the given handler, but without allowing the strand to call the handler from inside this function.
 
-[endsect]
+The strand object guarantees that handlers posted or dispatched through the strand will not be executed concurrently. The strand's guarantee is in addition to the guarantee provided by the underlying [link boost_asio.reference.io_service `io_service`]. The [link boost_asio.reference.io_service `io_service`] guarantees that the handler will only be called in a thread in which the io\_service's run member function is currently being invoked.
 
 
+[heading Parameters]
+
 
-[section:operator_not__eq_ ip::address_v4::operator!=]
+[variablelist
+
+[[handler][The handler to be called. The strand will make a copy of the handler object as required. The function signature of the handler must be:
+``
+ void handler();
+``
+]]
 
-[indexterm2 operator!=..ip::address_v4]
-Compare two addresses for inequality.
+]
 
 
- friend bool operator!=(
- const address_v4 & a1,
- const address_v4 & a2);
 
 
-[heading Requirements]
+[endsect]
 
-[*Header: ][^boost/asio/ip/address_v4.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
 
+[section:strand io_service::strand::strand]
 
-[endsect]
+[indexterm2 strand..io_service::strand]
+Constructor.
 
 
+ strand(
+ boost::asio::io_service & io_service);
 
-[section:operator_lt_ ip::address_v4::operator<]
 
-[indexterm2 operator<..ip::address_v4]
-Compare addresses for ordering.
+Constructs the strand.
 
 
- friend bool operator<(
- const address_v4 & a1,
- const address_v4 & a2);
+[heading Parameters]
+
 
+[variablelist
+
+[[io_service][The [link boost_asio.reference.io_service `io_service`] object that the strand will use to dispatch handlers that are ready to be run. ]]
 
-[heading Requirements]
+]
 
-[*Header: ][^boost/asio/ip/address_v4.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
 
-[section:operator_lt__lt_ ip::address_v4::operator<<]
+[section:wrap io_service::strand::wrap]
 
-[indexterm2 operator<<..ip::address_v4]
-Output an address as a string.
+[indexterm2 wrap..io_service::strand]
+Create a new handler that automatically dispatches the wrapped handler on the strand.
 
 
   template<
- typename Elem,
- typename Traits>
- std::basic_ostream< Elem, Traits > & operator<<(
- std::basic_ostream< Elem, Traits > & os,
- const address_v4 & addr);
+ typename ``[link boost_asio.reference.Handler Handler]``>
+ unspecified wrap(
+ Handler handler);
 
 
-Used to output a human-readable string for a specified address.
+This function is used to create a new handler function object that, when invoked, will automatically pass the wrapped handler to the strand's dispatch function.
 
 
 [heading Parameters]
@@ -55948,54 +55966,39 @@
 
 [variablelist
   
-[[os][The output stream to which the string will be written.]]
-
-[[addr][The address to be written.]]
+[[handler][The handler to be wrapped. The strand will make a copy of the handler object as required. The function signature of the handler must be:
+``
+ void handler(A1 a1, ... An an);
+``
+]]
 
 ]
 
 
 [heading Return Value]
       
-The output stream.
-
-
-
-
-[endsect]
-
-
-
-[section:operator_lt__eq_ ip::address_v4::operator<=]
-
-[indexterm2 operator<=..ip::address_v4]
-Compare addresses for ordering.
+A function object that, when invoked, passes the wrapped handler to the strand's dispatch function. Given a function object with the signature:
 
+ R f(A1 a1, ... An an);
 
- friend bool operator<=(
- const address_v4 & a1,
- const address_v4 & a2);
 
+If this function object is passed to the wrap function like so:
 
-[heading Requirements]
+ strand.wrap(f);
 
-[*Header: ][^boost/asio/ip/address_v4.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
+then the return value is a function object with the signature
 
+ void g(A1 a1, ... An an);
 
-[endsect]
 
+that, when invoked, executes code equivalent to:
 
+ strand.dispatch(boost::bind(f, a1, ... an));
 
-[section:operator_eq_ ip::address_v4::operator=]
 
-[indexterm2 operator=..ip::address_v4]
-Assign from another address.
 
 
- address_v4 & operator=(
- const address_v4 & other);
 
 
 
@@ -56003,324 +56006,266 @@
 
 
 
-[section:operator_eq__eq_ ip::address_v4::operator==]
-
-[indexterm2 operator==..ip::address_v4]
-Compare two addresses for equality.
+[section:_strand io_service::strand::~strand]
 
+[indexterm2 ~strand..io_service::strand]
+Destructor.
 
- friend bool operator==(
- const address_v4 & a1,
- const address_v4 & a2);
 
+ ~strand();
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/ip/address_v4.hpp]
+Destroys a strand.
 
-[*Convenience header: ][^boost/asio.hpp]
+Handlers posted through the strand that have not yet been invoked will still be dispatched in a way that meets the guarantee of non-concurrency.
 
 
 [endsect]
 
 
 
-[section:operator_gt_ ip::address_v4::operator>]
-
-[indexterm2 operator>..ip::address_v4]
-Compare addresses for ordering.
-
-
- friend bool operator>(
- const address_v4 & a1,
- const address_v4 & a2);
-
-
-[heading Requirements]
+[endsect]
 
-[*Header: ][^boost/asio/ip/address_v4.hpp]
+[section:io_service__work io_service::work]
 
-[*Convenience header: ][^boost/asio.hpp]
 
+Class to inform the [link boost_asio.reference.io_service `io_service`] when it has work to do.
 
-[endsect]
 
+ class work
 
 
-[section:operator_gt__eq_ ip::address_v4::operator>=]
+[heading Member Functions]
+[table
+ [[Name][Description]]
 
-[indexterm2 operator>=..ip::address_v4]
-Compare addresses for ordering.
+ [
+ [[link boost_asio.reference.io_service__work.get_io_service [*get_io_service]]]
+ [Get the io_service associated with the work. ]
+ ]
+
+ [
+ [[link boost_asio.reference.io_service__work.work [*work]]]
+ [Constructor notifies the io_service that work is starting.
 
+ Copy constructor notifies the io_service that work is starting. ]
+ ]
+
+ [
+ [[link boost_asio.reference.io_service__work._work [*~work]]]
+ [Destructor notifies the io_service that the work is complete. ]
+ ]
+
+]
 
- friend bool operator>=(
- const address_v4 & a1,
- const address_v4 & a2);
+The work class is used to inform the [link boost_asio.reference.io_service `io_service`] when work starts and finishes. This ensures that the [link boost_asio.reference.io_service `io_service`] object's `run()` function will not exit while work is underway, and that it does exit when there is no unfinished work remaining.
 
+The work class is copy-constructible so that it may be used as a data member in a handler class. It is not assignable.
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/ip/address_v4.hpp]
+[*Header: ][^boost/asio/io_service.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
 
-[endsect]
+[section:get_io_service io_service::work::get_io_service]
 
+[indexterm2 get_io_service..io_service::work]
+Get the [link boost_asio.reference.io_service `io_service`] associated with the work.
 
 
-[section:to_bytes ip::address_v4::to_bytes]
+ boost::asio::io_service & get_io_service();
 
-[indexterm2 to_bytes..ip::address_v4]
-Get the address in bytes, in network byte order.
 
 
- bytes_type to_bytes() const;
+[endsect]
 
 
+[section:work io_service::work::work]
 
-[endsect]
+[indexterm2 work..io_service::work]
+Constructor notifies the [link boost_asio.reference.io_service `io_service`] that work is starting.
 
 
-[section:to_string ip::address_v4::to_string]
+ explicit ``[link boost_asio.reference.io_service__work.work.overload1 work]``(
+ boost::asio::io_service & io_service);
+ `` [''''&raquo;''' [link boost_asio.reference.io_service__work.work.overload1 more...]]``
 
-[indexterm2 to_string..ip::address_v4]
-Get the address as a string in dotted decimal format.
 
+Copy constructor notifies the [link boost_asio.reference.io_service `io_service`] that work is starting.
 
- std::string ``[link boost_asio.reference.ip__address_v4.to_string.overload1 to_string]``() const;
- `` [''''&raquo;''' [link boost_asio.reference.ip__address_v4.to_string.overload1 more...]]``
 
- std::string ``[link boost_asio.reference.ip__address_v4.to_string.overload2 to_string]``(
- boost::system::error_code & ec) const;
- `` [''''&raquo;''' [link boost_asio.reference.ip__address_v4.to_string.overload2 more...]]``
+ ``[link boost_asio.reference.io_service__work.work.overload2 work]``(
+ const work & other);
+ `` [''''&raquo;''' [link boost_asio.reference.io_service__work.work.overload2 more...]]``
 
 
-[section:overload1 ip::address_v4::to_string (1 of 2 overloads)]
+[section:overload1 io_service::work::work (1 of 2 overloads)]
 
 
-Get the address as a string in dotted decimal format.
+Constructor notifies the [link boost_asio.reference.io_service `io_service`] that work is starting.
 
 
- std::string to_string() const;
+ work(
+ boost::asio::io_service & io_service);
+
 
+The constructor is used to inform the [link boost_asio.reference.io_service `io_service`] that some work has begun. This ensures that the [link boost_asio.reference.io_service `io_service`] object's `run()` function will not exit while the work is underway.
 
 
 [endsect]
 
 
 
-[section:overload2 ip::address_v4::to_string (2 of 2 overloads)]
-
+[section:overload2 io_service::work::work (2 of 2 overloads)]
 
-Get the address as a string in dotted decimal format.
 
+Copy constructor notifies the [link boost_asio.reference.io_service `io_service`] that work is starting.
 
- std::string to_string(
- boost::system::error_code & ec) const;
 
+ work(
+ const work & other);
 
 
-[endsect]
+The constructor is used to inform the [link boost_asio.reference.io_service `io_service`] that some work has begun. This ensures that the [link boost_asio.reference.io_service `io_service`] object's `run()` function will not exit while the work is underway.
 
 
 [endsect]
 
 
-[section:to_ulong ip::address_v4::to_ulong]
+[endsect]
 
-[indexterm2 to_ulong..ip::address_v4]
-Get the address as an unsigned long in host byte order.
 
+[section:_work io_service::work::~work]
 
- unsigned long to_ulong() const;
+[indexterm2 ~work..io_service::work]
+Destructor notifies the [link boost_asio.reference.io_service `io_service`] that the work is complete.
 
 
+ ~work();
 
-[endsect]
 
+The destructor is used to inform the [link boost_asio.reference.io_service `io_service`] that some work has finished. Once the count of unfinished work reaches zero, the [link boost_asio.reference.io_service `io_service`] object's `run()` function is permitted to exit.
 
 
 [endsect]
 
-[section:ip__address_v6 ip::address_v6]
-
 
-Implements IP version 6 style addresses.
 
+[endsect]
 
- class address_v6
+[section:ip__address ip::address]
 
 
-[heading Types]
-[table
- [[Name][Description]]
+Implements version-independent IP addresses.
 
- [
 
- [[link boost_asio.reference.ip__address_v6.bytes_type [*bytes_type]]]
- [The type used to represent an address as an array of bytes. ]
-
- ]
+ class address
 
-]
 
 [heading Member Functions]
 [table
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.ip__address_v6.address_v6 [*address_v6]]]
+ [[link boost_asio.reference.ip__address.address [*address]]]
     [Default constructor.
 
- Construct an address from raw bytes and scope ID.
+ Construct an address from an IPv4 address.
+
+ Construct an address from an IPv6 address.
 
      Copy constructor. ]
   ]
   
   [
- [[link boost_asio.reference.ip__address_v6.any [*any]]]
- [Obtain an address object that represents any address. ]
+ [[link boost_asio.reference.ip__address.from_string [*from_string]]]
+ [Create an address from an IPv4 address string in dotted decimal form, or from an IPv6 address in hexadecimal notation. ]
   ]
   
   [
- [[link boost_asio.reference.ip__address_v6.from_string [*from_string]]]
- [Create an address from an IP address string. ]
+ [[link boost_asio.reference.ip__address.is_loopback [*is_loopback]]]
+ [Determine whether the address is a loopback address. ]
   ]
   
   [
- [[link boost_asio.reference.ip__address_v6.is_link_local [*is_link_local]]]
- [Determine whether the address is link local. ]
+ [[link boost_asio.reference.ip__address.is_multicast [*is_multicast]]]
+ [Determine whether the address is a multicast address. ]
   ]
   
   [
- [[link boost_asio.reference.ip__address_v6.is_loopback [*is_loopback]]]
- [Determine whether the address is a loopback address. ]
+ [[link boost_asio.reference.ip__address.is_unspecified [*is_unspecified]]]
+ [Determine whether the address is unspecified. ]
   ]
   
   [
- [[link boost_asio.reference.ip__address_v6.is_multicast [*is_multicast]]]
- [Determine whether the address is a multicast address. ]
+ [[link boost_asio.reference.ip__address.is_v4 [*is_v4]]]
+ [Get whether the address is an IP version 4 address. ]
   ]
   
   [
- [[link boost_asio.reference.ip__address_v6.is_multicast_global [*is_multicast_global]]]
- [Determine whether the address is a global multicast address. ]
+ [[link boost_asio.reference.ip__address.is_v6 [*is_v6]]]
+ [Get whether the address is an IP version 6 address. ]
   ]
   
   [
- [[link boost_asio.reference.ip__address_v6.is_multicast_link_local [*is_multicast_link_local]]]
- [Determine whether the address is a link-local multicast address. ]
+ [[link boost_asio.reference.ip__address.operator_eq_ [*operator=]]]
+ [Assign from another address.
+
+ Assign from an IPv4 address.
+
+ Assign from an IPv6 address. ]
   ]
   
   [
- [[link boost_asio.reference.ip__address_v6.is_multicast_node_local [*is_multicast_node_local]]]
- [Determine whether the address is a node-local multicast address. ]
+ [[link boost_asio.reference.ip__address.to_string [*to_string]]]
+ [Get the address as a string in dotted decimal format. ]
   ]
   
   [
- [[link boost_asio.reference.ip__address_v6.is_multicast_org_local [*is_multicast_org_local]]]
- [Determine whether the address is a org-local multicast address. ]
+ [[link boost_asio.reference.ip__address.to_v4 [*to_v4]]]
+ [Get the address as an IP version 4 address. ]
   ]
   
   [
- [[link boost_asio.reference.ip__address_v6.is_multicast_site_local [*is_multicast_site_local]]]
- [Determine whether the address is a site-local multicast address. ]
+ [[link boost_asio.reference.ip__address.to_v6 [*to_v6]]]
+ [Get the address as an IP version 6 address. ]
   ]
   
+]
+
+[heading Friends]
+[table
+ [[Name][Description]]
+
   [
- [[link boost_asio.reference.ip__address_v6.is_site_local [*is_site_local]]]
- [Determine whether the address is site local. ]
+ [[link boost_asio.reference.ip__address.operator_not__eq_ [*operator!=]]]
+ [Compare two addresses for inequality. ]
   ]
   
   [
- [[link boost_asio.reference.ip__address_v6.is_unspecified [*is_unspecified]]]
- [Determine whether the address is unspecified. ]
- ]
-
- [
- [[link boost_asio.reference.ip__address_v6.is_v4_compatible [*is_v4_compatible]]]
- [Determine whether the address is an IPv4-compatible address. ]
- ]
-
- [
- [[link boost_asio.reference.ip__address_v6.is_v4_mapped [*is_v4_mapped]]]
- [Determine whether the address is a mapped IPv4 address. ]
- ]
-
- [
- [[link boost_asio.reference.ip__address_v6.loopback [*loopback]]]
- [Obtain an address object that represents the loopback address. ]
- ]
-
- [
- [[link boost_asio.reference.ip__address_v6.operator_eq_ [*operator=]]]
- [Assign from another address. ]
- ]
-
- [
- [[link boost_asio.reference.ip__address_v6.scope_id [*scope_id]]]
- [The scope ID of the address. ]
- ]
-
- [
- [[link boost_asio.reference.ip__address_v6.to_bytes [*to_bytes]]]
- [Get the address in bytes, in network byte order. ]
- ]
-
- [
- [[link boost_asio.reference.ip__address_v6.to_string [*to_string]]]
- [Get the address as a string. ]
- ]
-
- [
- [[link boost_asio.reference.ip__address_v6.to_v4 [*to_v4]]]
- [Converts an IPv4-mapped or IPv4-compatible address to an IPv4 address. ]
- ]
-
- [
- [[link boost_asio.reference.ip__address_v6.v4_compatible [*v4_compatible]]]
- [Create an IPv4-compatible IPv6 address. ]
- ]
-
- [
- [[link boost_asio.reference.ip__address_v6.v4_mapped [*v4_mapped]]]
- [Create an IPv4-mapped IPv6 address. ]
- ]
-
-]
-
-[heading Friends]
-[table
- [[Name][Description]]
-
- [
- [[link boost_asio.reference.ip__address_v6.operator_not__eq_ [*operator!=]]]
- [Compare two addresses for inequality. ]
- ]
-
- [
- [[link boost_asio.reference.ip__address_v6.operator_lt_ [*operator<]]]
+ [[link boost_asio.reference.ip__address.operator_lt_ [*operator<]]]
     [Compare addresses for ordering. ]
   ]
   
   [
- [[link boost_asio.reference.ip__address_v6.operator_lt__eq_ [*operator<=]]]
+ [[link boost_asio.reference.ip__address.operator_lt__eq_ [*operator<=]]]
     [Compare addresses for ordering. ]
   ]
   
   [
- [[link boost_asio.reference.ip__address_v6.operator_eq__eq_ [*operator==]]]
+ [[link boost_asio.reference.ip__address.operator_eq__eq_ [*operator==]]]
     [Compare two addresses for equality. ]
   ]
   
   [
- [[link boost_asio.reference.ip__address_v6.operator_gt_ [*operator>]]]
+ [[link boost_asio.reference.ip__address.operator_gt_ [*operator>]]]
     [Compare addresses for ordering. ]
   ]
   
   [
- [[link boost_asio.reference.ip__address_v6.operator_gt__eq_ [*operator>=]]]
+ [[link boost_asio.reference.ip__address.operator_gt__eq_ [*operator>=]]]
     [Compare addresses for ordering. ]
   ]
   
@@ -56331,13 +56276,13 @@
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.ip__address_v6.operator_lt__lt_ [*operator<<]]]
+ [[link boost_asio.reference.ip__address.operator_lt__lt_ [*operator<<]]]
     [Output an address as a string. ]
   ]
   
 ]
 
-The [link boost_asio.reference.ip__address_v6 `ip::address_v6`] class provides the ability to use and manipulate IP version 6 addresses.
+The [link boost_asio.reference.ip__address `ip::address`] class provides the ability to use either IP version 4 or version 6 addresses.
 
 
 [heading Thread Safety]
@@ -56350,60 +56295,51 @@
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/ip/address_v6.hpp]
+[*Header: ][^boost/asio/ip/address.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
-[section:address_v6 ip::address_v6::address_v6]
+[section:address ip::address::address]
 
-[indexterm2 address_v6..ip::address_v6]
+[indexterm2 address..ip::address]
 Default constructor.
 
 
- ``[link boost_asio.reference.ip__address_v6.address_v6.overload1 address_v6]``();
- `` [''''&raquo;''' [link boost_asio.reference.ip__address_v6.address_v6.overload1 more...]]``
-
-
-Construct an address from raw bytes and scope ID.
-
-
- explicit ``[link boost_asio.reference.ip__address_v6.address_v6.overload2 address_v6]``(
- const bytes_type & bytes,
- unsigned long scope_id = 0);
- `` [''''&raquo;''' [link boost_asio.reference.ip__address_v6.address_v6.overload2 more...]]``
-
-
-Copy constructor.
+ ``[link boost_asio.reference.ip__address.address.overload1 address]``();
+ `` [''''&raquo;''' [link boost_asio.reference.ip__address.address.overload1 more...]]``
 
 
- ``[link boost_asio.reference.ip__address_v6.address_v6.overload3 address_v6]``(
- const address_v6 & other);
- `` [''''&raquo;''' [link boost_asio.reference.ip__address_v6.address_v6.overload3 more...]]``
+Construct an address from an IPv4 address.
 
 
-[section:overload1 ip::address_v6::address_v6 (1 of 3 overloads)]
+ ``[link boost_asio.reference.ip__address.address.overload2 address]``(
+ const boost::asio::ip::address_v4 & ipv4_address);
+ `` [''''&raquo;''' [link boost_asio.reference.ip__address.address.overload2 more...]]``
 
 
-Default constructor.
+Construct an address from an IPv6 address.
 
 
- address_v6();
+ ``[link boost_asio.reference.ip__address.address.overload3 address]``(
+ const boost::asio::ip::address_v6 & ipv6_address);
+ `` [''''&raquo;''' [link boost_asio.reference.ip__address.address.overload3 more...]]``
 
 
+Copy constructor.
 
-[endsect]
 
+ ``[link boost_asio.reference.ip__address.address.overload4 address]``(
+ const address & other);
+ `` [''''&raquo;''' [link boost_asio.reference.ip__address.address.overload4 more...]]``
 
 
-[section:overload2 ip::address_v6::address_v6 (2 of 3 overloads)]
+[section:overload1 ip::address::address (1 of 4 overloads)]
 
 
-Construct an address from raw bytes and scope ID.
+Default constructor.
 
 
- address_v6(
- const bytes_type & bytes,
- unsigned long scope_id = 0);
+ address();
 
 
 
@@ -56411,30 +56347,29 @@
 
 
 
-[section:overload3 ip::address_v6::address_v6 (3 of 3 overloads)]
+[section:overload2 ip::address::address (2 of 4 overloads)]
 
 
-Copy constructor.
+Construct an address from an IPv4 address.
 
 
- address_v6(
- const address_v6 & other);
+ address(
+ const boost::asio::ip::address_v4 & ipv4_address);
 
 
 
 [endsect]
 
 
-[endsect]
 
+[section:overload3 ip::address::address (3 of 4 overloads)]
 
-[section:any ip::address_v6::any]
 
-[indexterm2 any..ip::address_v6]
-Obtain an address object that represents any address.
+Construct an address from an IPv6 address.
 
 
- static address_v6 any();
+ address(
+ const boost::asio::ip::address_v6 & ipv6_address);
 
 
 
@@ -56442,65 +56377,54 @@
 
 
 
-[section:bytes_type ip::address_v6::bytes_type]
-
-[indexterm2 bytes_type..ip::address_v6]
-The type used to represent an address as an array of bytes.
-
-
- typedef array< unsigned char, 16 > bytes_type;
-
-
+[section:overload4 ip::address::address (4 of 4 overloads)]
 
 
-[heading Remarks]
-
-This type is defined in terms of the C++0x template `std::array` when it is available. Otherwise, it uses `boost:array`.
+Copy constructor.
 
 
+ address(
+ const address & other);
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/ip/address_v6.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
+[endsect]
 
 
 [endsect]
 
+[section:from_string ip::address::from_string]
 
-[section:from_string ip::address_v6::from_string]
-
-[indexterm2 from_string..ip::address_v6]
-Create an address from an IP address string.
+[indexterm2 from_string..ip::address]
+Create an address from an IPv4 address string in dotted decimal form, or from an IPv6 address in hexadecimal notation.
 
 
- static address_v6 ``[link boost_asio.reference.ip__address_v6.from_string.overload1 from_string]``(
+ static address ``[link boost_asio.reference.ip__address.from_string.overload1 from_string]``(
       const char * str);
- `` [''''&raquo;''' [link boost_asio.reference.ip__address_v6.from_string.overload1 more...]]``
+ `` [''''&raquo;''' [link boost_asio.reference.ip__address.from_string.overload1 more...]]``
 
- static address_v6 ``[link boost_asio.reference.ip__address_v6.from_string.overload2 from_string]``(
+ static address ``[link boost_asio.reference.ip__address.from_string.overload2 from_string]``(
       const char * str,
       boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.ip__address_v6.from_string.overload2 more...]]``
+ `` [''''&raquo;''' [link boost_asio.reference.ip__address.from_string.overload2 more...]]``
 
- static address_v6 ``[link boost_asio.reference.ip__address_v6.from_string.overload3 from_string]``(
+ static address ``[link boost_asio.reference.ip__address.from_string.overload3 from_string]``(
       const std::string & str);
- `` [''''&raquo;''' [link boost_asio.reference.ip__address_v6.from_string.overload3 more...]]``
+ `` [''''&raquo;''' [link boost_asio.reference.ip__address.from_string.overload3 more...]]``
 
- static address_v6 ``[link boost_asio.reference.ip__address_v6.from_string.overload4 from_string]``(
+ static address ``[link boost_asio.reference.ip__address.from_string.overload4 from_string]``(
       const std::string & str,
       boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.ip__address_v6.from_string.overload4 more...]]``
+ `` [''''&raquo;''' [link boost_asio.reference.ip__address.from_string.overload4 more...]]``
 
 
-[section:overload1 ip::address_v6::from_string (1 of 4 overloads)]
+[section:overload1 ip::address::from_string (1 of 4 overloads)]
 
 
-Create an address from an IP address string.
+Create an address from an IPv4 address string in dotted decimal form, or from an IPv6 address in hexadecimal notation.
 
 
- static address_v6 from_string(
+ static address from_string(
       const char * str);
 
 
@@ -56509,13 +56433,13 @@
 
 
 
-[section:overload2 ip::address_v6::from_string (2 of 4 overloads)]
+[section:overload2 ip::address::from_string (2 of 4 overloads)]
 
 
-Create an address from an IP address string.
+Create an address from an IPv4 address string in dotted decimal form, or from an IPv6 address in hexadecimal notation.
 
 
- static address_v6 from_string(
+ static address from_string(
       const char * str,
       boost::system::error_code & ec);
 
@@ -56525,13 +56449,13 @@
 
 
 
-[section:overload3 ip::address_v6::from_string (3 of 4 overloads)]
+[section:overload3 ip::address::from_string (3 of 4 overloads)]
 
 
-Create an address from an IP address string.
+Create an address from an IPv4 address string in dotted decimal form, or from an IPv6 address in hexadecimal notation.
 
 
- static address_v6 from_string(
+ static address from_string(
       const std::string & str);
 
 
@@ -56540,13 +56464,13 @@
 
 
 
-[section:overload4 ip::address_v6::from_string (4 of 4 overloads)]
+[section:overload4 ip::address::from_string (4 of 4 overloads)]
 
 
-Create an address from an IP address string.
+Create an address from an IPv4 address string in dotted decimal form, or from an IPv6 address in hexadecimal notation.
 
 
- static address_v6 from_string(
+ static address from_string(
       const std::string & str,
       boost::system::error_code & ec);
 
@@ -56558,23 +56482,9 @@
 [endsect]
 
 
-[section:is_link_local ip::address_v6::is_link_local]
-
-[indexterm2 is_link_local..ip::address_v6]
-Determine whether the address is link local.
-
-
- bool is_link_local() const;
-
-
-
-[endsect]
-
-
-
-[section:is_loopback ip::address_v6::is_loopback]
+[section:is_loopback ip::address::is_loopback]
 
-[indexterm2 is_loopback..ip::address_v6]
+[indexterm2 is_loopback..ip::address]
 Determine whether the address is a loopback address.
 
 
@@ -56586,9 +56496,9 @@
 
 
 
-[section:is_multicast ip::address_v6::is_multicast]
+[section:is_multicast ip::address::is_multicast]
 
-[indexterm2 is_multicast..ip::address_v6]
+[indexterm2 is_multicast..ip::address]
 Determine whether the address is a multicast address.
 
 
@@ -56600,13 +56510,13 @@
 
 
 
-[section:is_multicast_global ip::address_v6::is_multicast_global]
+[section:is_unspecified ip::address::is_unspecified]
 
-[indexterm2 is_multicast_global..ip::address_v6]
-Determine whether the address is a global multicast address.
+[indexterm2 is_unspecified..ip::address]
+Determine whether the address is unspecified.
 
 
- bool is_multicast_global() const;
+ bool is_unspecified() const;
 
 
 
@@ -56614,13 +56524,13 @@
 
 
 
-[section:is_multicast_link_local ip::address_v6::is_multicast_link_local]
+[section:is_v4 ip::address::is_v4]
 
-[indexterm2 is_multicast_link_local..ip::address_v6]
-Determine whether the address is a link-local multicast address.
+[indexterm2 is_v4..ip::address]
+Get whether the address is an IP version 4 address.
 
 
- bool is_multicast_link_local() const;
+ bool is_v4() const;
 
 
 
@@ -56628,13 +56538,13 @@
 
 
 
-[section:is_multicast_node_local ip::address_v6::is_multicast_node_local]
+[section:is_v6 ip::address::is_v6]
 
-[indexterm2 is_multicast_node_local..ip::address_v6]
-Determine whether the address is a node-local multicast address.
+[indexterm2 is_v6..ip::address]
+Get whether the address is an IP version 6 address.
 
 
- bool is_multicast_node_local() const;
+ bool is_v6() const;
 
 
 
@@ -56642,97 +56552,83 @@
 
 
 
-[section:is_multicast_org_local ip::address_v6::is_multicast_org_local]
-
-[indexterm2 is_multicast_org_local..ip::address_v6]
-Determine whether the address is a org-local multicast address.
-
-
- bool is_multicast_org_local() const;
-
-
-
-[endsect]
+[section:operator_not__eq_ ip::address::operator!=]
 
+[indexterm2 operator!=..ip::address]
+Compare two addresses for inequality.
 
 
-[section:is_multicast_site_local ip::address_v6::is_multicast_site_local]
+ friend bool operator!=(
+ const address & a1,
+ const address & a2);
 
-[indexterm2 is_multicast_site_local..ip::address_v6]
-Determine whether the address is a site-local multicast address.
 
+[heading Requirements]
 
- bool is_multicast_site_local() const;
+[*Header: ][^boost/asio/ip/address.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
 
-[section:is_site_local ip::address_v6::is_site_local]
-
-[indexterm2 is_site_local..ip::address_v6]
-Determine whether the address is site local.
-
-
- bool is_site_local() const;
-
-
-
-[endsect]
+[section:operator_lt_ ip::address::operator<]
 
+[indexterm2 operator<..ip::address]
+Compare addresses for ordering.
 
 
-[section:is_unspecified ip::address_v6::is_unspecified]
+ friend bool operator<(
+ const address & a1,
+ const address & a2);
 
-[indexterm2 is_unspecified..ip::address_v6]
-Determine whether the address is unspecified.
 
+[heading Requirements]
 
- bool is_unspecified() const;
+[*Header: ][^boost/asio/ip/address.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
 
-[section:is_v4_compatible ip::address_v6::is_v4_compatible]
-
-[indexterm2 is_v4_compatible..ip::address_v6]
-Determine whether the address is an IPv4-compatible address.
-
-
- bool is_v4_compatible() const;
-
-
-
-[endsect]
-
-
+[section:operator_lt__lt_ ip::address::operator<<]
 
-[section:is_v4_mapped ip::address_v6::is_v4_mapped]
+[indexterm2 operator<<..ip::address]
+Output an address as a string.
 
-[indexterm2 is_v4_mapped..ip::address_v6]
-Determine whether the address is a mapped IPv4 address.
 
+ template<
+ typename Elem,
+ typename Traits>
+ std::basic_ostream< Elem, Traits > & operator<<(
+ std::basic_ostream< Elem, Traits > & os,
+ const address & addr);
 
- bool is_v4_mapped() const;
 
+Used to output a human-readable string for a specified address.
 
 
-[endsect]
+[heading Parameters]
+
 
+[variablelist
+
+[[os][The output stream to which the string will be written.]]
 
+[[addr][The address to be written.]]
 
-[section:loopback ip::address_v6::loopback]
+]
 
-[indexterm2 loopback..ip::address_v6]
-Obtain an address object that represents the loopback address.
 
+[heading Return Value]
+
+The output stream.
 
- static address_v6 loopback();
 
 
 
@@ -56740,20 +56636,20 @@
 
 
 
-[section:operator_not__eq_ ip::address_v6::operator!=]
+[section:operator_lt__eq_ ip::address::operator<=]
 
-[indexterm2 operator!=..ip::address_v6]
-Compare two addresses for inequality.
+[indexterm2 operator<=..ip::address]
+Compare addresses for ordering.
 
 
- friend bool operator!=(
- const address_v6 & a1,
- const address_v6 & a2);
+ friend bool operator<=(
+ const address & a1,
+ const address & a2);
 
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/ip/address_v6.hpp]
+[*Header: ][^boost/asio/ip/address.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
@@ -56761,120 +56657,94 @@
 [endsect]
 
 
+[section:operator_eq_ ip::address::operator=]
 
-[section:operator_lt_ ip::address_v6::operator<]
-
-[indexterm2 operator<..ip::address_v6]
-Compare addresses for ordering.
+[indexterm2 operator=..ip::address]
+Assign from another address.
 
 
- friend bool operator<(
- const address_v6 & a1,
- const address_v6 & a2);
+ address & ``[link boost_asio.reference.ip__address.operator_eq_.overload1 operator=]``(
+ const address & other);
+ `` [''''&raquo;''' [link boost_asio.reference.ip__address.operator_eq_.overload1 more...]]``
 
 
-[heading Requirements]
+Assign from an IPv4 address.
 
-[*Header: ][^boost/asio/ip/address_v6.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
+ address & ``[link boost_asio.reference.ip__address.operator_eq_.overload2 operator=]``(
+ const boost::asio::ip::address_v4 & ipv4_address);
+ `` [''''&raquo;''' [link boost_asio.reference.ip__address.operator_eq_.overload2 more...]]``
 
 
-[endsect]
+Assign from an IPv6 address.
 
 
+ address & ``[link boost_asio.reference.ip__address.operator_eq_.overload3 operator=]``(
+ const boost::asio::ip::address_v6 & ipv6_address);
+ `` [''''&raquo;''' [link boost_asio.reference.ip__address.operator_eq_.overload3 more...]]``
 
-[section:operator_lt__lt_ ip::address_v6::operator<<]
 
-[indexterm2 operator<<..ip::address_v6]
-Output an address as a string.
+[section:overload1 ip::address::operator= (1 of 3 overloads)]
 
 
- template<
- typename Elem,
- typename Traits>
- std::basic_ostream< Elem, Traits > & operator<<(
- std::basic_ostream< Elem, Traits > & os,
- const address_v6 & addr);
+Assign from another address.
 
 
-Used to output a human-readable string for a specified address.
+ address & operator=(
+ const address & other);
 
 
-[heading Parameters]
-
 
-[variablelist
-
-[[os][The output stream to which the string will be written.]]
+[endsect]
 
-[[addr][The address to be written.]]
 
-]
 
+[section:overload2 ip::address::operator= (2 of 3 overloads)]
 
-[heading Return Value]
-
-The output stream.
 
+Assign from an IPv4 address.
 
 
+ address & operator=(
+ const boost::asio::ip::address_v4 & ipv4_address);
 
-[endsect]
 
 
+[endsect]
 
-[section:operator_lt__eq_ ip::address_v6::operator<=]
 
-[indexterm2 operator<=..ip::address_v6]
-Compare addresses for ordering.
 
+[section:overload3 ip::address::operator= (3 of 3 overloads)]
 
- friend bool operator<=(
- const address_v6 & a1,
- const address_v6 & a2);
 
+Assign from an IPv6 address.
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/ip/address_v6.hpp]
+ address & operator=(
+ const boost::asio::ip::address_v6 & ipv6_address);
 
-[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
-
-[section:operator_eq_ ip::address_v6::operator=]
-
-[indexterm2 operator=..ip::address_v6]
-Assign from another address.
-
-
- address_v6 & operator=(
- const address_v6 & other);
-
-
-
 [endsect]
 
 
+[section:operator_eq__eq_ ip::address::operator==]
 
-[section:operator_eq__eq_ ip::address_v6::operator==]
-
-[indexterm2 operator==..ip::address_v6]
+[indexterm2 operator==..ip::address]
 Compare two addresses for equality.
 
 
   friend bool operator==(
- const address_v6 & a1,
- const address_v6 & a2);
+ const address & a1,
+ const address & a2);
 
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/ip/address_v6.hpp]
+[*Header: ][^boost/asio/ip/address.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
@@ -56883,20 +56753,20 @@
 
 
 
-[section:operator_gt_ ip::address_v6::operator>]
+[section:operator_gt_ ip::address::operator>]
 
-[indexterm2 operator>..ip::address_v6]
+[indexterm2 operator>..ip::address]
 Compare addresses for ordering.
 
 
   friend bool operator>(
- const address_v6 & a1,
- const address_v6 & a2);
+ const address & a1,
+ const address & a2);
 
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/ip/address_v6.hpp]
+[*Header: ][^boost/asio/ip/address.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
@@ -56905,20 +56775,20 @@
 
 
 
-[section:operator_gt__eq_ ip::address_v6::operator>=]
+[section:operator_gt__eq_ ip::address::operator>=]
 
-[indexterm2 operator>=..ip::address_v6]
+[indexterm2 operator>=..ip::address]
 Compare addresses for ordering.
 
 
   friend bool operator>=(
- const address_v6 & a1,
- const address_v6 & a2);
+ const address & a1,
+ const address & a2);
 
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/ip/address_v6.hpp]
+[*Header: ][^boost/asio/ip/address.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
@@ -56926,47 +56796,43 @@
 [endsect]
 
 
-[section:scope_id ip::address_v6::scope_id]
-
-[indexterm2 scope_id..ip::address_v6]
-The scope ID of the address.
+[section:to_string ip::address::to_string]
 
+[indexterm2 to_string..ip::address]
+Get the address as a string in dotted decimal format.
 
- unsigned long ``[link boost_asio.reference.ip__address_v6.scope_id.overload1 scope_id]``() const;
- `` [''''&raquo;''' [link boost_asio.reference.ip__address_v6.scope_id.overload1 more...]]``
 
- void ``[link boost_asio.reference.ip__address_v6.scope_id.overload2 scope_id]``(
- unsigned long id);
- `` [''''&raquo;''' [link boost_asio.reference.ip__address_v6.scope_id.overload2 more...]]``
+ std::string ``[link boost_asio.reference.ip__address.to_string.overload1 to_string]``() const;
+ `` [''''&raquo;''' [link boost_asio.reference.ip__address.to_string.overload1 more...]]``
 
+ std::string ``[link boost_asio.reference.ip__address.to_string.overload2 to_string]``(
+ boost::system::error_code & ec) const;
+ `` [''''&raquo;''' [link boost_asio.reference.ip__address.to_string.overload2 more...]]``
 
-[section:overload1 ip::address_v6::scope_id (1 of 2 overloads)]
 
+[section:overload1 ip::address::to_string (1 of 2 overloads)]
 
-The scope ID of the address.
 
+Get the address as a string in dotted decimal format.
 
- unsigned long scope_id() const;
 
+ std::string to_string() const;
 
-Returns the scope ID associated with the IPv6 address.
 
 
 [endsect]
 
 
 
-[section:overload2 ip::address_v6::scope_id (2 of 2 overloads)]
-
+[section:overload2 ip::address::to_string (2 of 2 overloads)]
 
-The scope ID of the address.
 
+Get the address as a string in dotted decimal format.
 
- void scope_id(
- unsigned long id);
 
+ std::string to_string(
+ boost::system::error_code & ec) const;
 
-Modifies the scope ID associated with the IPv6 address.
 
 
 [endsect]
@@ -56975,86 +56841,13 @@
 [endsect]
 
 
-[section:to_bytes ip::address_v6::to_bytes]
+[section:to_v4 ip::address::to_v4]
 
-[indexterm2 to_bytes..ip::address_v6]
-Get the address in bytes, in network byte order.
-
-
- bytes_type to_bytes() const;
-
-
-
-[endsect]
-
-
-[section:to_string ip::address_v6::to_string]
-
-[indexterm2 to_string..ip::address_v6]
-Get the address as a string.
-
-
- std::string ``[link boost_asio.reference.ip__address_v6.to_string.overload1 to_string]``() const;
- `` [''''&raquo;''' [link boost_asio.reference.ip__address_v6.to_string.overload1 more...]]``
-
- std::string ``[link boost_asio.reference.ip__address_v6.to_string.overload2 to_string]``(
- boost::system::error_code & ec) const;
- `` [''''&raquo;''' [link boost_asio.reference.ip__address_v6.to_string.overload2 more...]]``
-
-
-[section:overload1 ip::address_v6::to_string (1 of 2 overloads)]
-
-
-Get the address as a string.
-
-
- std::string to_string() const;
-
-
-
-[endsect]
-
-
-
-[section:overload2 ip::address_v6::to_string (2 of 2 overloads)]
-
-
-Get the address as a string.
-
-
- std::string to_string(
- boost::system::error_code & ec) const;
-
-
-
-[endsect]
-
-
-[endsect]
-
-
-[section:to_v4 ip::address_v6::to_v4]
-
-[indexterm2 to_v4..ip::address_v6]
-Converts an IPv4-mapped or IPv4-compatible address to an IPv4 address.
-
-
- address_v4 to_v4() const;
-
-
-
-[endsect]
-
-
-
-[section:v4_compatible ip::address_v6::v4_compatible]
-
-[indexterm2 v4_compatible..ip::address_v6]
-Create an IPv4-compatible IPv6 address.
+[indexterm2 to_v4..ip::address]
+Get the address as an IP version 4 address.
 
 
- static address_v6 v4_compatible(
- const address_v4 & addr);
+ boost::asio::ip::address_v4 to_v4() const;
 
 
 
@@ -57062,14 +56855,13 @@
 
 
 
-[section:v4_mapped ip::address_v6::v4_mapped]
+[section:to_v6 ip::address::to_v6]
 
-[indexterm2 v4_mapped..ip::address_v6]
-Create an IPv4-mapped IPv6 address.
+[indexterm2 to_v6..ip::address]
+Get the address as an IP version 6 address.
 
 
- static address_v6 v4_mapped(
- const address_v4 & addr);
+ boost::asio::ip::address_v6 to_v6() const;
 
 
 
@@ -57079,15 +56871,13 @@
 
 [endsect]
 
-[section:ip__basic_endpoint ip::basic_endpoint]
+[section:ip__address_v4 ip::address_v4]
 
 
-Describes an endpoint for a version-independent IP socket.
+Implements IP version 4 style addresses.
 
 
- template<
- typename ``[link boost_asio.reference.InternetProtocol InternetProtocol]``>
- class basic_endpoint
+ class address_v4
 
 
 [heading Types]
@@ -57096,15 +56886,8 @@
 
   [
 
- [[link boost_asio.reference.ip__basic_endpoint.data_type [*data_type]]]
- [The type of the endpoint structure. This type is dependent on the underlying implementation of the socket layer. ]
-
- ]
-
- [
-
- [[link boost_asio.reference.ip__basic_endpoint.protocol_type [*protocol_type]]]
- [The protocol type associated with the endpoint. ]
+ [[link boost_asio.reference.ip__address_v4.bytes_type [*bytes_type]]]
+ [The type used to represent an address as an array of bytes. ]
   
   ]
 
@@ -57115,58 +56898,91 @@
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.ip__basic_endpoint.address [*address]]]
- [Get the IP address associated with the endpoint.
-
- Set the IP address associated with the endpoint. ]
- ]
-
- [
- [[link boost_asio.reference.ip__basic_endpoint.basic_endpoint [*basic_endpoint]]]
+ [[link boost_asio.reference.ip__address_v4.address_v4 [*address_v4]]]
     [Default constructor.
 
- Construct an endpoint using a port number, specified in the host's byte order. The IP address will be the any address (i.e. INADDR_ANY or in6addr_any). This constructor would typically be used for accepting new connections.
+ Construct an address from raw bytes.
 
- Construct an endpoint using a port number and an IP address. This constructor may be used for accepting connections on a specific interface or for making a connection to a remote endpoint.
+ Construct an address from a unsigned long in host byte order.
 
      Copy constructor. ]
   ]
   
   [
- [[link boost_asio.reference.ip__basic_endpoint.capacity [*capacity]]]
- [Get the capacity of the endpoint in the native type. ]
+ [[link boost_asio.reference.ip__address_v4.any [*any]]]
+ [Obtain an address object that represents any address. ]
   ]
   
   [
- [[link boost_asio.reference.ip__basic_endpoint.data [*data]]]
- [Get the underlying endpoint in the native type. ]
+ [[link boost_asio.reference.ip__address_v4.broadcast [*broadcast]]]
+ [Obtain an address object that represents the broadcast address.
+
+ Obtain an address object that represents the broadcast address that corresponds to the specified address and netmask. ]
   ]
   
   [
- [[link boost_asio.reference.ip__basic_endpoint.operator_eq_ [*operator=]]]
- [Assign from another endpoint. ]
+ [[link boost_asio.reference.ip__address_v4.from_string [*from_string]]]
+ [Create an address from an IP address string in dotted decimal form. ]
   ]
   
   [
- [[link boost_asio.reference.ip__basic_endpoint.port [*port]]]
- [Get the port associated with the endpoint. The port number is always in the host's byte order.
-
- Set the port associated with the endpoint. The port number is always in the host's byte order. ]
+ [[link boost_asio.reference.ip__address_v4.is_class_a [*is_class_a]]]
+ [Determine whether the address is a class A address. ]
   ]
   
   [
- [[link boost_asio.reference.ip__basic_endpoint.protocol [*protocol]]]
- [The protocol associated with the endpoint. ]
+ [[link boost_asio.reference.ip__address_v4.is_class_b [*is_class_b]]]
+ [Determine whether the address is a class B address. ]
   ]
   
   [
- [[link boost_asio.reference.ip__basic_endpoint.resize [*resize]]]
- [Set the underlying size of the endpoint in the native type. ]
+ [[link boost_asio.reference.ip__address_v4.is_class_c [*is_class_c]]]
+ [Determine whether the address is a class C address. ]
   ]
   
   [
- [[link boost_asio.reference.ip__basic_endpoint.size [*size]]]
- [Get the underlying size of the endpoint in the native type. ]
+ [[link boost_asio.reference.ip__address_v4.is_loopback [*is_loopback]]]
+ [Determine whether the address is a loopback address. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__address_v4.is_multicast [*is_multicast]]]
+ [Determine whether the address is a multicast address. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__address_v4.is_unspecified [*is_unspecified]]]
+ [Determine whether the address is unspecified. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__address_v4.loopback [*loopback]]]
+ [Obtain an address object that represents the loopback address. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__address_v4.netmask [*netmask]]]
+ [Obtain the netmask that corresponds to the address, based on its address class. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__address_v4.operator_eq_ [*operator=]]]
+ [Assign from another address. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__address_v4.to_bytes [*to_bytes]]]
+ [Get the address in bytes, in network byte order. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__address_v4.to_string [*to_string]]]
+ [Get the address as a string in dotted decimal format. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__address_v4.to_ulong [*to_ulong]]]
+ [Get the address as an unsigned long in host byte order. ]
   ]
   
 ]
@@ -57176,33 +56992,33 @@
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.ip__basic_endpoint.operator_not__eq_ [*operator!=]]]
- [Compare two endpoints for inequality. ]
+ [[link boost_asio.reference.ip__address_v4.operator_not__eq_ [*operator!=]]]
+ [Compare two addresses for inequality. ]
   ]
   
   [
- [[link boost_asio.reference.ip__basic_endpoint.operator_lt_ [*operator<]]]
- [Compare endpoints for ordering. ]
+ [[link boost_asio.reference.ip__address_v4.operator_lt_ [*operator<]]]
+ [Compare addresses for ordering. ]
   ]
   
   [
- [[link boost_asio.reference.ip__basic_endpoint.operator_lt__eq_ [*operator<=]]]
- [Compare endpoints for ordering. ]
+ [[link boost_asio.reference.ip__address_v4.operator_lt__eq_ [*operator<=]]]
+ [Compare addresses for ordering. ]
   ]
   
   [
- [[link boost_asio.reference.ip__basic_endpoint.operator_eq__eq_ [*operator==]]]
- [Compare two endpoints for equality. ]
+ [[link boost_asio.reference.ip__address_v4.operator_eq__eq_ [*operator==]]]
+ [Compare two addresses for equality. ]
   ]
   
   [
- [[link boost_asio.reference.ip__basic_endpoint.operator_gt_ [*operator>]]]
- [Compare endpoints for ordering. ]
+ [[link boost_asio.reference.ip__address_v4.operator_gt_ [*operator>]]]
+ [Compare addresses for ordering. ]
   ]
   
   [
- [[link boost_asio.reference.ip__basic_endpoint.operator_gt__eq_ [*operator>=]]]
- [Compare endpoints for ordering. ]
+ [[link boost_asio.reference.ip__address_v4.operator_gt__eq_ [*operator>=]]]
+ [Compare addresses for ordering. ]
   ]
   
 ]
@@ -57212,170 +57028,163 @@
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.ip__basic_endpoint.operator_lt__lt_ [*operator<<]]]
- [Output an endpoint as a string. ]
+ [[link boost_asio.reference.ip__address_v4.operator_lt__lt_ [*operator<<]]]
+ [Output an address as a string. ]
   ]
   
 ]
 
-The [link boost_asio.reference.ip__basic_endpoint `ip::basic_endpoint`] class template describes an endpoint that may be associated with a particular socket.
+The [link boost_asio.reference.ip__address_v4 `ip::address_v4`] class provides the ability to use and manipulate IP version 4 addresses.
 
 
 [heading Thread Safety]
   
 [*Distinct] [*objects:] Safe.
 
-[*Shared] [*objects:] Unsafe.
-
+[*Shared] [*objects:] Unsafe.
 
 
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/ip/basic_endpoint.hpp]
+[*Header: ][^boost/asio/ip/address_v4.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
-[section:address ip::basic_endpoint::address]
-
-[indexterm2 address..ip::basic_endpoint]
-Get the IP address associated with the endpoint.
-
+[section:address_v4 ip::address_v4::address_v4]
 
- boost::asio::ip::address ``[link boost_asio.reference.ip__basic_endpoint.address.overload1 address]``() const;
- `` [''''&raquo;''' [link boost_asio.reference.ip__basic_endpoint.address.overload1 more...]]``
+[indexterm2 address_v4..ip::address_v4]
+Default constructor.
 
 
-Set the IP address associated with the endpoint.
+ ``[link boost_asio.reference.ip__address_v4.address_v4.overload1 address_v4]``();
+ `` [''''&raquo;''' [link boost_asio.reference.ip__address_v4.address_v4.overload1 more...]]``
 
 
- void ``[link boost_asio.reference.ip__basic_endpoint.address.overload2 address]``(
- const boost::asio::ip::address & addr);
- `` [''''&raquo;''' [link boost_asio.reference.ip__basic_endpoint.address.overload2 more...]]``
+Construct an address from raw bytes.
 
 
-[section:overload1 ip::basic_endpoint::address (1 of 2 overloads)]
+ explicit ``[link boost_asio.reference.ip__address_v4.address_v4.overload2 address_v4]``(
+ const bytes_type & bytes);
+ `` [''''&raquo;''' [link boost_asio.reference.ip__address_v4.address_v4.overload2 more...]]``
 
 
-Get the IP address associated with the endpoint.
+Construct an address from a unsigned long in host byte order.
 
 
- boost::asio::ip::address address() const;
+ explicit ``[link boost_asio.reference.ip__address_v4.address_v4.overload3 address_v4]``(
+ unsigned long addr);
+ `` [''''&raquo;''' [link boost_asio.reference.ip__address_v4.address_v4.overload3 more...]]``
 
 
+Copy constructor.
 
-[endsect]
 
+ ``[link boost_asio.reference.ip__address_v4.address_v4.overload4 address_v4]``(
+ const address_v4 & other);
+ `` [''''&raquo;''' [link boost_asio.reference.ip__address_v4.address_v4.overload4 more...]]``
 
 
-[section:overload2 ip::basic_endpoint::address (2 of 2 overloads)]
+[section:overload1 ip::address_v4::address_v4 (1 of 4 overloads)]
 
 
-Set the IP address associated with the endpoint.
+Default constructor.
 
 
- void address(
- const boost::asio::ip::address & addr);
+ address_v4();
 
 
 
 [endsect]
 
 
-[endsect]
 
-[section:basic_endpoint ip::basic_endpoint::basic_endpoint]
+[section:overload2 ip::address_v4::address_v4 (2 of 4 overloads)]
 
-[indexterm2 basic_endpoint..ip::basic_endpoint]
-Default constructor.
 
+Construct an address from raw bytes.
 
- ``[link boost_asio.reference.ip__basic_endpoint.basic_endpoint.overload1 basic_endpoint]``();
- `` [''''&raquo;''' [link boost_asio.reference.ip__basic_endpoint.basic_endpoint.overload1 more...]]``
 
+ address_v4(
+ const bytes_type & bytes);
 
-Construct an endpoint using a port number, specified in the host's byte order. The IP address will be the any address (i.e. INADDR\_ANY or in6addr\_any). This constructor would typically be used for accepting new connections.
 
 
- ``[link boost_asio.reference.ip__basic_endpoint.basic_endpoint.overload2 basic_endpoint]``(
- const InternetProtocol & internet_protocol,
- unsigned short port_num);
- `` [''''&raquo;''' [link boost_asio.reference.ip__basic_endpoint.basic_endpoint.overload2 more...]]``
+[endsect]
 
 
-Construct an endpoint using a port number and an IP address. This constructor may be used for accepting connections on a specific interface or for making a connection to a remote endpoint.
 
+[section:overload3 ip::address_v4::address_v4 (3 of 4 overloads)]
 
- ``[link boost_asio.reference.ip__basic_endpoint.basic_endpoint.overload3 basic_endpoint]``(
- const boost::asio::ip::address & addr,
- unsigned short port_num);
- `` [''''&raquo;''' [link boost_asio.reference.ip__basic_endpoint.basic_endpoint.overload3 more...]]``
 
+Construct an address from a unsigned long in host byte order.
 
-Copy constructor.
 
+ address_v4(
+ unsigned long addr);
 
- ``[link boost_asio.reference.ip__basic_endpoint.basic_endpoint.overload4 basic_endpoint]``(
- const basic_endpoint & other);
- `` [''''&raquo;''' [link boost_asio.reference.ip__basic_endpoint.basic_endpoint.overload4 more...]]``
 
 
-[section:overload1 ip::basic_endpoint::basic_endpoint (1 of 4 overloads)]
+[endsect]
 
 
-Default constructor.
 
+[section:overload4 ip::address_v4::address_v4 (4 of 4 overloads)]
 
- basic_endpoint();
 
+Copy constructor.
 
 
-[endsect]
+ address_v4(
+ const address_v4 & other);
 
 
 
-[section:overload2 ip::basic_endpoint::basic_endpoint (2 of 4 overloads)]
+[endsect]
 
 
-Construct an endpoint using a port number, specified in the host's byte order. The IP address will be the any address (i.e. INADDR\_ANY or in6addr\_any). This constructor would typically be used for accepting new connections.
+[endsect]
 
 
- basic_endpoint(
- const InternetProtocol & internet_protocol,
- unsigned short port_num);
+[section:any ip::address_v4::any]
 
+[indexterm2 any..ip::address_v4]
+Obtain an address object that represents any address.
 
 
-[heading Examples]
-
-To initialise an IPv4 TCP endpoint for port 1234, use:
+ static address_v4 any();
 
- boost::asio::ip::tcp::endpoint ep(boost::asio::ip::tcp::v4(), 1234);
 
 
+[endsect]
 
 
-To specify an IPv6 UDP endpoint for port 9876, use:
+[section:broadcast ip::address_v4::broadcast]
 
- boost::asio::ip::udp::endpoint ep(boost::asio::ip::udp::v6(), 9876);
+[indexterm2 broadcast..ip::address_v4]
+Obtain an address object that represents the broadcast address.
 
 
+ static address_v4 ``[link boost_asio.reference.ip__address_v4.broadcast.overload1 broadcast]``();
+ `` [''''&raquo;''' [link boost_asio.reference.ip__address_v4.broadcast.overload1 more...]]``
 
 
+Obtain an address object that represents the broadcast address that corresponds to the specified address and netmask.
 
-[endsect]
 
+ static address_v4 ``[link boost_asio.reference.ip__address_v4.broadcast.overload2 broadcast]``(
+ const address_v4 & addr,
+ const address_v4 & mask);
+ `` [''''&raquo;''' [link boost_asio.reference.ip__address_v4.broadcast.overload2 more...]]``
 
 
-[section:overload3 ip::basic_endpoint::basic_endpoint (3 of 4 overloads)]
+[section:overload1 ip::address_v4::broadcast (1 of 2 overloads)]
 
 
-Construct an endpoint using a port number and an IP address. This constructor may be used for accepting connections on a specific interface or for making a connection to a remote endpoint.
+Obtain an address object that represents the broadcast address.
 
 
- basic_endpoint(
- const boost::asio::ip::address & addr,
- unsigned short port_num);
+ static address_v4 broadcast();
 
 
 
@@ -57383,14 +57192,15 @@
 
 
 
-[section:overload4 ip::basic_endpoint::basic_endpoint (4 of 4 overloads)]
+[section:overload2 ip::address_v4::broadcast (2 of 2 overloads)]
 
 
-Copy constructor.
+Obtain an address object that represents the broadcast address that corresponds to the specified address and netmask.
 
 
- basic_endpoint(
- const basic_endpoint & other);
+ static address_v4 broadcast(
+ const address_v4 & addr,
+ const address_v4 & mask);
 
 
 
@@ -57400,194 +57210,199 @@
 [endsect]
 
 
-[section:capacity ip::basic_endpoint::capacity]
+[section:bytes_type ip::address_v4::bytes_type]
 
-[indexterm2 capacity..ip::basic_endpoint]
-Get the capacity of the endpoint in the native type.
+[indexterm2 bytes_type..ip::address_v4]
+The type used to represent an address as an array of bytes.
 
 
- std::size_t capacity() const;
+ typedef array< unsigned char, 4 > bytes_type;
 
 
 
-[endsect]
 
+[heading Remarks]
+
+This type is defined in terms of the C++0x template `std::array` when it is available. Otherwise, it uses `boost:array`.
 
-[section:data ip::basic_endpoint::data]
 
-[indexterm2 data..ip::basic_endpoint]
-Get the underlying endpoint in the native type.
 
+[heading Requirements]
 
- data_type * ``[link boost_asio.reference.ip__basic_endpoint.data.overload1 data]``();
- `` [''''&raquo;''' [link boost_asio.reference.ip__basic_endpoint.data.overload1 more...]]``
+[*Header: ][^boost/asio/ip/address_v4.hpp]
 
- const data_type * ``[link boost_asio.reference.ip__basic_endpoint.data.overload2 data]``() const;
- `` [''''&raquo;''' [link boost_asio.reference.ip__basic_endpoint.data.overload2 more...]]``
+[*Convenience header: ][^boost/asio.hpp]
 
 
-[section:overload1 ip::basic_endpoint::data (1 of 2 overloads)]
+[endsect]
 
 
-Get the underlying endpoint in the native type.
+[section:from_string ip::address_v4::from_string]
 
+[indexterm2 from_string..ip::address_v4]
+Create an address from an IP address string in dotted decimal form.
 
- data_type * data();
 
+ static address_v4 ``[link boost_asio.reference.ip__address_v4.from_string.overload1 from_string]``(
+ const char * str);
+ `` [''''&raquo;''' [link boost_asio.reference.ip__address_v4.from_string.overload1 more...]]``
 
+ static address_v4 ``[link boost_asio.reference.ip__address_v4.from_string.overload2 from_string]``(
+ const char * str,
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.ip__address_v4.from_string.overload2 more...]]``
 
-[endsect]
+ static address_v4 ``[link boost_asio.reference.ip__address_v4.from_string.overload3 from_string]``(
+ const std::string & str);
+ `` [''''&raquo;''' [link boost_asio.reference.ip__address_v4.from_string.overload3 more...]]``
 
+ static address_v4 ``[link boost_asio.reference.ip__address_v4.from_string.overload4 from_string]``(
+ const std::string & str,
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.ip__address_v4.from_string.overload4 more...]]``
 
 
-[section:overload2 ip::basic_endpoint::data (2 of 2 overloads)]
+[section:overload1 ip::address_v4::from_string (1 of 4 overloads)]
 
 
-Get the underlying endpoint in the native type.
+Create an address from an IP address string in dotted decimal form.
 
 
- const data_type * data() const;
+ static address_v4 from_string(
+ const char * str);
 
 
 
 [endsect]
 
 
-[endsect]
 
+[section:overload2 ip::address_v4::from_string (2 of 4 overloads)]
 
-[section:data_type ip::basic_endpoint::data_type]
 
-[indexterm2 data_type..ip::basic_endpoint]
-The type of the endpoint structure. This type is dependent on the underlying implementation of the socket layer.
+Create an address from an IP address string in dotted decimal form.
 
 
- typedef implementation_defined data_type;
+ static address_v4 from_string(
+ const char * str,
+ boost::system::error_code & ec);
 
 
 
-[heading Requirements]
+[endsect]
 
-[*Header: ][^boost/asio/ip/basic_endpoint.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
+
+[section:overload3 ip::address_v4::from_string (3 of 4 overloads)]
+
+
+Create an address from an IP address string in dotted decimal form.
+
+
+ static address_v4 from_string(
+ const std::string & str);
+
 
 
 [endsect]
 
 
 
-[section:operator_not__eq_ ip::basic_endpoint::operator!=]
+[section:overload4 ip::address_v4::from_string (4 of 4 overloads)]
 
-[indexterm2 operator!=..ip::basic_endpoint]
-Compare two endpoints for inequality.
 
+Create an address from an IP address string in dotted decimal form.
 
- friend bool operator!=(
- const basic_endpoint< InternetProtocol > & e1,
- const basic_endpoint< InternetProtocol > & e2);
 
+ static address_v4 from_string(
+ const std::string & str,
+ boost::system::error_code & ec);
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/ip/basic_endpoint.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
+[endsect]
 
 
 [endsect]
 
 
+[section:is_class_a ip::address_v4::is_class_a]
 
-[section:operator_lt_ ip::basic_endpoint::operator<]
+[indexterm2 is_class_a..ip::address_v4]
+Determine whether the address is a class A address.
 
-[indexterm2 operator<..ip::basic_endpoint]
-Compare endpoints for ordering.
 
+ bool is_class_a() const;
 
- friend bool operator<(
- const basic_endpoint< InternetProtocol > & e1,
- const basic_endpoint< InternetProtocol > & e2);
 
 
-[heading Requirements]
+[endsect]
 
-[*Header: ][^boost/asio/ip/basic_endpoint.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
 
+[section:is_class_b ip::address_v4::is_class_b]
 
-[endsect]
+[indexterm2 is_class_b..ip::address_v4]
+Determine whether the address is a class B address.
 
 
+ bool is_class_b() const;
 
-[section:operator_lt__lt_ ip::basic_endpoint::operator<<]
 
-[indexterm2 operator<<..ip::basic_endpoint]
-Output an endpoint as a string.
 
+[endsect]
 
- std::basic_ostream< Elem, Traits > & operator<<(
- std::basic_ostream< Elem, Traits > & os,
- const basic_endpoint< InternetProtocol > & endpoint);
 
 
-Used to output a human-readable string for a specified endpoint.
+[section:is_class_c ip::address_v4::is_class_c]
 
+[indexterm2 is_class_c..ip::address_v4]
+Determine whether the address is a class C address.
 
-[heading Parameters]
-
 
-[variablelist
-
-[[os][The output stream to which the string will be written.]]
+ bool is_class_c() const;
 
-[[endpoint][The endpoint to be written.]]
 
-]
 
+[endsect]
 
-[heading Return Value]
-
-The output stream.
 
 
+[section:is_loopback ip::address_v4::is_loopback]
 
+[indexterm2 is_loopback..ip::address_v4]
+Determine whether the address is a loopback address.
 
-[endsect]
 
+ bool is_loopback() const;
 
 
-[section:operator_lt__eq_ ip::basic_endpoint::operator<=]
 
-[indexterm2 operator<=..ip::basic_endpoint]
-Compare endpoints for ordering.
+[endsect]
 
 
- friend bool operator<=(
- const basic_endpoint< InternetProtocol > & e1,
- const basic_endpoint< InternetProtocol > & e2);
 
+[section:is_multicast ip::address_v4::is_multicast]
 
-[heading Requirements]
+[indexterm2 is_multicast..ip::address_v4]
+Determine whether the address is a multicast address.
 
-[*Header: ][^boost/asio/ip/basic_endpoint.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
+ bool is_multicast() const;
+
 
 
 [endsect]
 
 
 
-[section:operator_eq_ ip::basic_endpoint::operator=]
+[section:is_unspecified ip::address_v4::is_unspecified]
 
-[indexterm2 operator=..ip::basic_endpoint]
-Assign from another endpoint.
+[indexterm2 is_unspecified..ip::address_v4]
+Determine whether the address is unspecified.
 
 
- basic_endpoint & operator=(
- const basic_endpoint & other);
+ bool is_unspecified() const;
 
 
 
@@ -57595,42 +57410,49 @@
 
 
 
-[section:operator_eq__eq_ ip::basic_endpoint::operator==]
+[section:loopback ip::address_v4::loopback]
 
-[indexterm2 operator==..ip::basic_endpoint]
-Compare two endpoints for equality.
+[indexterm2 loopback..ip::address_v4]
+Obtain an address object that represents the loopback address.
 
 
- friend bool operator==(
- const basic_endpoint< InternetProtocol > & e1,
- const basic_endpoint< InternetProtocol > & e2);
+ static address_v4 loopback();
 
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/ip/basic_endpoint.hpp]
+[endsect]
+
+
+
+[section:netmask ip::address_v4::netmask]
+
+[indexterm2 netmask..ip::address_v4]
+Obtain the netmask that corresponds to the address, based on its address class.
+
+
+ static address_v4 netmask(
+ const address_v4 & addr);
 
-[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
 
-[section:operator_gt_ ip::basic_endpoint::operator>]
+[section:operator_not__eq_ ip::address_v4::operator!=]
 
-[indexterm2 operator>..ip::basic_endpoint]
-Compare endpoints for ordering.
+[indexterm2 operator!=..ip::address_v4]
+Compare two addresses for inequality.
 
 
- friend bool operator>(
- const basic_endpoint< InternetProtocol > & e1,
- const basic_endpoint< InternetProtocol > & e2);
+ friend bool operator!=(
+ const address_v4 & a1,
+ const address_v4 & a2);
 
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/ip/basic_endpoint.hpp]
+[*Header: ][^boost/asio/ip/address_v4.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
@@ -57639,20 +57461,20 @@
 
 
 
-[section:operator_gt__eq_ ip::basic_endpoint::operator>=]
+[section:operator_lt_ ip::address_v4::operator<]
 
-[indexterm2 operator>=..ip::basic_endpoint]
-Compare endpoints for ordering.
+[indexterm2 operator<..ip::address_v4]
+Compare addresses for ordering.
 
 
- friend bool operator>=(
- const basic_endpoint< InternetProtocol > & e1,
- const basic_endpoint< InternetProtocol > & e2);
+ friend bool operator<(
+ const address_v4 & a1,
+ const address_v4 & a2);
 
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/ip/basic_endpoint.hpp]
+[*Header: ][^boost/asio/ip/address_v4.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
@@ -57660,31 +57482,40 @@
 [endsect]
 
 
-[section:port ip::basic_endpoint::port]
 
-[indexterm2 port..ip::basic_endpoint]
-Get the port associated with the endpoint. The port number is always in the host's byte order.
+[section:operator_lt__lt_ ip::address_v4::operator<<]
+
+[indexterm2 operator<<..ip::address_v4]
+Output an address as a string.
 
 
- unsigned short ``[link boost_asio.reference.ip__basic_endpoint.port.overload1 port]``() const;
- `` [''''&raquo;''' [link boost_asio.reference.ip__basic_endpoint.port.overload1 more...]]``
+ template<
+ typename Elem,
+ typename Traits>
+ std::basic_ostream< Elem, Traits > & operator<<(
+ std::basic_ostream< Elem, Traits > & os,
+ const address_v4 & addr);
 
 
-Set the port associated with the endpoint. The port number is always in the host's byte order.
+Used to output a human-readable string for a specified address.
 
 
- void ``[link boost_asio.reference.ip__basic_endpoint.port.overload2 port]``(
- unsigned short port_num);
- `` [''''&raquo;''' [link boost_asio.reference.ip__basic_endpoint.port.overload2 more...]]``
+[heading Parameters]
+
 
+[variablelist
+
+[[os][The output stream to which the string will be written.]]
 
-[section:overload1 ip::basic_endpoint::port (1 of 2 overloads)]
+[[addr][The address to be written.]]
 
+]
 
-Get the port associated with the endpoint. The port number is always in the host's byte order.
 
+[heading Return Value]
+
+The output stream.
 
- unsigned short port() const;
 
 
 
@@ -57692,50 +57523,101 @@
 
 
 
-[section:overload2 ip::basic_endpoint::port (2 of 2 overloads)]
+[section:operator_lt__eq_ ip::address_v4::operator<=]
+
+[indexterm2 operator<=..ip::address_v4]
+Compare addresses for ordering.
 
 
-Set the port associated with the endpoint. The port number is always in the host's byte order.
+ friend bool operator<=(
+ const address_v4 & a1,
+ const address_v4 & a2);
 
 
- void port(
- unsigned short port_num);
+[heading Requirements]
 
+[*Header: ][^boost/asio/ip/address_v4.hpp]
+
+[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
+
+[section:operator_eq_ ip::address_v4::operator=]
+
+[indexterm2 operator=..ip::address_v4]
+Assign from another address.
+
+
+ address_v4 & operator=(
+ const address_v4 & other);
+
+
+
 [endsect]
 
 
-[section:protocol ip::basic_endpoint::protocol]
 
-[indexterm2 protocol..ip::basic_endpoint]
-The protocol associated with the endpoint.
+[section:operator_eq__eq_ ip::address_v4::operator==]
+
+[indexterm2 operator==..ip::address_v4]
+Compare two addresses for equality.
 
 
- protocol_type protocol() const;
+ friend bool operator==(
+ const address_v4 & a1,
+ const address_v4 & a2);
+
+
+[heading Requirements]
+
+[*Header: ][^boost/asio/ip/address_v4.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
 
-[section:protocol_type ip::basic_endpoint::protocol_type]
+[section:operator_gt_ ip::address_v4::operator>]
 
-[indexterm2 protocol_type..ip::basic_endpoint]
-The protocol type associated with the endpoint.
+[indexterm2 operator>..ip::address_v4]
+Compare addresses for ordering.
 
 
- typedef InternetProtocol protocol_type;
+ friend bool operator>(
+ const address_v4 & a1,
+ const address_v4 & a2);
+
+
+[heading Requirements]
+
+[*Header: ][^boost/asio/ip/address_v4.hpp]
+
+[*Convenience header: ][^boost/asio.hpp]
+
+
+[endsect]
+
+
+
+[section:operator_gt__eq_ ip::address_v4::operator>=]
 
+[indexterm2 operator>=..ip::address_v4]
+Compare addresses for ordering.
+
+
+ friend bool operator>=(
+ const address_v4 & a1,
+ const address_v4 & a2);
 
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/ip/basic_endpoint.hpp]
+[*Header: ][^boost/asio/ip/address_v4.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
@@ -57744,48 +57626,87 @@
 
 
 
-[section:resize ip::basic_endpoint::resize]
+[section:to_bytes ip::address_v4::to_bytes]
 
-[indexterm2 resize..ip::basic_endpoint]
-Set the underlying size of the endpoint in the native type.
+[indexterm2 to_bytes..ip::address_v4]
+Get the address in bytes, in network byte order.
 
 
- void resize(
- std::size_t new_size);
+ bytes_type to_bytes() const;
 
 
 
 [endsect]
 
 
+[section:to_string ip::address_v4::to_string]
 
-[section:size ip::basic_endpoint::size]
+[indexterm2 to_string..ip::address_v4]
+Get the address as a string in dotted decimal format.
 
-[indexterm2 size..ip::basic_endpoint]
-Get the underlying size of the endpoint in the native type.
 
+ std::string ``[link boost_asio.reference.ip__address_v4.to_string.overload1 to_string]``() const;
+ `` [''''&raquo;''' [link boost_asio.reference.ip__address_v4.to_string.overload1 more...]]``
+
+ std::string ``[link boost_asio.reference.ip__address_v4.to_string.overload2 to_string]``(
+ boost::system::error_code & ec) const;
+ `` [''''&raquo;''' [link boost_asio.reference.ip__address_v4.to_string.overload2 more...]]``
+
+
+[section:overload1 ip::address_v4::to_string (1 of 2 overloads)]
+
+
+Get the address as a string in dotted decimal format.
+
+
+ std::string to_string() const;
 
- std::size_t size() const;
 
 
+[endsect]
+
+
+
+[section:overload2 ip::address_v4::to_string (2 of 2 overloads)]
+
+
+Get the address as a string in dotted decimal format.
+
+
+ std::string to_string(
+ boost::system::error_code & ec) const;
+
+
+
+[endsect]
+
 
 [endsect]
 
 
+[section:to_ulong ip::address_v4::to_ulong]
+
+[indexterm2 to_ulong..ip::address_v4]
+Get the address as an unsigned long in host byte order.
+
+
+ unsigned long to_ulong() const;
+
+
 
 [endsect]
 
-[section:ip__basic_resolver ip::basic_resolver]
 
 
-Provides endpoint resolution functionality.
+[endsect]
 
+[section:ip__address_v6 ip::address_v6]
 
- template<
- typename ``[link boost_asio.reference.InternetProtocol InternetProtocol]``,
- typename ``[link boost_asio.reference.ResolverService ResolverService]`` = resolver_service<InternetProtocol>>
- class basic_resolver :
- public basic_io_object< ResolverService >
+
+Implements IP version 6 style addresses.
+
+
+ class address_v6
 
 
 [heading Types]
@@ -57794,116 +57715,186 @@
 
   [
 
- [[link boost_asio.reference.ip__basic_resolver.endpoint_type [*endpoint_type]]]
- [The endpoint type. ]
+ [[link boost_asio.reference.ip__address_v6.bytes_type [*bytes_type]]]
+ [The type used to represent an address as an array of bytes. ]
   
   ]
 
+]
+
+[heading Member Functions]
+[table
+ [[Name][Description]]
+
   [
+ [[link boost_asio.reference.ip__address_v6.address_v6 [*address_v6]]]
+ [Default constructor.
 
- [[link boost_asio.reference.ip__basic_resolver.implementation_type [*implementation_type]]]
- [The underlying implementation type of I/O object. ]
+ Construct an address from raw bytes and scope ID.
+
+ Copy constructor. ]
+ ]
   
+ [
+ [[link boost_asio.reference.ip__address_v6.any [*any]]]
+ [Obtain an address object that represents any address. ]
   ]
-
+
   [
-
- [[link boost_asio.reference.ip__basic_resolver.iterator [*iterator]]]
- [The iterator type. ]
+ [[link boost_asio.reference.ip__address_v6.from_string [*from_string]]]
+ [Create an address from an IP address string. ]
+ ]
   
+ [
+ [[link boost_asio.reference.ip__address_v6.is_link_local [*is_link_local]]]
+ [Determine whether the address is link local. ]
   ]
-
+
   [
-
- [[link boost_asio.reference.ip__basic_resolver.protocol_type [*protocol_type]]]
- [The protocol type. ]
+ [[link boost_asio.reference.ip__address_v6.is_loopback [*is_loopback]]]
+ [Determine whether the address is a loopback address. ]
+ ]
   
+ [
+ [[link boost_asio.reference.ip__address_v6.is_multicast [*is_multicast]]]
+ [Determine whether the address is a multicast address. ]
   ]
-
+
   [
-
- [[link boost_asio.reference.ip__basic_resolver.query [*query]]]
- [The query type. ]
+ [[link boost_asio.reference.ip__address_v6.is_multicast_global [*is_multicast_global]]]
+ [Determine whether the address is a global multicast address. ]
+ ]
   
+ [
+ [[link boost_asio.reference.ip__address_v6.is_multicast_link_local [*is_multicast_link_local]]]
+ [Determine whether the address is a link-local multicast address. ]
   ]
-
+
   [
-
- [[link boost_asio.reference.ip__basic_resolver.service_type [*service_type]]]
- [The type of the service that will be used to provide I/O operations. ]
+ [[link boost_asio.reference.ip__address_v6.is_multicast_node_local [*is_multicast_node_local]]]
+ [Determine whether the address is a node-local multicast address. ]
+ ]
   
+ [
+ [[link boost_asio.reference.ip__address_v6.is_multicast_org_local [*is_multicast_org_local]]]
+ [Determine whether the address is a org-local multicast address. ]
   ]
-
-]
-
-[heading Member Functions]
-[table
- [[Name][Description]]
-
+
   [
- [[link boost_asio.reference.ip__basic_resolver.async_resolve [*async_resolve]]]
- [Asynchronously perform forward resolution of a query to a list of entries.
-
- Asynchronously perform reverse resolution of an endpoint to a list of entries. ]
+ [[link boost_asio.reference.ip__address_v6.is_multicast_site_local [*is_multicast_site_local]]]
+ [Determine whether the address is a site-local multicast address. ]
   ]
   
   [
- [[link boost_asio.reference.ip__basic_resolver.basic_resolver [*basic_resolver]]]
- [Constructor. ]
+ [[link boost_asio.reference.ip__address_v6.is_site_local [*is_site_local]]]
+ [Determine whether the address is site local. ]
   ]
   
   [
- [[link boost_asio.reference.ip__basic_resolver.cancel [*cancel]]]
- [Cancel any asynchronous operations that are waiting on the resolver. ]
+ [[link boost_asio.reference.ip__address_v6.is_unspecified [*is_unspecified]]]
+ [Determine whether the address is unspecified. ]
   ]
   
   [
- [[link boost_asio.reference.ip__basic_resolver.get_io_service [*get_io_service]]]
- [Get the io_service associated with the object. ]
+ [[link boost_asio.reference.ip__address_v6.is_v4_compatible [*is_v4_compatible]]]
+ [Determine whether the address is an IPv4-compatible address. ]
   ]
   
   [
- [[link boost_asio.reference.ip__basic_resolver.resolve [*resolve]]]
- [Perform forward resolution of a query to a list of entries.
-
- Perform reverse resolution of an endpoint to a list of entries. ]
+ [[link boost_asio.reference.ip__address_v6.is_v4_mapped [*is_v4_mapped]]]
+ [Determine whether the address is a mapped IPv4 address. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__address_v6.loopback [*loopback]]]
+ [Obtain an address object that represents the loopback address. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__address_v6.operator_eq_ [*operator=]]]
+ [Assign from another address. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__address_v6.scope_id [*scope_id]]]
+ [The scope ID of the address. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__address_v6.to_bytes [*to_bytes]]]
+ [Get the address in bytes, in network byte order. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__address_v6.to_string [*to_string]]]
+ [Get the address as a string. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__address_v6.to_v4 [*to_v4]]]
+ [Converts an IPv4-mapped or IPv4-compatible address to an IPv4 address. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__address_v6.v4_compatible [*v4_compatible]]]
+ [Create an IPv4-compatible IPv6 address. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__address_v6.v4_mapped [*v4_mapped]]]
+ [Create an IPv4-mapped IPv6 address. ]
   ]
   
 ]
 
-[heading Protected Member Functions]
+[heading Friends]
 [table
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.ip__basic_resolver.get_implementation [*get_implementation]]]
- [Get the underlying implementation of the I/O object. ]
+ [[link boost_asio.reference.ip__address_v6.operator_not__eq_ [*operator!=]]]
+ [Compare two addresses for inequality. ]
   ]
   
   [
- [[link boost_asio.reference.ip__basic_resolver.get_service [*get_service]]]
- [Get the service associated with the I/O object. ]
+ [[link boost_asio.reference.ip__address_v6.operator_lt_ [*operator<]]]
+ [Compare addresses for ordering. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__address_v6.operator_lt__eq_ [*operator<=]]]
+ [Compare addresses for ordering. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__address_v6.operator_eq__eq_ [*operator==]]]
+ [Compare two addresses for equality. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__address_v6.operator_gt_ [*operator>]]]
+ [Compare addresses for ordering. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__address_v6.operator_gt__eq_ [*operator>=]]]
+ [Compare addresses for ordering. ]
   ]
   
 ]
 
-[heading Protected Data Members]
+[heading Related Functions]
 [table
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.ip__basic_resolver.implementation [*implementation]]]
- [(Deprecated: Use get_implementation().) The underlying implementation of the I/O object. ]
- ]
-
- [
- [[link boost_asio.reference.ip__basic_resolver.service [*service]]]
- [(Deprecated: Use get_service().) The service associated with the I/O object. ]
+ [[link boost_asio.reference.ip__address_v6.operator_lt__lt_ [*operator<<]]]
+ [Output an address as a string. ]
   ]
-
+
 ]
 
-The [link boost_asio.reference.ip__basic_resolver `ip::basic_resolver`] class template provides the ability to resolve a query to a list of endpoints.
+The [link boost_asio.reference.ip__address_v6 `ip::address_v6`] class provides the ability to use and manipulate IP version 6 addresses.
 
 
 [heading Thread Safety]
@@ -57916,238 +57907,205 @@
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/ip/basic_resolver.hpp]
+[*Header: ][^boost/asio/ip/address_v6.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
-[section:async_resolve ip::basic_resolver::async_resolve]
+[section:address_v6 ip::address_v6::address_v6]
 
-[indexterm2 async_resolve..ip::basic_resolver]
-Asynchronously perform forward resolution of a query to a list of entries.
+[indexterm2 address_v6..ip::address_v6]
+Default constructor.
 
 
- template<
- typename ``[link boost_asio.reference.ResolveHandler ResolveHandler]``>
- void ``[link boost_asio.reference.ip__basic_resolver.async_resolve.overload1 async_resolve]``(
- const query & q,
- ResolveHandler handler);
- `` [''''&raquo;''' [link boost_asio.reference.ip__basic_resolver.async_resolve.overload1 more...]]``
+ ``[link boost_asio.reference.ip__address_v6.address_v6.overload1 address_v6]``();
+ `` [''''&raquo;''' [link boost_asio.reference.ip__address_v6.address_v6.overload1 more...]]``
 
 
-Asynchronously perform reverse resolution of an endpoint to a list of entries.
+Construct an address from raw bytes and scope ID.
 
 
- template<
- typename ``[link boost_asio.reference.ResolveHandler ResolveHandler]``>
- void ``[link boost_asio.reference.ip__basic_resolver.async_resolve.overload2 async_resolve]``(
- const endpoint_type & e,
- ResolveHandler handler);
- `` [''''&raquo;''' [link boost_asio.reference.ip__basic_resolver.async_resolve.overload2 more...]]``
+ explicit ``[link boost_asio.reference.ip__address_v6.address_v6.overload2 address_v6]``(
+ const bytes_type & bytes,
+ unsigned long scope_id = 0);
+ `` [''''&raquo;''' [link boost_asio.reference.ip__address_v6.address_v6.overload2 more...]]``
 
 
-[section:overload1 ip::basic_resolver::async_resolve (1 of 2 overloads)]
+Copy constructor.
 
 
-Asynchronously perform forward resolution of a query to a list of entries.
+ ``[link boost_asio.reference.ip__address_v6.address_v6.overload3 address_v6]``(
+ const address_v6 & other);
+ `` [''''&raquo;''' [link boost_asio.reference.ip__address_v6.address_v6.overload3 more...]]``
 
 
- template<
- typename ``[link boost_asio.reference.ResolveHandler ResolveHandler]``>
- void async_resolve(
- const query & q,
- ResolveHandler handler);
+[section:overload1 ip::address_v6::address_v6 (1 of 3 overloads)]
 
 
-This function is used to asynchronously resolve a query into a list of endpoint entries.
+Default constructor.
 
 
-[heading Parameters]
-
+ address_v6();
 
-[variablelist
-
-[[q][A query object that determines what endpoints will be returned.]]
 
-[[handler][The handler to be called when the resolve operation completes. Copies will be made of the handler as required. The function signature of the handler must be:
-``
- void handler(
- const boost::system::error_code& error, // Result of operation.
- resolver::iterator iterator // Forward-only iterator that can
- // be used to traverse the list
- // of endpoint entries.
- );
-``
-Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using `boost::asio::io_service::post()`.]]
 
-]
+[endsect]
 
 
-[heading Remarks]
-
-A default constructed iterator represents the end of the list.
 
-A successful resolve operation is guaranteed to pass at least one entry to the handler.
+[section:overload2 ip::address_v6::address_v6 (2 of 3 overloads)]
 
 
-[endsect]
+Construct an address from raw bytes and scope ID.
 
 
+ address_v6(
+ const bytes_type & bytes,
+ unsigned long scope_id = 0);
 
-[section:overload2 ip::basic_resolver::async_resolve (2 of 2 overloads)]
 
 
-Asynchronously perform reverse resolution of an endpoint to a list of entries.
+[endsect]
 
 
- template<
- typename ``[link boost_asio.reference.ResolveHandler ResolveHandler]``>
- void async_resolve(
- const endpoint_type & e,
- ResolveHandler handler);
 
+[section:overload3 ip::address_v6::address_v6 (3 of 3 overloads)]
 
-This function is used to asynchronously resolve an endpoint into a list of endpoint entries.
 
+Copy constructor.
 
-[heading Parameters]
-
 
-[variablelist
-
-[[e][An endpoint object that determines what endpoints will be returned.]]
+ address_v6(
+ const address_v6 & other);
 
-[[handler][The handler to be called when the resolve operation completes. Copies will be made of the handler as required. The function signature of the handler must be:
-``
- void handler(
- const boost::system::error_code& error, // Result of operation.
- resolver::iterator iterator // Forward-only iterator that can
- // be used to traverse the list
- // of endpoint entries.
- );
-``
-Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using `boost::asio::io_service::post()`.]]
 
-]
 
+[endsect]
 
-[heading Remarks]
-
-A default constructed iterator represents the end of the list.
 
-A successful resolve operation is guaranteed to pass at least one entry to the handler.
+[endsect]
 
 
-[endsect]
+[section:any ip::address_v6::any]
 
+[indexterm2 any..ip::address_v6]
+Obtain an address object that represents any address.
 
-[endsect]
 
+ static address_v6 any();
 
-[section:basic_resolver ip::basic_resolver::basic_resolver]
 
-[indexterm2 basic_resolver..ip::basic_resolver]
-Constructor.
 
+[endsect]
 
- basic_resolver(
- boost::asio::io_service & io_service);
 
 
-This constructor creates a [link boost_asio.reference.ip__basic_resolver `ip::basic_resolver`].
+[section:bytes_type ip::address_v6::bytes_type]
 
+[indexterm2 bytes_type..ip::address_v6]
+The type used to represent an address as an array of bytes.
 
-[heading Parameters]
-
 
-[variablelist
-
-[[io_service][The [link boost_asio.reference.io_service `io_service`] object that the resolver will use to dispatch handlers for any asynchronous operations performed on the timer. ]]
+ typedef array< unsigned char, 16 > bytes_type;
 
-]
 
 
 
+[heading Remarks]
+
+This type is defined in terms of the C++0x template `std::array` when it is available. Otherwise, it uses `boost:array`.
 
-[endsect]
 
 
+[heading Requirements]
 
-[section:cancel ip::basic_resolver::cancel]
+[*Header: ][^boost/asio/ip/address_v6.hpp]
 
-[indexterm2 cancel..ip::basic_resolver]
-Cancel any asynchronous operations that are waiting on the resolver.
+[*Convenience header: ][^boost/asio.hpp]
 
 
- void cancel();
+[endsect]
 
 
-This function forces the completion of any pending asynchronous operations on the host resolver. The handler for each cancelled operation will be invoked with the `boost::asio::error::operation_aborted` error code.
+[section:from_string ip::address_v6::from_string]
 
+[indexterm2 from_string..ip::address_v6]
+Create an address from an IP address string.
 
-[endsect]
 
+ static address_v6 ``[link boost_asio.reference.ip__address_v6.from_string.overload1 from_string]``(
+ const char * str);
+ `` [''''&raquo;''' [link boost_asio.reference.ip__address_v6.from_string.overload1 more...]]``
 
+ static address_v6 ``[link boost_asio.reference.ip__address_v6.from_string.overload2 from_string]``(
+ const char * str,
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.ip__address_v6.from_string.overload2 more...]]``
 
-[section:endpoint_type ip::basic_resolver::endpoint_type]
+ static address_v6 ``[link boost_asio.reference.ip__address_v6.from_string.overload3 from_string]``(
+ const std::string & str);
+ `` [''''&raquo;''' [link boost_asio.reference.ip__address_v6.from_string.overload3 more...]]``
 
-[indexterm2 endpoint_type..ip::basic_resolver]
-The endpoint type.
+ static address_v6 ``[link boost_asio.reference.ip__address_v6.from_string.overload4 from_string]``(
+ const std::string & str,
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.ip__address_v6.from_string.overload4 more...]]``
 
 
- typedef InternetProtocol::endpoint endpoint_type;
+[section:overload1 ip::address_v6::from_string (1 of 4 overloads)]
 
 
+Create an address from an IP address string.
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/ip/basic_resolver.hpp]
+ static address_v6 from_string(
+ const char * str);
 
-[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
-[section:get_implementation ip::basic_resolver::get_implementation]
 
-[indexterm2 get_implementation..ip::basic_resolver]
-Get the underlying implementation of the I/O object.
+[section:overload2 ip::address_v6::from_string (2 of 4 overloads)]
 
 
- implementation_type & ``[link boost_asio.reference.ip__basic_resolver.get_implementation.overload1 get_implementation]``();
- `` [''''&raquo;''' [link boost_asio.reference.ip__basic_resolver.get_implementation.overload1 more...]]``
+Create an address from an IP address string.
 
- const implementation_type & ``[link boost_asio.reference.ip__basic_resolver.get_implementation.overload2 get_implementation]``() const;
- `` [''''&raquo;''' [link boost_asio.reference.ip__basic_resolver.get_implementation.overload2 more...]]``
 
+ static address_v6 from_string(
+ const char * str,
+ boost::system::error_code & ec);
 
-[section:overload1 ip::basic_resolver::get_implementation (1 of 2 overloads)]
 
 
-['Inherited from basic_io_object.]
+[endsect]
 
 
-Get the underlying implementation of the I/O object.
 
+[section:overload3 ip::address_v6::from_string (3 of 4 overloads)]
 
- implementation_type & get_implementation();
 
+Create an address from an IP address string.
 
 
-[endsect]
+ static address_v6 from_string(
+ const std::string & str);
 
 
 
-[section:overload2 ip::basic_resolver::get_implementation (2 of 2 overloads)]
+[endsect]
 
 
-['Inherited from basic_io_object.]
+
+[section:overload4 ip::address_v6::from_string (4 of 4 overloads)]
 
 
-Get the underlying implementation of the I/O object.
+Create an address from an IP address string.
 
 
- const implementation_type & get_implementation() const;
+ static address_v6 from_string(
+ const std::string & str,
+ boost::system::error_code & ec);
 
 
 
@@ -58157,265 +58115,202 @@
 [endsect]
 
 
-[section:get_io_service ip::basic_resolver::get_io_service]
+[section:is_link_local ip::address_v6::is_link_local]
 
+[indexterm2 is_link_local..ip::address_v6]
+Determine whether the address is link local.
 
-['Inherited from basic_io_object.]
 
-[indexterm2 get_io_service..ip::basic_resolver]
-Get the [link boost_asio.reference.io_service `io_service`] associated with the object.
+ bool is_link_local() const;
 
 
- boost::asio::io_service & get_io_service();
 
+[endsect]
 
-This function may be used to obtain the [link boost_asio.reference.io_service `io_service`] object that the I/O object uses to dispatch handlers for asynchronous operations.
 
 
-[heading Return Value]
-
-A reference to the [link boost_asio.reference.io_service `io_service`] object that the I/O object will use to dispatch handlers. Ownership is not transferred to the caller.
+[section:is_loopback ip::address_v6::is_loopback]
 
+[indexterm2 is_loopback..ip::address_v6]
+Determine whether the address is a loopback address.
 
 
+ bool is_loopback() const;
 
-[endsect]
 
 
-[section:get_service ip::basic_resolver::get_service]
+[endsect]
 
-[indexterm2 get_service..ip::basic_resolver]
-Get the service associated with the I/O object.
 
 
- service_type & ``[link boost_asio.reference.ip__basic_resolver.get_service.overload1 get_service]``();
- `` [''''&raquo;''' [link boost_asio.reference.ip__basic_resolver.get_service.overload1 more...]]``
+[section:is_multicast ip::address_v6::is_multicast]
 
- const service_type & ``[link boost_asio.reference.ip__basic_resolver.get_service.overload2 get_service]``() const;
- `` [''''&raquo;''' [link boost_asio.reference.ip__basic_resolver.get_service.overload2 more...]]``
+[indexterm2 is_multicast..ip::address_v6]
+Determine whether the address is a multicast address.
 
 
-[section:overload1 ip::basic_resolver::get_service (1 of 2 overloads)]
+ bool is_multicast() const;
 
 
-['Inherited from basic_io_object.]
 
+[endsect]
 
-Get the service associated with the I/O object.
 
 
- service_type & get_service();
+[section:is_multicast_global ip::address_v6::is_multicast_global]
 
+[indexterm2 is_multicast_global..ip::address_v6]
+Determine whether the address is a global multicast address.
 
 
-[endsect]
+ bool is_multicast_global() const;
 
 
 
-[section:overload2 ip::basic_resolver::get_service (2 of 2 overloads)]
+[endsect]
 
 
-['Inherited from basic_io_object.]
 
+[section:is_multicast_link_local ip::address_v6::is_multicast_link_local]
 
-Get the service associated with the I/O object.
+[indexterm2 is_multicast_link_local..ip::address_v6]
+Determine whether the address is a link-local multicast address.
 
 
- const service_type & get_service() const;
+ bool is_multicast_link_local() const;
 
 
 
 [endsect]
 
 
-[endsect]
 
+[section:is_multicast_node_local ip::address_v6::is_multicast_node_local]
 
-[section:implementation ip::basic_resolver::implementation]
+[indexterm2 is_multicast_node_local..ip::address_v6]
+Determine whether the address is a node-local multicast address.
 
 
-['Inherited from basic_io_object.]
+ bool is_multicast_node_local() const;
 
-[indexterm2 implementation..ip::basic_resolver]
-(Deprecated: Use `get_implementation()`.) The underlying implementation of the I/O object.
 
 
- implementation_type implementation;
+[endsect]
 
 
 
-[endsect]
+[section:is_multicast_org_local ip::address_v6::is_multicast_org_local]
 
+[indexterm2 is_multicast_org_local..ip::address_v6]
+Determine whether the address is a org-local multicast address.
 
 
-[section:implementation_type ip::basic_resolver::implementation_type]
+ bool is_multicast_org_local() const;
 
 
-['Inherited from basic_io_object.]
 
-[indexterm2 implementation_type..ip::basic_resolver]
-The underlying implementation type of I/O object.
+[endsect]
 
 
- typedef service_type::implementation_type implementation_type;
 
+[section:is_multicast_site_local ip::address_v6::is_multicast_site_local]
 
+[indexterm2 is_multicast_site_local..ip::address_v6]
+Determine whether the address is a site-local multicast address.
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/ip/basic_resolver.hpp]
+ bool is_multicast_site_local() const;
 
-[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
 
-[section:iterator ip::basic_resolver::iterator]
+[section:is_site_local ip::address_v6::is_site_local]
 
-[indexterm2 iterator..ip::basic_resolver]
-The iterator type.
+[indexterm2 is_site_local..ip::address_v6]
+Determine whether the address is site local.
 
 
- typedef basic_resolver_iterator< InternetProtocol > iterator;
+ bool is_site_local() const;
 
 
-[heading Types]
-[table
- [[Name][Description]]
 
- [
+[endsect]
 
- [[link boost_asio.reference.ip__basic_resolver_iterator.difference_type [*difference_type]]]
- [The type used for the distance between two iterators. ]
-
- ]
 
- [
 
- [[link boost_asio.reference.ip__basic_resolver_iterator.iterator_category [*iterator_category]]]
- [The iterator category. ]
-
- ]
+[section:is_unspecified ip::address_v6::is_unspecified]
 
- [
+[indexterm2 is_unspecified..ip::address_v6]
+Determine whether the address is unspecified.
 
- [[link boost_asio.reference.ip__basic_resolver_iterator.pointer [*pointer]]]
- [The type of the result of applying operator->() to the iterator. ]
-
- ]
 
- [
+ bool is_unspecified() const;
 
- [[link boost_asio.reference.ip__basic_resolver_iterator.reference [*reference]]]
- [The type of the result of applying operator*() to the iterator. ]
-
- ]
 
- [
 
- [[link boost_asio.reference.ip__basic_resolver_iterator.value_type [*value_type]]]
- [The type of the value pointed to by the iterator. ]
-
- ]
+[endsect]
 
-]
 
-[heading Member Functions]
-[table
- [[Name][Description]]
 
- [
- [[link boost_asio.reference.ip__basic_resolver_iterator.basic_resolver_iterator [*basic_resolver_iterator]]]
- [Default constructor creates an end iterator. ]
- ]
-
- [
- [[link boost_asio.reference.ip__basic_resolver_iterator.create [*create]]]
- [Create an iterator from an addrinfo list returned by getaddrinfo.
+[section:is_v4_compatible ip::address_v6::is_v4_compatible]
 
- Create an iterator from an endpoint, host name and service name. ]
- ]
-
- [
- [[link boost_asio.reference.ip__basic_resolver_iterator.operator__star_ [*operator *]]]
- [Dereference an iterator. ]
- ]
-
- [
- [[link boost_asio.reference.ip__basic_resolver_iterator.operator_plus__plus_ [*operator++]]]
- [Increment operator (prefix).
+[indexterm2 is_v4_compatible..ip::address_v6]
+Determine whether the address is an IPv4-compatible address.
 
- Increment operator (postfix). ]
- ]
-
- [
- [[link boost_asio.reference.ip__basic_resolver_iterator.operator_arrow_ [*operator->]]]
- [Dereference an iterator. ]
- ]
-
-]
 
-[heading Friends]
-[table
- [[Name][Description]]
+ bool is_v4_compatible() const;
 
- [
- [[link boost_asio.reference.ip__basic_resolver_iterator.operator_not__eq_ [*operator!=]]]
- [Test two iterators for inequality. ]
- ]
-
- [
- [[link boost_asio.reference.ip__basic_resolver_iterator.operator_eq__eq_ [*operator==]]]
- [Test two iterators for equality. ]
- ]
-
-]
 
-The [link boost_asio.reference.ip__basic_resolver_iterator `ip::basic_resolver_iterator`] class template is used to define iterators over the results returned by a resolver.
 
-The iterator's value\_type, obtained when the iterator is dereferenced, is:
+[endsect]
 
- const basic_resolver_entry<InternetProtocol>
 
 
+[section:is_v4_mapped ip::address_v6::is_v4_mapped]
 
+[indexterm2 is_v4_mapped..ip::address_v6]
+Determine whether the address is a mapped IPv4 address.
 
 
-[heading Thread Safety]
-
-[*Distinct] [*objects:] Safe.
+ bool is_v4_mapped() const;
 
-[*Shared] [*objects:] Unsafe.
 
 
+[endsect]
 
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/ip/basic_resolver.hpp]
+[section:loopback ip::address_v6::loopback]
 
-[*Convenience header: ][^boost/asio.hpp]
+[indexterm2 loopback..ip::address_v6]
+Obtain an address object that represents the loopback address.
 
 
-[endsect]
+ static address_v6 loopback();
 
 
 
-[section:protocol_type ip::basic_resolver::protocol_type]
+[endsect]
 
-[indexterm2 protocol_type..ip::basic_resolver]
-The protocol type.
 
 
- typedef InternetProtocol protocol_type;
+[section:operator_not__eq_ ip::address_v6::operator!=]
+
+[indexterm2 operator!=..ip::address_v6]
+Compare two addresses for inequality.
 
 
+ friend bool operator!=(
+ const address_v6 & a1,
+ const address_v6 & a2);
+
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/ip/basic_resolver.hpp]
+[*Header: ][^boost/asio/ip/address_v6.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
@@ -58424,123 +58319,82 @@
 
 
 
-[section:query ip::basic_resolver::query]
+[section:operator_lt_ ip::address_v6::operator<]
 
-[indexterm2 query..ip::basic_resolver]
-The query type.
+[indexterm2 operator<..ip::address_v6]
+Compare addresses for ordering.
 
 
- typedef basic_resolver_query< InternetProtocol > query;
+ friend bool operator<(
+ const address_v6 & a1,
+ const address_v6 & a2);
 
 
-[heading Types]
-[table
- [[Name][Description]]
+[heading Requirements]
 
- [
+[*Header: ][^boost/asio/ip/address_v6.hpp]
 
- [[link boost_asio.reference.ip__basic_resolver_query.flags [*flags]]]
- [A bitmask type (C++ Std \[lib.bitmask.types\]). ]
-
- ]
+[*Convenience header: ][^boost/asio.hpp]
 
- [
 
- [[link boost_asio.reference.ip__basic_resolver_query.protocol_type [*protocol_type]]]
- [The protocol type associated with the endpoint query. ]
-
- ]
+[endsect]
 
-]
 
-[heading Member Functions]
-[table
- [[Name][Description]]
 
- [
- [[link boost_asio.reference.ip__basic_resolver_query.basic_resolver_query [*basic_resolver_query]]]
- [Construct with specified service name for any protocol.
+[section:operator_lt__lt_ ip::address_v6::operator<<]
 
- Construct with specified service name for a given protocol.
+[indexterm2 operator<<..ip::address_v6]
+Output an address as a string.
 
- Construct with specified host name and service name for any protocol.
 
- Construct with specified host name and service name for a given protocol. ]
- ]
-
- [
- [[link boost_asio.reference.ip__basic_resolver_query.hints [*hints]]]
- [Get the hints associated with the query. ]
- ]
-
- [
- [[link boost_asio.reference.ip__basic_resolver_query.host_name [*host_name]]]
- [Get the host name associated with the query. ]
- ]
-
- [
- [[link boost_asio.reference.ip__basic_resolver_query.service_name [*service_name]]]
- [Get the service name associated with the query. ]
- ]
-
-]
+ template<
+ typename Elem,
+ typename Traits>
+ std::basic_ostream< Elem, Traits > & operator<<(
+ std::basic_ostream< Elem, Traits > & os,
+ const address_v6 & addr);
 
-[heading Data Members]
-[table
- [[Name][Description]]
 
- [
- [[link boost_asio.reference.ip__basic_resolver_query.address_configured [*address_configured]]]
- [Only return IPv4 addresses if a non-loopback IPv4 address is configured for the system. Only return IPv6 addresses if a non-loopback IPv6 address is configured for the system. ]
- ]
+Used to output a human-readable string for a specified address.
 
- [
- [[link boost_asio.reference.ip__basic_resolver_query.all_matching [*all_matching]]]
- [If used with v4_mapped, return all matching IPv6 and IPv4 addresses. ]
- ]
 
- [
- [[link boost_asio.reference.ip__basic_resolver_query.canonical_name [*canonical_name]]]
- [Determine the canonical name of the host specified in the query. ]
- ]
+[heading Parameters]
+
 
- [
- [[link boost_asio.reference.ip__basic_resolver_query.numeric_host [*numeric_host]]]
- [Host name should be treated as a numeric string defining an IPv4 or IPv6 address and no name resolution should be attempted. ]
- ]
+[variablelist
+
+[[os][The output stream to which the string will be written.]]
 
- [
- [[link boost_asio.reference.ip__basic_resolver_query.numeric_service [*numeric_service]]]
- [Service name should be treated as a numeric string defining a port number and no name resolution should be attempted. ]
- ]
+[[addr][The address to be written.]]
 
- [
- [[link boost_asio.reference.ip__basic_resolver_query.passive [*passive]]]
- [Indicate that returned endpoint is intended for use as a locally bound socket endpoint. ]
- ]
+]
 
- [
- [[link boost_asio.reference.ip__basic_resolver_query.v4_mapped [*v4_mapped]]]
- [If the query protocol family is specified as IPv6, return IPv4-mapped IPv6 addresses on finding no IPv6 addresses. ]
- ]
 
-]
+[heading Return Value]
+
+The output stream.
 
-The [link boost_asio.reference.ip__basic_resolver_query `ip::basic_resolver_query`] class template describes a query that can be passed to a resolver.
 
 
-[heading Thread Safety]
-
-[*Distinct] [*objects:] Safe.
 
-[*Shared] [*objects:] Unsafe.
+[endsect]
+
+
+
+[section:operator_lt__eq_ ip::address_v6::operator<=]
+
+[indexterm2 operator<=..ip::address_v6]
+Compare addresses for ordering.
 
 
+ friend bool operator<=(
+ const address_v6 & a1,
+ const address_v6 & a2);
 
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/ip/basic_resolver.hpp]
+[*Header: ][^boost/asio/ip/address_v6.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
@@ -58548,261 +58402,232 @@
 [endsect]
 
 
-[section:resolve ip::basic_resolver::resolve]
-
-[indexterm2 resolve..ip::basic_resolver]
-Perform forward resolution of a query to a list of entries.
 
+[section:operator_eq_ ip::address_v6::operator=]
 
- iterator ``[link boost_asio.reference.ip__basic_resolver.resolve.overload1 resolve]``(
- const query & q);
- `` [''''&raquo;''' [link boost_asio.reference.ip__basic_resolver.resolve.overload1 more...]]``
+[indexterm2 operator=..ip::address_v6]
+Assign from another address.
 
- iterator ``[link boost_asio.reference.ip__basic_resolver.resolve.overload2 resolve]``(
- const query & q,
- boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.ip__basic_resolver.resolve.overload2 more...]]``
 
+ address_v6 & operator=(
+ const address_v6 & other);
 
-Perform reverse resolution of an endpoint to a list of entries.
 
 
- iterator ``[link boost_asio.reference.ip__basic_resolver.resolve.overload3 resolve]``(
- const endpoint_type & e);
- `` [''''&raquo;''' [link boost_asio.reference.ip__basic_resolver.resolve.overload3 more...]]``
+[endsect]
 
- iterator ``[link boost_asio.reference.ip__basic_resolver.resolve.overload4 resolve]``(
- const endpoint_type & e,
- boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.ip__basic_resolver.resolve.overload4 more...]]``
 
 
-[section:overload1 ip::basic_resolver::resolve (1 of 4 overloads)]
+[section:operator_eq__eq_ ip::address_v6::operator==]
 
+[indexterm2 operator==..ip::address_v6]
+Compare two addresses for equality.
 
-Perform forward resolution of a query to a list of entries.
 
+ friend bool operator==(
+ const address_v6 & a1,
+ const address_v6 & a2);
 
- iterator resolve(
- const query & q);
 
+[heading Requirements]
 
-This function is used to resolve a query into a list of endpoint entries.
+[*Header: ][^boost/asio/ip/address_v6.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
-[heading Parameters]
-
 
-[variablelist
-
-[[q][A query object that determines what endpoints will be returned.]]
+[endsect]
 
-]
 
 
-[heading Return Value]
-
-A forward-only iterator that can be used to traverse the list of endpoint entries.
+[section:operator_gt_ ip::address_v6::operator>]
 
+[indexterm2 operator>..ip::address_v6]
+Compare addresses for ordering.
 
-[heading Exceptions]
-
 
-[variablelist
-
-[[boost::system::system_error][Thrown on failure.]]
+ friend bool operator>(
+ const address_v6 & a1,
+ const address_v6 & a2);
 
-]
 
+[heading Requirements]
 
-[heading Remarks]
-
-A default constructed iterator represents the end of the list.
+[*Header: ][^boost/asio/ip/address_v6.hpp]
 
-A successful call to this function is guaranteed to return at least one entry.
+[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
 
-[section:overload2 ip::basic_resolver::resolve (2 of 4 overloads)]
-
+[section:operator_gt__eq_ ip::address_v6::operator>=]
 
-Perform forward resolution of a query to a list of entries.
+[indexterm2 operator>=..ip::address_v6]
+Compare addresses for ordering.
 
 
- iterator resolve(
- const query & q,
- boost::system::error_code & ec);
-
+ friend bool operator>=(
+ const address_v6 & a1,
+ const address_v6 & a2);
 
-This function is used to resolve a query into a list of endpoint entries.
 
+[heading Requirements]
 
-[heading Parameters]
-
+[*Header: ][^boost/asio/ip/address_v6.hpp]
 
-[variablelist
-
-[[q][A query object that determines what endpoints will be returned.]]
+[*Convenience header: ][^boost/asio.hpp]
 
-[[ec][Set to indicate what error occurred, if any.]]
 
-]
+[endsect]
 
 
-[heading Return Value]
-
-A forward-only iterator that can be used to traverse the list of endpoint entries. Returns a default constructed iterator if an error occurs.
+[section:scope_id ip::address_v6::scope_id]
 
+[indexterm2 scope_id..ip::address_v6]
+The scope ID of the address.
 
-[heading Remarks]
-
-A default constructed iterator represents the end of the list.
 
-A successful call to this function is guaranteed to return at least one entry.
+ unsigned long ``[link boost_asio.reference.ip__address_v6.scope_id.overload1 scope_id]``() const;
+ `` [''''&raquo;''' [link boost_asio.reference.ip__address_v6.scope_id.overload1 more...]]``
 
+ void ``[link boost_asio.reference.ip__address_v6.scope_id.overload2 scope_id]``(
+ unsigned long id);
+ `` [''''&raquo;''' [link boost_asio.reference.ip__address_v6.scope_id.overload2 more...]]``
 
-[endsect]
 
+[section:overload1 ip::address_v6::scope_id (1 of 2 overloads)]
 
 
-[section:overload3 ip::basic_resolver::resolve (3 of 4 overloads)]
+The scope ID of the address.
 
 
-Perform reverse resolution of an endpoint to a list of entries.
+ unsigned long scope_id() const;
 
 
- iterator resolve(
- const endpoint_type & e);
+Returns the scope ID associated with the IPv6 address.
 
 
-This function is used to resolve an endpoint into a list of endpoint entries.
+[endsect]
 
 
-[heading Parameters]
-
 
-[variablelist
-
-[[e][An endpoint object that determines what endpoints will be returned.]]
+[section:overload2 ip::address_v6::scope_id (2 of 2 overloads)]
 
-]
 
+The scope ID of the address.
 
-[heading Return Value]
-
-A forward-only iterator that can be used to traverse the list of endpoint entries.
 
+ void scope_id(
+ unsigned long id);
 
-[heading Exceptions]
-
 
-[variablelist
-
-[[boost::system::system_error][Thrown on failure.]]
+Modifies the scope ID associated with the IPv6 address.
 
-]
 
+[endsect]
 
-[heading Remarks]
-
-A default constructed iterator represents the end of the list.
 
-A successful call to this function is guaranteed to return at least one entry.
+[endsect]
 
 
-[endsect]
+[section:to_bytes ip::address_v6::to_bytes]
 
+[indexterm2 to_bytes..ip::address_v6]
+Get the address in bytes, in network byte order.
 
 
-[section:overload4 ip::basic_resolver::resolve (4 of 4 overloads)]
+ bytes_type to_bytes() const;
 
 
-Perform reverse resolution of an endpoint to a list of entries.
 
+[endsect]
 
- iterator resolve(
- const endpoint_type & e,
- boost::system::error_code & ec);
 
+[section:to_string ip::address_v6::to_string]
 
-This function is used to resolve an endpoint into a list of endpoint entries.
+[indexterm2 to_string..ip::address_v6]
+Get the address as a string.
 
 
-[heading Parameters]
-
+ std::string ``[link boost_asio.reference.ip__address_v6.to_string.overload1 to_string]``() const;
+ `` [''''&raquo;''' [link boost_asio.reference.ip__address_v6.to_string.overload1 more...]]``
 
-[variablelist
-
-[[e][An endpoint object that determines what endpoints will be returned.]]
+ std::string ``[link boost_asio.reference.ip__address_v6.to_string.overload2 to_string]``(
+ boost::system::error_code & ec) const;
+ `` [''''&raquo;''' [link boost_asio.reference.ip__address_v6.to_string.overload2 more...]]``
 
-[[ec][Set to indicate what error occurred, if any.]]
 
-]
+[section:overload1 ip::address_v6::to_string (1 of 2 overloads)]
 
 
-[heading Return Value]
-
-A forward-only iterator that can be used to traverse the list of endpoint entries. Returns a default constructed iterator if an error occurs.
+Get the address as a string.
 
 
-[heading Remarks]
-
-A default constructed iterator represents the end of the list.
+ std::string to_string() const;
 
-A successful call to this function is guaranteed to return at least one entry.
 
 
 [endsect]
 
 
-[endsect]
 
+[section:overload2 ip::address_v6::to_string (2 of 2 overloads)]
 
-[section:service ip::basic_resolver::service]
 
+Get the address as a string.
 
-['Inherited from basic_io_object.]
 
-[indexterm2 service..ip::basic_resolver]
-(Deprecated: Use `get_service()`.) The service associated with the I/O object.
+ std::string to_string(
+ boost::system::error_code & ec) const;
 
 
- service_type & service;
 
+[endsect]
 
 
-[heading Remarks]
-
-Available only for services that do not support movability.
+[endsect]
+
+
+[section:to_v4 ip::address_v6::to_v4]
+
+[indexterm2 to_v4..ip::address_v6]
+Converts an IPv4-mapped or IPv4-compatible address to an IPv4 address.
 
 
+ address_v4 to_v4() const;
+
 
 
 [endsect]
 
 
 
-[section:service_type ip::basic_resolver::service_type]
+[section:v4_compatible ip::address_v6::v4_compatible]
 
+[indexterm2 v4_compatible..ip::address_v6]
+Create an IPv4-compatible IPv6 address.
 
-['Inherited from basic_io_object.]
 
-[indexterm2 service_type..ip::basic_resolver]
-The type of the service that will be used to provide I/O operations.
+ static address_v6 v4_compatible(
+ const address_v4 & addr);
 
 
- typedef ResolverService service_type;
 
+[endsect]
 
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/ip/basic_resolver.hpp]
+[section:v4_mapped ip::address_v6::v4_mapped]
+
+[indexterm2 v4_mapped..ip::address_v6]
+Create an IPv4-mapped IPv6 address.
+
+
+ static address_v6 v4_mapped(
+ const address_v4 & addr);
 
-[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
@@ -58811,15 +58636,15 @@
 
 [endsect]
 
-[section:ip__basic_resolver_entry ip::basic_resolver_entry]
+[section:ip__basic_endpoint ip::basic_endpoint]
 
 
-An entry produced by a resolver.
+Describes an endpoint for a version-independent IP socket.
 
 
   template<
       typename ``[link boost_asio.reference.InternetProtocol InternetProtocol]``>
- class basic_resolver_entry
+ class basic_endpoint
 
 
 [heading Types]
@@ -58828,15 +58653,15 @@
 
   [
 
- [[link boost_asio.reference.ip__basic_resolver_entry.endpoint_type [*endpoint_type]]]
- [The endpoint type associated with the endpoint entry. ]
+ [[link boost_asio.reference.ip__basic_endpoint.data_type [*data_type]]]
+ [The type of the endpoint structure. This type is dependent on the underlying implementation of the socket layer. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.ip__basic_resolver_entry.protocol_type [*protocol_type]]]
- [The protocol type associated with the endpoint entry. ]
+ [[link boost_asio.reference.ip__basic_endpoint.protocol_type [*protocol_type]]]
+ [The protocol type associated with the endpoint. ]
   
   ]
 
@@ -58847,78 +58672,152 @@
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.ip__basic_resolver_entry.basic_resolver_entry [*basic_resolver_entry]]]
+ [[link boost_asio.reference.ip__basic_endpoint.address [*address]]]
+ [Get the IP address associated with the endpoint.
+
+ Set the IP address associated with the endpoint. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__basic_endpoint.basic_endpoint [*basic_endpoint]]]
     [Default constructor.
 
- Construct with specified endpoint, host name and service name. ]
+ Construct an endpoint using a port number, specified in the host's byte order. The IP address will be the any address (i.e. INADDR_ANY or in6addr_any). This constructor would typically be used for accepting new connections.
+
+ Construct an endpoint using a port number and an IP address. This constructor may be used for accepting connections on a specific interface or for making a connection to a remote endpoint.
+
+ Copy constructor. ]
   ]
   
   [
- [[link boost_asio.reference.ip__basic_resolver_entry.endpoint [*endpoint]]]
- [Get the endpoint associated with the entry. ]
+ [[link boost_asio.reference.ip__basic_endpoint.capacity [*capacity]]]
+ [Get the capacity of the endpoint in the native type. ]
   ]
   
   [
- [[link boost_asio.reference.ip__basic_resolver_entry.host_name [*host_name]]]
- [Get the host name associated with the entry. ]
+ [[link boost_asio.reference.ip__basic_endpoint.data [*data]]]
+ [Get the underlying endpoint in the native type. ]
   ]
   
   [
- [[link boost_asio.reference.ip__basic_resolver_entry.operator_endpoint_type [*operator endpoint_type]]]
- [Convert to the endpoint associated with the entry. ]
+ [[link boost_asio.reference.ip__basic_endpoint.operator_eq_ [*operator=]]]
+ [Assign from another endpoint. ]
   ]
   
   [
- [[link boost_asio.reference.ip__basic_resolver_entry.service_name [*service_name]]]
- [Get the service name associated with the entry. ]
+ [[link boost_asio.reference.ip__basic_endpoint.port [*port]]]
+ [Get the port associated with the endpoint. The port number is always in the host's byte order.
+
+ Set the port associated with the endpoint. The port number is always in the host's byte order. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__basic_endpoint.protocol [*protocol]]]
+ [The protocol associated with the endpoint. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__basic_endpoint.resize [*resize]]]
+ [Set the underlying size of the endpoint in the native type. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__basic_endpoint.size [*size]]]
+ [Get the underlying size of the endpoint in the native type. ]
   ]
   
 ]
 
-The [link boost_asio.reference.ip__basic_resolver_entry `ip::basic_resolver_entry`] class template describes an entry as returned by a resolver.
+[heading Friends]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.ip__basic_endpoint.operator_not__eq_ [*operator!=]]]
+ [Compare two endpoints for inequality. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__basic_endpoint.operator_lt_ [*operator<]]]
+ [Compare endpoints for ordering. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__basic_endpoint.operator_lt__eq_ [*operator<=]]]
+ [Compare endpoints for ordering. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__basic_endpoint.operator_eq__eq_ [*operator==]]]
+ [Compare two endpoints for equality. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__basic_endpoint.operator_gt_ [*operator>]]]
+ [Compare endpoints for ordering. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__basic_endpoint.operator_gt__eq_ [*operator>=]]]
+ [Compare endpoints for ordering. ]
+ ]
+
+]
+
+[heading Related Functions]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.ip__basic_endpoint.operator_lt__lt_ [*operator<<]]]
+ [Output an endpoint as a string. ]
+ ]
+
+]
+
+The [link boost_asio.reference.ip__basic_endpoint `ip::basic_endpoint`] class template describes an endpoint that may be associated with a particular socket.
 
 
 [heading Thread Safety]
   
 [*Distinct] [*objects:] Safe.
 
-[*Shared] [*objects:] Unsafe.
+[*Shared] [*objects:] Unsafe.
+
 
 
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/ip/basic_resolver_entry.hpp]
+[*Header: ][^boost/asio/ip/basic_endpoint.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
-[section:basic_resolver_entry ip::basic_resolver_entry::basic_resolver_entry]
+[section:address ip::basic_endpoint::address]
 
-[indexterm2 basic_resolver_entry..ip::basic_resolver_entry]
-Default constructor.
+[indexterm2 address..ip::basic_endpoint]
+Get the IP address associated with the endpoint.
 
 
- ``[link boost_asio.reference.ip__basic_resolver_entry.basic_resolver_entry.overload1 basic_resolver_entry]``();
- `` [''''&raquo;''' [link boost_asio.reference.ip__basic_resolver_entry.basic_resolver_entry.overload1 more...]]``
+ boost::asio::ip::address ``[link boost_asio.reference.ip__basic_endpoint.address.overload1 address]``() const;
+ `` [''''&raquo;''' [link boost_asio.reference.ip__basic_endpoint.address.overload1 more...]]``
 
 
-Construct with specified endpoint, host name and service name.
+Set the IP address associated with the endpoint.
 
 
- ``[link boost_asio.reference.ip__basic_resolver_entry.basic_resolver_entry.overload2 basic_resolver_entry]``(
- const endpoint_type & ep,
- const std::string & host,
- const std::string & service);
- `` [''''&raquo;''' [link boost_asio.reference.ip__basic_resolver_entry.basic_resolver_entry.overload2 more...]]``
+ void ``[link boost_asio.reference.ip__basic_endpoint.address.overload2 address]``(
+ const boost::asio::ip::address & addr);
+ `` [''''&raquo;''' [link boost_asio.reference.ip__basic_endpoint.address.overload2 more...]]``
 
 
-[section:overload1 ip::basic_resolver_entry::basic_resolver_entry (1 of 2 overloads)]
+[section:overload1 ip::basic_endpoint::address (1 of 2 overloads)]
 
 
-Default constructor.
+Get the IP address associated with the endpoint.
 
 
- basic_resolver_entry();
+ boost::asio::ip::address address() const;
 
 
 
@@ -58926,16 +58825,14 @@
 
 
 
-[section:overload2 ip::basic_resolver_entry::basic_resolver_entry (2 of 2 overloads)]
+[section:overload2 ip::basic_endpoint::address (2 of 2 overloads)]
 
 
-Construct with specified endpoint, host name and service name.
+Set the IP address associated with the endpoint.
 
 
- basic_resolver_entry(
- const endpoint_type & ep,
- const std::string & host,
- const std::string & service);
+ void address(
+ const boost::asio::ip::address & addr);
 
 
 
@@ -58944,341 +58841,294 @@
 
 [endsect]
 
+[section:basic_endpoint ip::basic_endpoint::basic_endpoint]
 
-[section:endpoint ip::basic_resolver_entry::endpoint]
+[indexterm2 basic_endpoint..ip::basic_endpoint]
+Default constructor.
 
-[indexterm2 endpoint..ip::basic_resolver_entry]
-Get the endpoint associated with the entry.
+
+ ``[link boost_asio.reference.ip__basic_endpoint.basic_endpoint.overload1 basic_endpoint]``();
+ `` [''''&raquo;''' [link boost_asio.reference.ip__basic_endpoint.basic_endpoint.overload1 more...]]``
 
 
- endpoint_type endpoint() const;
+Construct an endpoint using a port number, specified in the host's byte order. The IP address will be the any address (i.e. INADDR\_ANY or in6addr\_any). This constructor would typically be used for accepting new connections.
 
 
+ ``[link boost_asio.reference.ip__basic_endpoint.basic_endpoint.overload2 basic_endpoint]``(
+ const InternetProtocol & internet_protocol,
+ unsigned short port_num);
+ `` [''''&raquo;''' [link boost_asio.reference.ip__basic_endpoint.basic_endpoint.overload2 more...]]``
 
-[endsect]
 
+Construct an endpoint using a port number and an IP address. This constructor may be used for accepting connections on a specific interface or for making a connection to a remote endpoint.
 
 
-[section:endpoint_type ip::basic_resolver_entry::endpoint_type]
+ ``[link boost_asio.reference.ip__basic_endpoint.basic_endpoint.overload3 basic_endpoint]``(
+ const boost::asio::ip::address & addr,
+ unsigned short port_num);
+ `` [''''&raquo;''' [link boost_asio.reference.ip__basic_endpoint.basic_endpoint.overload3 more...]]``
 
-[indexterm2 endpoint_type..ip::basic_resolver_entry]
-The endpoint type associated with the endpoint entry.
 
+Copy constructor.
 
- typedef InternetProtocol::endpoint endpoint_type;
 
+ ``[link boost_asio.reference.ip__basic_endpoint.basic_endpoint.overload4 basic_endpoint]``(
+ const basic_endpoint & other);
+ `` [''''&raquo;''' [link boost_asio.reference.ip__basic_endpoint.basic_endpoint.overload4 more...]]``
 
 
-[heading Requirements]
+[section:overload1 ip::basic_endpoint::basic_endpoint (1 of 4 overloads)]
 
-[*Header: ][^boost/asio/ip/basic_resolver_entry.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
+Default constructor.
+
+
+ basic_endpoint();
+
 
 
 [endsect]
 
 
 
-[section:host_name ip::basic_resolver_entry::host_name]
+[section:overload2 ip::basic_endpoint::basic_endpoint (2 of 4 overloads)]
 
-[indexterm2 host_name..ip::basic_resolver_entry]
-Get the host name associated with the entry.
 
+Construct an endpoint using a port number, specified in the host's byte order. The IP address will be the any address (i.e. INADDR\_ANY or in6addr\_any). This constructor would typically be used for accepting new connections.
 
- std::string host_name() const;
 
+ basic_endpoint(
+ const InternetProtocol & internet_protocol,
+ unsigned short port_num);
 
 
-[endsect]
 
+[heading Examples]
+
+To initialise an IPv4 TCP endpoint for port 1234, use:
 
+ boost::asio::ip::tcp::endpoint ep(boost::asio::ip::tcp::v4(), 1234);
 
-[section:operator_endpoint_type ip::basic_resolver_entry::operator endpoint_type]
 
-[indexterm2 operator endpoint_type..ip::basic_resolver_entry]
-Convert to the endpoint associated with the entry.
 
 
- operator endpoint_type() const;
+To specify an IPv6 UDP endpoint for port 9876, use:
 
+ boost::asio::ip::udp::endpoint ep(boost::asio::ip::udp::v6(), 9876);
 
 
-[endsect]
 
 
 
-[section:protocol_type ip::basic_resolver_entry::protocol_type]
+[endsect]
 
-[indexterm2 protocol_type..ip::basic_resolver_entry]
-The protocol type associated with the endpoint entry.
 
 
- typedef InternetProtocol protocol_type;
+[section:overload3 ip::basic_endpoint::basic_endpoint (3 of 4 overloads)]
 
 
+Construct an endpoint using a port number and an IP address. This constructor may be used for accepting connections on a specific interface or for making a connection to a remote endpoint.
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/ip/basic_resolver_entry.hpp]
+ basic_endpoint(
+ const boost::asio::ip::address & addr,
+ unsigned short port_num);
 
-[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
 
-[section:service_name ip::basic_resolver_entry::service_name]
+[section:overload4 ip::basic_endpoint::basic_endpoint (4 of 4 overloads)]
 
-[indexterm2 service_name..ip::basic_resolver_entry]
-Get the service name associated with the entry.
 
+Copy constructor.
 
- std::string service_name() const;
+
+ basic_endpoint(
+ const basic_endpoint & other);
 
 
 
 [endsect]
 
 
-
 [endsect]
 
-[section:ip__basic_resolver_iterator ip::basic_resolver_iterator]
 
+[section:capacity ip::basic_endpoint::capacity]
 
-An iterator over the entries produced by a resolver.
+[indexterm2 capacity..ip::basic_endpoint]
+Get the capacity of the endpoint in the native type.
 
 
- template<
- typename ``[link boost_asio.reference.InternetProtocol InternetProtocol]``>
- class basic_resolver_iterator
+ std::size_t capacity() const;
 
 
-[heading Types]
-[table
- [[Name][Description]]
 
- [
+[endsect]
 
- [[link boost_asio.reference.ip__basic_resolver_iterator.difference_type [*difference_type]]]
- [The type used for the distance between two iterators. ]
-
- ]
 
- [
+[section:data ip::basic_endpoint::data]
 
- [[link boost_asio.reference.ip__basic_resolver_iterator.iterator_category [*iterator_category]]]
- [The iterator category. ]
-
- ]
+[indexterm2 data..ip::basic_endpoint]
+Get the underlying endpoint in the native type.
 
- [
 
- [[link boost_asio.reference.ip__basic_resolver_iterator.pointer [*pointer]]]
- [The type of the result of applying operator->() to the iterator. ]
-
- ]
+ data_type * ``[link boost_asio.reference.ip__basic_endpoint.data.overload1 data]``();
+ `` [''''&raquo;''' [link boost_asio.reference.ip__basic_endpoint.data.overload1 more...]]``
 
- [
+ const data_type * ``[link boost_asio.reference.ip__basic_endpoint.data.overload2 data]``() const;
+ `` [''''&raquo;''' [link boost_asio.reference.ip__basic_endpoint.data.overload2 more...]]``
 
- [[link boost_asio.reference.ip__basic_resolver_iterator.reference [*reference]]]
- [The type of the result of applying operator*() to the iterator. ]
-
- ]
 
- [
+[section:overload1 ip::basic_endpoint::data (1 of 2 overloads)]
 
- [[link boost_asio.reference.ip__basic_resolver_iterator.value_type [*value_type]]]
- [The type of the value pointed to by the iterator. ]
-
- ]
 
-]
+Get the underlying endpoint in the native type.
 
-[heading Member Functions]
-[table
- [[Name][Description]]
 
- [
- [[link boost_asio.reference.ip__basic_resolver_iterator.basic_resolver_iterator [*basic_resolver_iterator]]]
- [Default constructor creates an end iterator. ]
- ]
-
- [
- [[link boost_asio.reference.ip__basic_resolver_iterator.create [*create]]]
- [Create an iterator from an addrinfo list returned by getaddrinfo.
+ data_type * data();
 
- Create an iterator from an endpoint, host name and service name. ]
- ]
-
- [
- [[link boost_asio.reference.ip__basic_resolver_iterator.operator__star_ [*operator *]]]
- [Dereference an iterator. ]
- ]
-
- [
- [[link boost_asio.reference.ip__basic_resolver_iterator.operator_plus__plus_ [*operator++]]]
- [Increment operator (prefix).
 
- Increment operator (postfix). ]
- ]
-
- [
- [[link boost_asio.reference.ip__basic_resolver_iterator.operator_arrow_ [*operator->]]]
- [Dereference an iterator. ]
- ]
-
-]
 
-[heading Friends]
-[table
- [[Name][Description]]
+[endsect]
 
- [
- [[link boost_asio.reference.ip__basic_resolver_iterator.operator_not__eq_ [*operator!=]]]
- [Test two iterators for inequality. ]
- ]
-
- [
- [[link boost_asio.reference.ip__basic_resolver_iterator.operator_eq__eq_ [*operator==]]]
- [Test two iterators for equality. ]
- ]
-
-]
 
-The [link boost_asio.reference.ip__basic_resolver_iterator `ip::basic_resolver_iterator`] class template is used to define iterators over the results returned by a resolver.
 
-The iterator's value\_type, obtained when the iterator is dereferenced, is:
+[section:overload2 ip::basic_endpoint::data (2 of 2 overloads)]
 
- const basic_resolver_entry<InternetProtocol>
 
+Get the underlying endpoint in the native type.
 
 
+ const data_type * data() const;
 
 
-[heading Thread Safety]
-
-[*Distinct] [*objects:] Safe.
 
-[*Shared] [*objects:] Unsafe.
+[endsect]
 
 
+[endsect]
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/ip/basic_resolver_iterator.hpp]
+[section:data_type ip::basic_endpoint::data_type]
 
-[*Convenience header: ][^boost/asio.hpp]
+[indexterm2 data_type..ip::basic_endpoint]
+The type of the endpoint structure. This type is dependent on the underlying implementation of the socket layer.
 
 
-[section:basic_resolver_iterator ip::basic_resolver_iterator::basic_resolver_iterator]
+ typedef implementation_defined data_type;
 
-[indexterm2 basic_resolver_iterator..ip::basic_resolver_iterator]
-Default constructor creates an end iterator.
 
 
- basic_resolver_iterator();
+[heading Requirements]
+
+[*Header: ][^boost/asio/ip/basic_endpoint.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
-[section:create ip::basic_resolver_iterator::create]
 
-[indexterm2 create..ip::basic_resolver_iterator]
-Create an iterator from an addrinfo list returned by getaddrinfo.
+[section:operator_not__eq_ ip::basic_endpoint::operator!=]
 
+[indexterm2 operator!=..ip::basic_endpoint]
+Compare two endpoints for inequality.
 
- static basic_resolver_iterator ``[link boost_asio.reference.ip__basic_resolver_iterator.create.overload1 create]``(
- boost::asio::detail::addrinfo_type * address_info,
- const std::string & host_name,
- const std::string & service_name);
- `` [''''&raquo;''' [link boost_asio.reference.ip__basic_resolver_iterator.create.overload1 more...]]``
 
+ friend bool operator!=(
+ const basic_endpoint< InternetProtocol > & e1,
+ const basic_endpoint< InternetProtocol > & e2);
 
-Create an iterator from an endpoint, host name and service name.
 
+[heading Requirements]
 
- static basic_resolver_iterator ``[link boost_asio.reference.ip__basic_resolver_iterator.create.overload2 create]``(
- const typename InternetProtocol::endpoint & endpoint,
- const std::string & host_name,
- const std::string & service_name);
- `` [''''&raquo;''' [link boost_asio.reference.ip__basic_resolver_iterator.create.overload2 more...]]``
+[*Header: ][^boost/asio/ip/basic_endpoint.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
-[section:overload1 ip::basic_resolver_iterator::create (1 of 2 overloads)]
 
+[endsect]
 
-Create an iterator from an addrinfo list returned by getaddrinfo.
 
 
- static basic_resolver_iterator create(
- boost::asio::detail::addrinfo_type * address_info,
- const std::string & host_name,
- const std::string & service_name);
+[section:operator_lt_ ip::basic_endpoint::operator<]
 
+[indexterm2 operator<..ip::basic_endpoint]
+Compare endpoints for ordering.
 
 
-[endsect]
+ friend bool operator<(
+ const basic_endpoint< InternetProtocol > & e1,
+ const basic_endpoint< InternetProtocol > & e2);
 
 
+[heading Requirements]
 
-[section:overload2 ip::basic_resolver_iterator::create (2 of 2 overloads)]
+[*Header: ][^boost/asio/ip/basic_endpoint.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
-Create an iterator from an endpoint, host name and service name.
 
+[endsect]
 
- static basic_resolver_iterator create(
- const typename InternetProtocol::endpoint & endpoint,
- const std::string & host_name,
- const std::string & service_name);
 
 
+[section:operator_lt__lt_ ip::basic_endpoint::operator<<]
 
-[endsect]
+[indexterm2 operator<<..ip::basic_endpoint]
+Output an endpoint as a string.
 
 
-[endsect]
+ std::basic_ostream< Elem, Traits > & operator<<(
+ std::basic_ostream< Elem, Traits > & os,
+ const basic_endpoint< InternetProtocol > & endpoint);
 
 
-[section:difference_type ip::basic_resolver_iterator::difference_type]
+Used to output a human-readable string for a specified endpoint.
 
-[indexterm2 difference_type..ip::basic_resolver_iterator]
-The type used for the distance between two iterators.
 
+[heading Parameters]
+
 
- typedef std::ptrdiff_t difference_type;
+[variablelist
+
+[[os][The output stream to which the string will be written.]]
 
+[[endpoint][The endpoint to be written.]]
 
+]
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/ip/basic_resolver_iterator.hpp]
+[heading Return Value]
+
+The output stream.
 
-[*Convenience header: ][^boost/asio.hpp]
 
 
-[endsect]
 
+[endsect]
 
 
-[section:iterator_category ip::basic_resolver_iterator::iterator_category]
 
-[indexterm2 iterator_category..ip::basic_resolver_iterator]
-The iterator category.
+[section:operator_lt__eq_ ip::basic_endpoint::operator<=]
 
+[indexterm2 operator<=..ip::basic_endpoint]
+Compare endpoints for ordering.
 
- typedef std::forward_iterator_tag iterator_category;
 
+ friend bool operator<=(
+ const basic_endpoint< InternetProtocol > & e1,
+ const basic_endpoint< InternetProtocol > & e2);
 
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/ip/basic_resolver_iterator.hpp]
+[*Header: ][^boost/asio/ip/basic_endpoint.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
@@ -59287,13 +59137,14 @@
 
 
 
-[section:operator__star_ ip::basic_resolver_iterator::operator *]
+[section:operator_eq_ ip::basic_endpoint::operator=]
 
-[indexterm2 operator *..ip::basic_resolver_iterator]
-Dereference an iterator.
+[indexterm2 operator=..ip::basic_endpoint]
+Assign from another endpoint.
 
 
- const basic_resolver_entry< InternetProtocol > & operator *() const;
+ basic_endpoint & operator=(
+ const basic_endpoint & other);
 
 
 
@@ -59301,20 +59152,20 @@
 
 
 
-[section:operator_not__eq_ ip::basic_resolver_iterator::operator!=]
+[section:operator_eq__eq_ ip::basic_endpoint::operator==]
 
-[indexterm2 operator!=..ip::basic_resolver_iterator]
-Test two iterators for inequality.
+[indexterm2 operator==..ip::basic_endpoint]
+Compare two endpoints for equality.
 
 
- friend bool operator!=(
- const basic_resolver_iterator & a,
- const basic_resolver_iterator & b);
+ friend bool operator==(
+ const basic_endpoint< InternetProtocol > & e1,
+ const basic_endpoint< InternetProtocol > & e2);
 
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/ip/basic_resolver_iterator.hpp]
+[*Header: ][^boost/asio/ip/basic_endpoint.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
@@ -59322,204 +59173,176 @@
 [endsect]
 
 
-[section:operator_plus__plus_ ip::basic_resolver_iterator::operator++]
 
-[indexterm2 operator++..ip::basic_resolver_iterator]
-Increment operator (prefix).
+[section:operator_gt_ ip::basic_endpoint::operator>]
 
+[indexterm2 operator>..ip::basic_endpoint]
+Compare endpoints for ordering.
 
- basic_resolver_iterator & ``[link boost_asio.reference.ip__basic_resolver_iterator.operator_plus__plus_.overload1 operator++]``();
- `` [''''&raquo;''' [link boost_asio.reference.ip__basic_resolver_iterator.operator_plus__plus_.overload1 more...]]``
 
+ friend bool operator>(
+ const basic_endpoint< InternetProtocol > & e1,
+ const basic_endpoint< InternetProtocol > & e2);
 
-Increment operator (postfix).
 
+[heading Requirements]
 
- basic_resolver_iterator ``[link boost_asio.reference.ip__basic_resolver_iterator.operator_plus__plus_.overload2 operator++]``(
- int );
- `` [''''&raquo;''' [link boost_asio.reference.ip__basic_resolver_iterator.operator_plus__plus_.overload2 more...]]``
+[*Header: ][^boost/asio/ip/basic_endpoint.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
-[section:overload1 ip::basic_resolver_iterator::operator++ (1 of 2 overloads)]
 
+[endsect]
 
-Increment operator (prefix).
 
 
- basic_resolver_iterator & operator++();
+[section:operator_gt__eq_ ip::basic_endpoint::operator>=]
 
+[indexterm2 operator>=..ip::basic_endpoint]
+Compare endpoints for ordering.
 
 
-[endsect]
+ friend bool operator>=(
+ const basic_endpoint< InternetProtocol > & e1,
+ const basic_endpoint< InternetProtocol > & e2);
+
 
+[heading Requirements]
 
+[*Header: ][^boost/asio/ip/basic_endpoint.hpp]
 
-[section:overload2 ip::basic_resolver_iterator::operator++ (2 of 2 overloads)]
+[*Convenience header: ][^boost/asio.hpp]
 
 
-Increment operator (postfix).
+[endsect]
 
 
- basic_resolver_iterator operator++(
- int );
+[section:port ip::basic_endpoint::port]
 
+[indexterm2 port..ip::basic_endpoint]
+Get the port associated with the endpoint. The port number is always in the host's byte order.
 
 
-[endsect]
+ unsigned short ``[link boost_asio.reference.ip__basic_endpoint.port.overload1 port]``() const;
+ `` [''''&raquo;''' [link boost_asio.reference.ip__basic_endpoint.port.overload1 more...]]``
 
 
-[endsect]
+Set the port associated with the endpoint. The port number is always in the host's byte order.
 
 
-[section:operator_arrow_ ip::basic_resolver_iterator::operator->]
+ void ``[link boost_asio.reference.ip__basic_endpoint.port.overload2 port]``(
+ unsigned short port_num);
+ `` [''''&raquo;''' [link boost_asio.reference.ip__basic_endpoint.port.overload2 more...]]``
 
-[indexterm2 operator->..ip::basic_resolver_iterator]
-Dereference an iterator.
 
+[section:overload1 ip::basic_endpoint::port (1 of 2 overloads)]
 
- const basic_resolver_entry< InternetProtocol > * operator->() const;
 
+Get the port associated with the endpoint. The port number is always in the host's byte order.
 
 
-[endsect]
+ unsigned short port() const;
 
 
 
-[section:operator_eq__eq_ ip::basic_resolver_iterator::operator==]
+[endsect]
 
-[indexterm2 operator==..ip::basic_resolver_iterator]
-Test two iterators for equality.
 
 
- friend bool operator==(
- const basic_resolver_iterator & a,
- const basic_resolver_iterator & b);
+[section:overload2 ip::basic_endpoint::port (2 of 2 overloads)]
 
 
-[heading Requirements]
+Set the port associated with the endpoint. The port number is always in the host's byte order.
 
-[*Header: ][^boost/asio/ip/basic_resolver_iterator.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
+ void port(
+ unsigned short port_num);
+
 
 
 [endsect]
 
 
+[endsect]
 
-[section:pointer ip::basic_resolver_iterator::pointer]
 
-[indexterm2 pointer..ip::basic_resolver_iterator]
-The type of the result of applying `operator->()` to the iterator.
+[section:protocol ip::basic_endpoint::protocol]
 
+[indexterm2 protocol..ip::basic_endpoint]
+The protocol associated with the endpoint.
 
- typedef const basic_resolver_entry< InternetProtocol > * pointer;
 
+ protocol_type protocol() const;
 
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/ip/basic_resolver_iterator.hpp]
+[endsect]
 
-[*Convenience header: ][^boost/asio.hpp]
 
 
-[endsect]
+[section:protocol_type ip::basic_endpoint::protocol_type]
 
+[indexterm2 protocol_type..ip::basic_endpoint]
+The protocol type associated with the endpoint.
 
 
-[section:reference ip::basic_resolver_iterator::reference]
+ typedef InternetProtocol protocol_type;
 
-[indexterm2 reference..ip::basic_resolver_iterator]
-The type of the result of applying `operator*()` to the iterator.
 
 
- typedef const basic_resolver_entry< InternetProtocol > & reference;
+[heading Requirements]
 
+[*Header: ][^boost/asio/ip/basic_endpoint.hpp]
 
-[heading Types]
-[table
- [[Name][Description]]
+[*Convenience header: ][^boost/asio.hpp]
 
- [
 
- [[link boost_asio.reference.ip__basic_resolver_entry.endpoint_type [*endpoint_type]]]
- [The endpoint type associated with the endpoint entry. ]
-
- ]
+[endsect]
 
- [
 
- [[link boost_asio.reference.ip__basic_resolver_entry.protocol_type [*protocol_type]]]
- [The protocol type associated with the endpoint entry. ]
-
- ]
 
-]
+[section:resize ip::basic_endpoint::resize]
 
-[heading Member Functions]
-[table
- [[Name][Description]]
+[indexterm2 resize..ip::basic_endpoint]
+Set the underlying size of the endpoint in the native type.
 
- [
- [[link boost_asio.reference.ip__basic_resolver_entry.basic_resolver_entry [*basic_resolver_entry]]]
- [Default constructor.
 
- Construct with specified endpoint, host name and service name. ]
- ]
-
- [
- [[link boost_asio.reference.ip__basic_resolver_entry.endpoint [*endpoint]]]
- [Get the endpoint associated with the entry. ]
- ]
-
- [
- [[link boost_asio.reference.ip__basic_resolver_entry.host_name [*host_name]]]
- [Get the host name associated with the entry. ]
- ]
-
- [
- [[link boost_asio.reference.ip__basic_resolver_entry.operator_endpoint_type [*operator endpoint_type]]]
- [Convert to the endpoint associated with the entry. ]
- ]
-
- [
- [[link boost_asio.reference.ip__basic_resolver_entry.service_name [*service_name]]]
- [Get the service name associated with the entry. ]
- ]
-
-]
+ void resize(
+ std::size_t new_size);
 
-The [link boost_asio.reference.ip__basic_resolver_entry `ip::basic_resolver_entry`] class template describes an entry as returned by a resolver.
 
 
-[heading Thread Safety]
-
-[*Distinct] [*objects:] Safe.
+[endsect]
 
-[*Shared] [*objects:] Unsafe.
 
 
+[section:size ip::basic_endpoint::size]
 
+[indexterm2 size..ip::basic_endpoint]
+Get the underlying size of the endpoint in the native type.
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/ip/basic_resolver_iterator.hpp]
+ std::size_t size() const;
 
-[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
 
-[section:value_type ip::basic_resolver_iterator::value_type]
+[endsect]
 
-[indexterm2 value_type..ip::basic_resolver_iterator]
-The type of the value pointed to by the iterator.
+[section:ip__basic_resolver ip::basic_resolver]
 
 
- typedef basic_resolver_entry< InternetProtocol > value_type;
+Provides endpoint resolution functionality.
+
+
+ template<
+ typename ``[link boost_asio.reference.InternetProtocol InternetProtocol]``,
+ typename ``[link boost_asio.reference.ResolverService ResolverService]`` = resolver_service<InternetProtocol>>
+ class basic_resolver :
+ public basic_io_object< ResolverService >
 
 
 [heading Types]
@@ -59528,105 +59351,43 @@
 
   [
 
- [[link boost_asio.reference.ip__basic_resolver_entry.endpoint_type [*endpoint_type]]]
- [The endpoint type associated with the endpoint entry. ]
+ [[link boost_asio.reference.ip__basic_resolver.endpoint_type [*endpoint_type]]]
+ [The endpoint type. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.ip__basic_resolver_entry.protocol_type [*protocol_type]]]
- [The protocol type associated with the endpoint entry. ]
+ [[link boost_asio.reference.ip__basic_resolver.implementation_type [*implementation_type]]]
+ [The underlying implementation type of I/O object. ]
   
   ]
 
-]
-
-[heading Member Functions]
-[table
- [[Name][Description]]
-
   [
- [[link boost_asio.reference.ip__basic_resolver_entry.basic_resolver_entry [*basic_resolver_entry]]]
- [Default constructor.
 
- Construct with specified endpoint, host name and service name. ]
- ]
-
- [
- [[link boost_asio.reference.ip__basic_resolver_entry.endpoint [*endpoint]]]
- [Get the endpoint associated with the entry. ]
- ]
-
- [
- [[link boost_asio.reference.ip__basic_resolver_entry.host_name [*host_name]]]
- [Get the host name associated with the entry. ]
- ]
-
- [
- [[link boost_asio.reference.ip__basic_resolver_entry.operator_endpoint_type [*operator endpoint_type]]]
- [Convert to the endpoint associated with the entry. ]
- ]
+ [[link boost_asio.reference.ip__basic_resolver.iterator [*iterator]]]
+ [The iterator type. ]
   
- [
- [[link boost_asio.reference.ip__basic_resolver_entry.service_name [*service_name]]]
- [Get the service name associated with the entry. ]
   ]
-
-]
-
-The [link boost_asio.reference.ip__basic_resolver_entry `ip::basic_resolver_entry`] class template describes an entry as returned by a resolver.
 
+ [
 
-[heading Thread Safety]
+ [[link boost_asio.reference.ip__basic_resolver.protocol_type [*protocol_type]]]
+ [The protocol type. ]
   
-[*Distinct] [*objects:] Safe.
-
-[*Shared] [*objects:] Unsafe.
-
-
-
-
-[heading Requirements]
-
-[*Header: ][^boost/asio/ip/basic_resolver_iterator.hpp]
-
-[*Convenience header: ][^boost/asio.hpp]
-
-
-[endsect]
-
-
-
-[endsect]
-
-[section:ip__basic_resolver_query ip::basic_resolver_query]
-
-
-An query to be passed to a resolver.
-
-
- template<
- typename ``[link boost_asio.reference.InternetProtocol InternetProtocol]``>
- class basic_resolver_query :
- public ip::resolver_query_base
-
-
-[heading Types]
-[table
- [[Name][Description]]
+ ]
 
   [
 
- [[link boost_asio.reference.ip__basic_resolver_query.flags [*flags]]]
- [A bitmask type (C++ Std \[lib.bitmask.types\]). ]
+ [[link boost_asio.reference.ip__basic_resolver.query [*query]]]
+ [The query type. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.ip__basic_resolver_query.protocol_type [*protocol_type]]]
- [The protocol type associated with the endpoint query. ]
+ [[link boost_asio.reference.ip__basic_resolver.service_type [*service_type]]]
+ [The type of the service that will be used to provide I/O operations. ]
   
   ]
 
@@ -59637,75 +59398,69 @@
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.ip__basic_resolver_query.basic_resolver_query [*basic_resolver_query]]]
- [Construct with specified service name for any protocol.
-
- Construct with specified service name for a given protocol.
-
- Construct with specified host name and service name for any protocol.
+ [[link boost_asio.reference.ip__basic_resolver.async_resolve [*async_resolve]]]
+ [Asynchronously perform forward resolution of a query to a list of entries.
 
- Construct with specified host name and service name for a given protocol. ]
+ Asynchronously perform reverse resolution of an endpoint to a list of entries. ]
   ]
   
   [
- [[link boost_asio.reference.ip__basic_resolver_query.hints [*hints]]]
- [Get the hints associated with the query. ]
+ [[link boost_asio.reference.ip__basic_resolver.basic_resolver [*basic_resolver]]]
+ [Constructor. ]
   ]
   
   [
- [[link boost_asio.reference.ip__basic_resolver_query.host_name [*host_name]]]
- [Get the host name associated with the query. ]
+ [[link boost_asio.reference.ip__basic_resolver.cancel [*cancel]]]
+ [Cancel any asynchronous operations that are waiting on the resolver. ]
   ]
   
   [
- [[link boost_asio.reference.ip__basic_resolver_query.service_name [*service_name]]]
- [Get the service name associated with the query. ]
+ [[link boost_asio.reference.ip__basic_resolver.get_io_service [*get_io_service]]]
+ [Get the io_service associated with the object. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__basic_resolver.resolve [*resolve]]]
+ [Perform forward resolution of a query to a list of entries.
+
+ Perform reverse resolution of an endpoint to a list of entries. ]
   ]
   
 ]
 
-[heading Data Members]
+[heading Protected Member Functions]
 [table
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.ip__basic_resolver_query.address_configured [*address_configured]]]
- [Only return IPv4 addresses if a non-loopback IPv4 address is configured for the system. Only return IPv6 addresses if a non-loopback IPv6 address is configured for the system. ]
- ]
-
- [
- [[link boost_asio.reference.ip__basic_resolver_query.all_matching [*all_matching]]]
- [If used with v4_mapped, return all matching IPv6 and IPv4 addresses. ]
- ]
-
- [
- [[link boost_asio.reference.ip__basic_resolver_query.canonical_name [*canonical_name]]]
- [Determine the canonical name of the host specified in the query. ]
+ [[link boost_asio.reference.ip__basic_resolver.get_implementation [*get_implementation]]]
+ [Get the underlying implementation of the I/O object. ]
   ]
-
+
   [
- [[link boost_asio.reference.ip__basic_resolver_query.numeric_host [*numeric_host]]]
- [Host name should be treated as a numeric string defining an IPv4 or IPv6 address and no name resolution should be attempted. ]
+ [[link boost_asio.reference.ip__basic_resolver.get_service [*get_service]]]
+ [Get the service associated with the I/O object. ]
   ]
+
+]
 
- [
- [[link boost_asio.reference.ip__basic_resolver_query.numeric_service [*numeric_service]]]
- [Service name should be treated as a numeric string defining a port number and no name resolution should be attempted. ]
- ]
+[heading Protected Data Members]
+[table
+ [[Name][Description]]
 
   [
- [[link boost_asio.reference.ip__basic_resolver_query.passive [*passive]]]
- [Indicate that returned endpoint is intended for use as a locally bound socket endpoint. ]
+ [[link boost_asio.reference.ip__basic_resolver.implementation [*implementation]]]
+ [(Deprecated: Use get_implementation().) The underlying implementation of the I/O object. ]
   ]
 
   [
- [[link boost_asio.reference.ip__basic_resolver_query.v4_mapped [*v4_mapped]]]
- [If the query protocol family is specified as IPv6, return IPv4-mapped IPv6 addresses on finding no IPv6 addresses. ]
+ [[link boost_asio.reference.ip__basic_resolver.service [*service]]]
+ [(Deprecated: Use get_service().) The service associated with the I/O object. ]
   ]
 
 ]
 
-The [link boost_asio.reference.ip__basic_resolver_query `ip::basic_resolver_query`] class template describes a query that can be passed to a resolver.
+The [link boost_asio.reference.ip__basic_resolver `ip::basic_resolver`] class template provides the ability to resolve a query to a list of endpoints.
 
 
 [heading Thread Safety]
@@ -59718,99 +59473,97 @@
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/ip/basic_resolver_query.hpp]
+[*Header: ][^boost/asio/ip/basic_resolver.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
+[section:async_resolve ip::basic_resolver::async_resolve]
 
-[section:address_configured ip::basic_resolver_query::address_configured]
+[indexterm2 async_resolve..ip::basic_resolver]
+Asynchronously perform forward resolution of a query to a list of entries.
 
 
-['Inherited from ip::resolver_query_base.]
+ template<
+ typename ``[link boost_asio.reference.ResolveHandler ResolveHandler]``>
+ void ``[link boost_asio.reference.ip__basic_resolver.async_resolve.overload1 async_resolve]``(
+ const query & q,
+ ResolveHandler handler);
+ `` [''''&raquo;''' [link boost_asio.reference.ip__basic_resolver.async_resolve.overload1 more...]]``
 
-[indexterm2 address_configured..ip::basic_resolver_query]
-Only return IPv4 addresses if a non-loopback IPv4 address is configured for the system. Only return IPv6 addresses if a non-loopback IPv6 address is configured for the system.
 
+Asynchronously perform reverse resolution of an endpoint to a list of entries.
 
- static const flags address_configured = implementation_defined;
 
+ template<
+ typename ``[link boost_asio.reference.ResolveHandler ResolveHandler]``>
+ void ``[link boost_asio.reference.ip__basic_resolver.async_resolve.overload2 async_resolve]``(
+ const endpoint_type & e,
+ ResolveHandler handler);
+ `` [''''&raquo;''' [link boost_asio.reference.ip__basic_resolver.async_resolve.overload2 more...]]``
 
 
-[endsect]
+[section:overload1 ip::basic_resolver::async_resolve (1 of 2 overloads)]
 
 
+Asynchronously perform forward resolution of a query to a list of entries.
 
-[section:all_matching ip::basic_resolver_query::all_matching]
 
+ template<
+ typename ``[link boost_asio.reference.ResolveHandler ResolveHandler]``>
+ void async_resolve(
+ const query & q,
+ ResolveHandler handler);
 
-['Inherited from ip::resolver_query_base.]
 
-[indexterm2 all_matching..ip::basic_resolver_query]
-If used with v4\_mapped, return all matching IPv6 and IPv4 addresses.
+This function is used to asynchronously resolve a query into a list of endpoint entries.
 
 
- static const flags all_matching = implementation_defined;
+[heading Parameters]
+
 
+[variablelist
+
+[[q][A query object that determines what endpoints will be returned.]]
 
+[[handler][The handler to be called when the resolve operation completes. Copies will be made of the handler as required. The function signature of the handler must be:
+``
+ void handler(
+ const boost::system::error_code& error, // Result of operation.
+ resolver::iterator iterator // Forward-only iterator that can
+ // be used to traverse the list
+ // of endpoint entries.
+ );
+``
+Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using `boost::asio::io_service::post()`.]]
 
-[endsect]
+]
 
 
-[section:basic_resolver_query ip::basic_resolver_query::basic_resolver_query]
+[heading Remarks]
+
+A default constructed iterator represents the end of the list.
 
-[indexterm2 basic_resolver_query..ip::basic_resolver_query]
-Construct with specified service name for any protocol.
+A successful resolve operation is guaranteed to pass at least one entry to the handler.
 
 
- ``[link boost_asio.reference.ip__basic_resolver_query.basic_resolver_query.overload1 basic_resolver_query]``(
- const std::string & service,
- resolver_query_base::flags resolve_flags = passive|address_configured);
- `` [''''&raquo;''' [link boost_asio.reference.ip__basic_resolver_query.basic_resolver_query.overload1 more...]]``
+[endsect]
 
 
-Construct with specified service name for a given protocol.
 
-
- ``[link boost_asio.reference.ip__basic_resolver_query.basic_resolver_query.overload2 basic_resolver_query]``(
- const protocol_type & protocol,
- const std::string & service,
- resolver_query_base::flags resolve_flags = passive|address_configured);
- `` [''''&raquo;''' [link boost_asio.reference.ip__basic_resolver_query.basic_resolver_query.overload2 more...]]``
-
-
-Construct with specified host name and service name for any protocol.
-
-
- ``[link boost_asio.reference.ip__basic_resolver_query.basic_resolver_query.overload3 basic_resolver_query]``(
- const std::string & host,
- const std::string & service,
- resolver_query_base::flags resolve_flags = address_configured);
- `` [''''&raquo;''' [link boost_asio.reference.ip__basic_resolver_query.basic_resolver_query.overload3 more...]]``
-
-
-Construct with specified host name and service name for a given protocol.
-
-
- ``[link boost_asio.reference.ip__basic_resolver_query.basic_resolver_query.overload4 basic_resolver_query]``(
- const protocol_type & protocol,
- const std::string & host,
- const std::string & service,
- resolver_query_base::flags resolve_flags = address_configured);
- `` [''''&raquo;''' [link boost_asio.reference.ip__basic_resolver_query.basic_resolver_query.overload4 more...]]``
-
-
-[section:overload1 ip::basic_resolver_query::basic_resolver_query (1 of 4 overloads)]
+[section:overload2 ip::basic_resolver::async_resolve (2 of 2 overloads)]
 
 
-Construct with specified service name for any protocol.
+Asynchronously perform reverse resolution of an endpoint to a list of entries.
 
 
- basic_resolver_query(
- const std::string & service,
- resolver_query_base::flags resolve_flags = passive|address_configured);
+ template<
+ typename ``[link boost_asio.reference.ResolveHandler ResolveHandler]``>
+ void async_resolve(
+ const endpoint_type & e,
+ ResolveHandler handler);
 
 
-This constructor is typically used to perform name resolution for local service binding.
+This function is used to asynchronously resolve an endpoint into a list of endpoint entries.
 
 
 [heading Parameters]
@@ -59818,37 +59571,46 @@
 
 [variablelist
   
-[[service][A string identifying the requested service. This may be a descriptive name or a numeric string corresponding to a port number.]]
+[[e][An endpoint object that determines what endpoints will be returned.]]
 
-[[resolve_flags][A set of flags that determine how name resolution should be performed. The default flags are suitable for local service binding.]]
+[[handler][The handler to be called when the resolve operation completes. Copies will be made of the handler as required. The function signature of the handler must be:
+``
+ void handler(
+ const boost::system::error_code& error, // Result of operation.
+ resolver::iterator iterator // Forward-only iterator that can
+ // be used to traverse the list
+ // of endpoint entries.
+ );
+``
+Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using `boost::asio::io_service::post()`.]]
 
 ]
 
 
 [heading Remarks]
       
-On POSIX systems, service names are typically defined in the file `/etc/services`. On Windows, service names may be found in the file `c:\windows\system32\drivers\etc\services`. Operating systems may use additional locations when resolving service names.
-
+A default constructed iterator represents the end of the list.
 
+A successful resolve operation is guaranteed to pass at least one entry to the handler.
 
 
 [endsect]
 
 
+[endsect]
 
-[section:overload2 ip::basic_resolver_query::basic_resolver_query (2 of 4 overloads)]
 
+[section:basic_resolver ip::basic_resolver::basic_resolver]
 
-Construct with specified service name for a given protocol.
+[indexterm2 basic_resolver..ip::basic_resolver]
+Constructor.
 
 
- basic_resolver_query(
- const protocol_type & protocol,
- const std::string & service,
- resolver_query_base::flags resolve_flags = passive|address_configured);
+ basic_resolver(
+ boost::asio::io_service & io_service);
 
 
-This constructor is typically used to perform name resolution for local service binding with a specific protocol version.
+This constructor creates a [link boost_asio.reference.ip__basic_resolver `ip::basic_resolver`].
 
 
 [heading Parameters]
@@ -59856,121 +59618,76 @@
 
 [variablelist
   
-[[protocol][A protocol object, normally representing either the IPv4 or IPv6 version of an internet protocol.]]
-
-[[service][A string identifying the requested service. This may be a descriptive name or a numeric string corresponding to a port number.]]
-
-[[resolve_flags][A set of flags that determine how name resolution should be performed. The default flags are suitable for local service binding.]]
+[[io_service][The [link boost_asio.reference.io_service `io_service`] object that the resolver will use to dispatch handlers for any asynchronous operations performed on the timer. ]]
 
 ]
 
 
-[heading Remarks]
-
-On POSIX systems, service names are typically defined in the file `/etc/services`. On Windows, service names may be found in the file `c:\windows\system32\drivers\etc\services`. Operating systems may use additional locations when resolving service names.
-
-
 
 
 [endsect]
 
 
 
-[section:overload3 ip::basic_resolver_query::basic_resolver_query (3 of 4 overloads)]
-
-
-Construct with specified host name and service name for any protocol.
-
-
- basic_resolver_query(
- const std::string & host,
- const std::string & service,
- resolver_query_base::flags resolve_flags = address_configured);
-
-
-This constructor is typically used to perform name resolution for communication with remote hosts.
-
-
-[heading Parameters]
-
-
-[variablelist
-
-[[host][A string identifying a location. May be a descriptive name or a numeric address string. If an empty string and the passive flag has been specified, the resolved endpoints are suitable for local service binding. If an empty string and passive is not specified, the resolved endpoints will use the loopback address.]]
-
-[[service][A string identifying the requested service. This may be a descriptive name or a numeric string corresponding to a port number. May be an empty string, in which case all resolved endpoints will have a port number of 0.]]
+[section:cancel ip::basic_resolver::cancel]
 
-[[resolve_flags][A set of flags that determine how name resolution should be performed. The default flags are suitable for communication with remote hosts.]]
+[indexterm2 cancel..ip::basic_resolver]
+Cancel any asynchronous operations that are waiting on the resolver.
 
-]
 
+ void cancel();
 
-[heading Remarks]
-
-On POSIX systems, host names may be locally defined in the file `/etc/hosts`. On Windows, host names may be defined in the file `c:\windows\system32\drivers\etc\hosts`. Remote host name resolution is performed using DNS. Operating systems may use additional locations when resolving host names (such as NETBIOS names on Windows).
 
-On POSIX systems, service names are typically defined in the file `/etc/services`. On Windows, service names may be found in the file `c:\windows\system32\drivers\etc\services`. Operating systems may use additional locations when resolving service names.
+This function forces the completion of any pending asynchronous operations on the host resolver. The handler for each cancelled operation will be invoked with the `boost::asio::error::operation_aborted` error code.
 
 
 [endsect]
 
 
 
-[section:overload4 ip::basic_resolver_query::basic_resolver_query (4 of 4 overloads)]
-
-
-Construct with specified host name and service name for a given protocol.
-
+[section:endpoint_type ip::basic_resolver::endpoint_type]
 
- basic_resolver_query(
- const protocol_type & protocol,
- const std::string & host,
- const std::string & service,
- resolver_query_base::flags resolve_flags = address_configured);
+[indexterm2 endpoint_type..ip::basic_resolver]
+The endpoint type.
 
 
-This constructor is typically used to perform name resolution for communication with remote hosts.
+ typedef InternetProtocol::endpoint endpoint_type;
 
 
-[heading Parameters]
-
 
-[variablelist
-
-[[protocol][A protocol object, normally representing either the IPv4 or IPv6 version of an internet protocol.]]
+[heading Requirements]
 
-[[host][A string identifying a location. May be a descriptive name or a numeric address string. If an empty string and the passive flag has been specified, the resolved endpoints are suitable for local service binding. If an empty string and passive is not specified, the resolved endpoints will use the loopback address.]]
+[*Header: ][^boost/asio/ip/basic_resolver.hpp]
 
-[[service][A string identifying the requested service. This may be a descriptive name or a numeric string corresponding to a port number. May be an empty string, in which case all resolved endpoints will have a port number of 0.]]
+[*Convenience header: ][^boost/asio.hpp]
 
-[[resolve_flags][A set of flags that determine how name resolution should be performed. The default flags are suitable for communication with remote hosts.]]
 
-]
+[endsect]
 
 
-[heading Remarks]
-
-On POSIX systems, host names may be locally defined in the file `/etc/hosts`. On Windows, host names may be defined in the file `c:\windows\system32\drivers\etc\hosts`. Remote host name resolution is performed using DNS. Operating systems may use additional locations when resolving host names (such as NETBIOS names on Windows).
+[section:get_implementation ip::basic_resolver::get_implementation]
 
-On POSIX systems, service names are typically defined in the file `/etc/services`. On Windows, service names may be found in the file `c:\windows\system32\drivers\etc\services`. Operating systems may use additional locations when resolving service names.
+[indexterm2 get_implementation..ip::basic_resolver]
+Get the underlying implementation of the I/O object.
 
 
-[endsect]
+ implementation_type & ``[link boost_asio.reference.ip__basic_resolver.get_implementation.overload1 get_implementation]``();
+ `` [''''&raquo;''' [link boost_asio.reference.ip__basic_resolver.get_implementation.overload1 more...]]``
 
+ const implementation_type & ``[link boost_asio.reference.ip__basic_resolver.get_implementation.overload2 get_implementation]``() const;
+ `` [''''&raquo;''' [link boost_asio.reference.ip__basic_resolver.get_implementation.overload2 more...]]``
 
-[endsect]
 
+[section:overload1 ip::basic_resolver::get_implementation (1 of 2 overloads)]
 
-[section:canonical_name ip::basic_resolver_query::canonical_name]
 
+['Inherited from basic_io_object.]
 
-['Inherited from ip::resolver_query_base.]
 
-[indexterm2 canonical_name..ip::basic_resolver_query]
-Determine the canonical name of the host specified in the query.
+Get the underlying implementation of the I/O object.
 
 
- static const flags canonical_name = implementation_defined;
+ implementation_type & get_implementation();
 
 
 
@@ -59978,102 +59695,73 @@
 
 
 
-[section:flags ip::basic_resolver_query::flags]
-
-
-['Inherited from ip::resolver_query_base.]
-
-[indexterm2 flags..ip::basic_resolver_query]
-A bitmask type (C++ Std [lib.bitmask.types]).
+[section:overload2 ip::basic_resolver::get_implementation (2 of 2 overloads)]
 
 
- typedef unspecified flags;
+['Inherited from basic_io_object.]
 
 
+Get the underlying implementation of the I/O object.
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/ip/basic_resolver_query.hpp]
+ const implementation_type & get_implementation() const;
 
-[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
-
-[section:hints ip::basic_resolver_query::hints]
-
-[indexterm2 hints..ip::basic_resolver_query]
-Get the hints associated with the query.
-
-
- const boost::asio::detail::addrinfo_type & hints() const;
-
-
-
 [endsect]
 
 
-
-[section:host_name ip::basic_resolver_query::host_name]
-
-[indexterm2 host_name..ip::basic_resolver_query]
-Get the host name associated with the query.
-
-
- std::string host_name() const;
-
+[section:get_io_service ip::basic_resolver::get_io_service]
 
 
-[endsect]
+['Inherited from basic_io_object.]
 
+[indexterm2 get_io_service..ip::basic_resolver]
+Get the [link boost_asio.reference.io_service `io_service`] associated with the object.
 
 
-[section:numeric_host ip::basic_resolver_query::numeric_host]
+ boost::asio::io_service & get_io_service();
 
 
-['Inherited from ip::resolver_query_base.]
+This function may be used to obtain the [link boost_asio.reference.io_service `io_service`] object that the I/O object uses to dispatch handlers for asynchronous operations.
 
-[indexterm2 numeric_host..ip::basic_resolver_query]
-Host name should be treated as a numeric string defining an IPv4 or IPv6 address and no name resolution should be attempted.
 
+[heading Return Value]
+
+A reference to the [link boost_asio.reference.io_service `io_service`] object that the I/O object will use to dispatch handlers. Ownership is not transferred to the caller.
 
- static const flags numeric_host = implementation_defined;
 
 
 
 [endsect]
 
 
+[section:get_service ip::basic_resolver::get_service]
 
-[section:numeric_service ip::basic_resolver_query::numeric_service]
-
-
-['Inherited from ip::resolver_query_base.]
-
-[indexterm2 numeric_service..ip::basic_resolver_query]
-Service name should be treated as a numeric string defining a port number and no name resolution should be attempted.
-
-
- static const flags numeric_service = implementation_defined;
+[indexterm2 get_service..ip::basic_resolver]
+Get the service associated with the I/O object.
 
 
+ service_type & ``[link boost_asio.reference.ip__basic_resolver.get_service.overload1 get_service]``();
+ `` [''''&raquo;''' [link boost_asio.reference.ip__basic_resolver.get_service.overload1 more...]]``
 
-[endsect]
+ const service_type & ``[link boost_asio.reference.ip__basic_resolver.get_service.overload2 get_service]``() const;
+ `` [''''&raquo;''' [link boost_asio.reference.ip__basic_resolver.get_service.overload2 more...]]``
 
 
+[section:overload1 ip::basic_resolver::get_service (1 of 2 overloads)]
 
-[section:passive ip::basic_resolver_query::passive]
 
+['Inherited from basic_io_object.]
 
-['Inherited from ip::resolver_query_base.]
 
-[indexterm2 passive..ip::basic_resolver_query]
-Indicate that returned endpoint is intended for use as a locally bound socket endpoint.
+Get the service associated with the I/O object.
 
 
- static const flags passive = implementation_defined;
+ service_type & get_service();
 
 
 
@@ -60081,141 +59769,111 @@
 
 
 
-[section:protocol_type ip::basic_resolver_query::protocol_type]
-
-[indexterm2 protocol_type..ip::basic_resolver_query]
-The protocol type associated with the endpoint query.
+[section:overload2 ip::basic_resolver::get_service (2 of 2 overloads)]
 
 
- typedef InternetProtocol protocol_type;
+['Inherited from basic_io_object.]
 
 
+Get the service associated with the I/O object.
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/ip/basic_resolver_query.hpp]
+ const service_type & get_service() const;
 
-[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
-
-[section:service_name ip::basic_resolver_query::service_name]
-
-[indexterm2 service_name..ip::basic_resolver_query]
-Get the service name associated with the query.
-
-
- std::string service_name() const;
-
-
-
 [endsect]
 
 
-
-[section:v4_mapped ip::basic_resolver_query::v4_mapped]
-
-
-['Inherited from ip::resolver_query_base.]
-
-[indexterm2 v4_mapped..ip::basic_resolver_query]
-If the query protocol family is specified as IPv6, return IPv4-mapped IPv6 addresses on finding no IPv6 addresses.
+[section:implementation ip::basic_resolver::implementation]
 
 
- static const flags v4_mapped = implementation_defined;
+['Inherited from basic_io_object.]
 
+[indexterm2 implementation..ip::basic_resolver]
+(Deprecated: Use `get_implementation()`.) The underlying implementation of the I/O object.
 
 
-[endsect]
+ implementation_type implementation;
 
 
 
 [endsect]
 
-[section:ip__host_name ip::host_name]
-
-[indexterm1 ip::host_name]
-Get the current host name.
 
-
- std::string ``[link boost_asio.reference.ip__host_name.overload1 host_name]``();
- `` [''''&raquo;''' [link boost_asio.reference.ip__host_name.overload1 more...]]``
 
- std::string ``[link boost_asio.reference.ip__host_name.overload2 host_name]``(
- boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.ip__host_name.overload2 more...]]``
+[section:implementation_type ip::basic_resolver::implementation_type]
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/ip/host_name.hpp]
+['Inherited from basic_io_object.]
 
-[*Convenience header: ][^boost/asio.hpp]
+[indexterm2 implementation_type..ip::basic_resolver]
+The underlying implementation type of I/O object.
 
 
-[section:overload1 ip::host_name (1 of 2 overloads)]
+ typedef service_type::implementation_type implementation_type;
 
 
-Get the current host name.
 
+[heading Requirements]
 
- std::string host_name();
+[*Header: ][^boost/asio/ip/basic_resolver.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
 
-[section:overload2 ip::host_name (2 of 2 overloads)]
-
-
-Get the current host name.
-
-
- std::string host_name(
- boost::system::error_code & ec);
-
-
-
-[endsect]
+[section:iterator ip::basic_resolver::iterator]
 
+[indexterm2 iterator..ip::basic_resolver]
+The iterator type.
 
-[endsect]
 
-[section:ip__icmp ip::icmp]
+ typedef basic_resolver_iterator< InternetProtocol > iterator;
 
 
-Encapsulates the flags needed for ICMP.
+[heading Types]
+[table
+ [[Name][Description]]
 
+ [
 
- class icmp
+ [[link boost_asio.reference.ip__basic_resolver_iterator.difference_type [*difference_type]]]
+ [The type used for the distance between two iterators. ]
+
+ ]
 
+ [
 
-[heading Types]
-[table
- [[Name][Description]]
+ [[link boost_asio.reference.ip__basic_resolver_iterator.iterator_category [*iterator_category]]]
+ [The iterator category. ]
+
+ ]
 
   [
 
- [[link boost_asio.reference.ip__icmp.endpoint [*endpoint]]]
- [The type of a ICMP endpoint. ]
+ [[link boost_asio.reference.ip__basic_resolver_iterator.pointer [*pointer]]]
+ [The type of the result of applying operator->() to the iterator. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.ip__icmp.resolver [*resolver]]]
- [The ICMP resolver type. ]
+ [[link boost_asio.reference.ip__basic_resolver_iterator.reference [*reference]]]
+ [The type of the result of applying operator*() to the iterator. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.ip__icmp.socket [*socket]]]
- [The ICMP socket type. ]
+ [[link boost_asio.reference.ip__basic_resolver_iterator.value_type [*value_type]]]
+ [The type of the value pointed to by the iterator. ]
   
   ]
 
@@ -60226,28 +59884,32 @@
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.ip__icmp.family [*family]]]
- [Obtain an identifier for the protocol family. ]
+ [[link boost_asio.reference.ip__basic_resolver_iterator.basic_resolver_iterator [*basic_resolver_iterator]]]
+ [Default constructor creates an end iterator. ]
   ]
   
   [
- [[link boost_asio.reference.ip__icmp.protocol [*protocol]]]
- [Obtain an identifier for the protocol. ]
+ [[link boost_asio.reference.ip__basic_resolver_iterator.create [*create]]]
+ [Create an iterator from an addrinfo list returned by getaddrinfo.
+
+ Create an iterator from an endpoint, host name and service name. ]
   ]
   
   [
- [[link boost_asio.reference.ip__icmp.type [*type]]]
- [Obtain an identifier for the type of the protocol. ]
+ [[link boost_asio.reference.ip__basic_resolver_iterator.operator__star_ [*operator *]]]
+ [Dereference an iterator. ]
   ]
   
   [
- [[link boost_asio.reference.ip__icmp.v4 [*v4]]]
- [Construct to represent the IPv4 ICMP protocol. ]
+ [[link boost_asio.reference.ip__basic_resolver_iterator.operator_plus__plus_ [*operator++]]]
+ [Increment operator (prefix).
+
+ Increment operator (postfix). ]
   ]
   
   [
- [[link boost_asio.reference.ip__icmp.v6 [*v6]]]
- [Construct to represent the IPv6 ICMP protocol. ]
+ [[link boost_asio.reference.ip__basic_resolver_iterator.operator_arrow_ [*operator->]]]
+ [Dereference an iterator. ]
   ]
   
 ]
@@ -60257,43 +59919,75 @@
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.ip__icmp.operator_not__eq_ [*operator!=]]]
- [Compare two protocols for inequality. ]
+ [[link boost_asio.reference.ip__basic_resolver_iterator.operator_not__eq_ [*operator!=]]]
+ [Test two iterators for inequality. ]
   ]
   
   [
- [[link boost_asio.reference.ip__icmp.operator_eq__eq_ [*operator==]]]
- [Compare two protocols for equality. ]
+ [[link boost_asio.reference.ip__basic_resolver_iterator.operator_eq__eq_ [*operator==]]]
+ [Test two iterators for equality. ]
   ]
   
 ]
 
-The [link boost_asio.reference.ip__icmp `ip::icmp`] class contains flags necessary for ICMP sockets.
+The [link boost_asio.reference.ip__basic_resolver_iterator `ip::basic_resolver_iterator`] class template is used to define iterators over the results returned by a resolver.
+
+The iterator's value\_type, obtained when the iterator is dereferenced, is:
+
+ const basic_resolver_entry<InternetProtocol>
+
+
+
 
 
 [heading Thread Safety]
   
 [*Distinct] [*objects:] Safe.
 
-[*Shared] [*objects:] Safe.
+[*Shared] [*objects:] Unsafe.
 
 
 
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/ip/icmp.hpp]
+[*Header: ][^boost/asio/ip/basic_resolver.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
 
-[section:endpoint ip::icmp::endpoint]
+[endsect]
 
-[indexterm2 endpoint..ip::icmp]
-The type of a ICMP endpoint.
 
 
- typedef basic_endpoint< icmp > endpoint;
+[section:protocol_type ip::basic_resolver::protocol_type]
+
+[indexterm2 protocol_type..ip::basic_resolver]
+The protocol type.
+
+
+ typedef InternetProtocol protocol_type;
+
+
+
+[heading Requirements]
+
+[*Header: ][^boost/asio/ip/basic_resolver.hpp]
+
+[*Convenience header: ][^boost/asio.hpp]
+
+
+[endsect]
+
+
+
+[section:query ip::basic_resolver::query]
+
+[indexterm2 query..ip::basic_resolver]
+The query type.
+
+
+ typedef basic_resolver_query< InternetProtocol > query;
 
 
 [heading Types]
@@ -60302,15 +59996,15 @@
 
   [
 
- [[link boost_asio.reference.ip__basic_endpoint.data_type [*data_type]]]
- [The type of the endpoint structure. This type is dependent on the underlying implementation of the socket layer. ]
+ [[link boost_asio.reference.ip__basic_resolver_query.flags [*flags]]]
+ [A bitmask type (C++ Std \[lib.bitmask.types\]). ]
   
   ]
 
   [
 
- [[link boost_asio.reference.ip__basic_endpoint.protocol_type [*protocol_type]]]
- [The protocol type associated with the endpoint. ]
+ [[link boost_asio.reference.ip__basic_resolver_query.protocol_type [*protocol_type]]]
+ [The protocol type associated with the endpoint query. ]
   
   ]
 
@@ -60321,125 +60015,89 @@
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.ip__basic_endpoint.address [*address]]]
- [Get the IP address associated with the endpoint.
-
- Set the IP address associated with the endpoint. ]
- ]
-
- [
- [[link boost_asio.reference.ip__basic_endpoint.basic_endpoint [*basic_endpoint]]]
- [Default constructor.
-
- Construct an endpoint using a port number, specified in the host's byte order. The IP address will be the any address (i.e. INADDR_ANY or in6addr_any). This constructor would typically be used for accepting new connections.
+ [[link boost_asio.reference.ip__basic_resolver_query.basic_resolver_query [*basic_resolver_query]]]
+ [Construct with specified service name for any protocol.
 
- Construct an endpoint using a port number and an IP address. This constructor may be used for accepting connections on a specific interface or for making a connection to a remote endpoint.
+ Construct with specified service name for a given protocol.
 
- Copy constructor. ]
- ]
-
- [
- [[link boost_asio.reference.ip__basic_endpoint.capacity [*capacity]]]
- [Get the capacity of the endpoint in the native type. ]
- ]
-
- [
- [[link boost_asio.reference.ip__basic_endpoint.data [*data]]]
- [Get the underlying endpoint in the native type. ]
- ]
-
- [
- [[link boost_asio.reference.ip__basic_endpoint.operator_eq_ [*operator=]]]
- [Assign from another endpoint. ]
- ]
-
- [
- [[link boost_asio.reference.ip__basic_endpoint.port [*port]]]
- [Get the port associated with the endpoint. The port number is always in the host's byte order.
+ Construct with specified host name and service name for any protocol.
 
- Set the port associated with the endpoint. The port number is always in the host's byte order. ]
+ Construct with specified host name and service name for a given protocol. ]
   ]
   
   [
- [[link boost_asio.reference.ip__basic_endpoint.protocol [*protocol]]]
- [The protocol associated with the endpoint. ]
+ [[link boost_asio.reference.ip__basic_resolver_query.hints [*hints]]]
+ [Get the hints associated with the query. ]
   ]
   
   [
- [[link boost_asio.reference.ip__basic_endpoint.resize [*resize]]]
- [Set the underlying size of the endpoint in the native type. ]
+ [[link boost_asio.reference.ip__basic_resolver_query.host_name [*host_name]]]
+ [Get the host name associated with the query. ]
   ]
   
   [
- [[link boost_asio.reference.ip__basic_endpoint.size [*size]]]
- [Get the underlying size of the endpoint in the native type. ]
+ [[link boost_asio.reference.ip__basic_resolver_query.service_name [*service_name]]]
+ [Get the service name associated with the query. ]
   ]
   
 ]
 
-[heading Friends]
+[heading Data Members]
 [table
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.ip__basic_endpoint.operator_not__eq_ [*operator!=]]]
- [Compare two endpoints for inequality. ]
+ [[link boost_asio.reference.ip__basic_resolver_query.address_configured [*address_configured]]]
+ [Only return IPv4 addresses if a non-loopback IPv4 address is configured for the system. Only return IPv6 addresses if a non-loopback IPv6 address is configured for the system. ]
   ]
-
+
   [
- [[link boost_asio.reference.ip__basic_endpoint.operator_lt_ [*operator<]]]
- [Compare endpoints for ordering. ]
+ [[link boost_asio.reference.ip__basic_resolver_query.all_matching [*all_matching]]]
+ [If used with v4_mapped, return all matching IPv6 and IPv4 addresses. ]
   ]
-
+
   [
- [[link boost_asio.reference.ip__basic_endpoint.operator_lt__eq_ [*operator<=]]]
- [Compare endpoints for ordering. ]
+ [[link boost_asio.reference.ip__basic_resolver_query.canonical_name [*canonical_name]]]
+ [Determine the canonical name of the host specified in the query. ]
   ]
-
+
   [
- [[link boost_asio.reference.ip__basic_endpoint.operator_eq__eq_ [*operator==]]]
- [Compare two endpoints for equality. ]
+ [[link boost_asio.reference.ip__basic_resolver_query.numeric_host [*numeric_host]]]
+ [Host name should be treated as a numeric string defining an IPv4 or IPv6 address and no name resolution should be attempted. ]
   ]
-
+
   [
- [[link boost_asio.reference.ip__basic_endpoint.operator_gt_ [*operator>]]]
- [Compare endpoints for ordering. ]
+ [[link boost_asio.reference.ip__basic_resolver_query.numeric_service [*numeric_service]]]
+ [Service name should be treated as a numeric string defining a port number and no name resolution should be attempted. ]
   ]
-
+
   [
- [[link boost_asio.reference.ip__basic_endpoint.operator_gt__eq_ [*operator>=]]]
- [Compare endpoints for ordering. ]
+ [[link boost_asio.reference.ip__basic_resolver_query.passive [*passive]]]
+ [Indicate that returned endpoint is intended for use as a locally bound socket endpoint. ]
   ]
-
-]
-
-[heading Related Functions]
-[table
- [[Name][Description]]
 
   [
- [[link boost_asio.reference.ip__basic_endpoint.operator_lt__lt_ [*operator<<]]]
- [Output an endpoint as a string. ]
+ [[link boost_asio.reference.ip__basic_resolver_query.v4_mapped [*v4_mapped]]]
+ [If the query protocol family is specified as IPv6, return IPv4-mapped IPv6 addresses on finding no IPv6 addresses. ]
   ]
-
+
 ]
 
-The [link boost_asio.reference.ip__basic_endpoint `ip::basic_endpoint`] class template describes an endpoint that may be associated with a particular socket.
+The [link boost_asio.reference.ip__basic_resolver_query `ip::basic_resolver_query`] class template describes a query that can be passed to a resolver.
 
 
 [heading Thread Safety]
   
 [*Distinct] [*objects:] Safe.
 
-[*Shared] [*objects:] Unsafe.
-
+[*Shared] [*objects:] Unsafe.
 
 
 
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/ip/icmp.hpp]
+[*Header: ][^boost/asio/ip/basic_resolver.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
@@ -60447,390 +60105,295 @@
 [endsect]
 
 
+[section:resolve ip::basic_resolver::resolve]
 
-[section:family ip::icmp::family]
+[indexterm2 resolve..ip::basic_resolver]
+Perform forward resolution of a query to a list of entries.
 
-[indexterm2 family..ip::icmp]
-Obtain an identifier for the protocol family.
 
+ iterator ``[link boost_asio.reference.ip__basic_resolver.resolve.overload1 resolve]``(
+ const query & q);
+ `` [''''&raquo;''' [link boost_asio.reference.ip__basic_resolver.resolve.overload1 more...]]``
 
- int family() const;
+ iterator ``[link boost_asio.reference.ip__basic_resolver.resolve.overload2 resolve]``(
+ const query & q,
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.ip__basic_resolver.resolve.overload2 more...]]``
 
 
+Perform reverse resolution of an endpoint to a list of entries.
 
-[endsect]
 
+ iterator ``[link boost_asio.reference.ip__basic_resolver.resolve.overload3 resolve]``(
+ const endpoint_type & e);
+ `` [''''&raquo;''' [link boost_asio.reference.ip__basic_resolver.resolve.overload3 more...]]``
 
+ iterator ``[link boost_asio.reference.ip__basic_resolver.resolve.overload4 resolve]``(
+ const endpoint_type & e,
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.ip__basic_resolver.resolve.overload4 more...]]``
 
-[section:operator_not__eq_ ip::icmp::operator!=]
 
-[indexterm2 operator!=..ip::icmp]
-Compare two protocols for inequality.
+[section:overload1 ip::basic_resolver::resolve (1 of 4 overloads)]
 
 
- friend bool operator!=(
- const icmp & p1,
- const icmp & p2);
+Perform forward resolution of a query to a list of entries.
 
 
-[heading Requirements]
+ iterator resolve(
+ const query & q);
 
-[*Header: ][^boost/asio/ip/icmp.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
+This function is used to resolve a query into a list of endpoint entries.
 
 
-[endsect]
+[heading Parameters]
+
 
+[variablelist
+
+[[q][A query object that determines what endpoints will be returned.]]
 
+]
 
-[section:operator_eq__eq_ ip::icmp::operator==]
 
-[indexterm2 operator==..ip::icmp]
-Compare two protocols for equality.
+[heading Return Value]
+
+A forward-only iterator that can be used to traverse the list of endpoint entries.
 
 
- friend bool operator==(
- const icmp & p1,
- const icmp & p2);
+[heading Exceptions]
+
 
+[variablelist
+
+[[boost::system::system_error][Thrown on failure.]]
 
-[heading Requirements]
+]
 
-[*Header: ][^boost/asio/ip/icmp.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
+[heading Remarks]
+
+A default constructed iterator represents the end of the list.
+
+A successful call to this function is guaranteed to return at least one entry.
 
 
 [endsect]
 
 
 
-[section:protocol ip::icmp::protocol]
+[section:overload2 ip::basic_resolver::resolve (2 of 4 overloads)]
 
-[indexterm2 protocol..ip::icmp]
-Obtain an identifier for the protocol.
 
+Perform forward resolution of a query to a list of entries.
 
- int protocol() const;
 
+ iterator resolve(
+ const query & q,
+ boost::system::error_code & ec);
 
 
-[endsect]
+This function is used to resolve a query into a list of endpoint entries.
 
 
+[heading Parameters]
+
 
-[section:resolver ip::icmp::resolver]
+[variablelist
+
+[[q][A query object that determines what endpoints will be returned.]]
 
-[indexterm2 resolver..ip::icmp]
-The ICMP resolver type.
+[[ec][Set to indicate what error occurred, if any.]]
 
+]
 
- typedef basic_resolver< icmp > resolver;
 
+[heading Return Value]
+
+A forward-only iterator that can be used to traverse the list of endpoint entries. Returns a default constructed iterator if an error occurs.
 
-[heading Types]
-[table
- [[Name][Description]]
 
- [
+[heading Remarks]
+
+A default constructed iterator represents the end of the list.
 
- [[link boost_asio.reference.ip__basic_resolver.endpoint_type [*endpoint_type]]]
- [The endpoint type. ]
-
- ]
+A successful call to this function is guaranteed to return at least one entry.
 
- [
 
- [[link boost_asio.reference.ip__basic_resolver.implementation_type [*implementation_type]]]
- [The underlying implementation type of I/O object. ]
-
- ]
+[endsect]
 
- [
 
- [[link boost_asio.reference.ip__basic_resolver.iterator [*iterator]]]
- [The iterator type. ]
-
- ]
 
- [
+[section:overload3 ip::basic_resolver::resolve (3 of 4 overloads)]
 
- [[link boost_asio.reference.ip__basic_resolver.protocol_type [*protocol_type]]]
- [The protocol type. ]
-
- ]
 
- [
+Perform reverse resolution of an endpoint to a list of entries.
 
- [[link boost_asio.reference.ip__basic_resolver.query [*query]]]
- [The query type. ]
-
- ]
 
- [
+ iterator resolve(
+ const endpoint_type & e);
 
- [[link boost_asio.reference.ip__basic_resolver.service_type [*service_type]]]
- [The type of the service that will be used to provide I/O operations. ]
-
- ]
 
-]
+This function is used to resolve an endpoint into a list of endpoint entries.
 
-[heading Member Functions]
-[table
- [[Name][Description]]
 
- [
- [[link boost_asio.reference.ip__basic_resolver.async_resolve [*async_resolve]]]
- [Asynchronously perform forward resolution of a query to a list of entries.
+[heading Parameters]
+
 
- Asynchronously perform reverse resolution of an endpoint to a list of entries. ]
- ]
-
- [
- [[link boost_asio.reference.ip__basic_resolver.basic_resolver [*basic_resolver]]]
- [Constructor. ]
- ]
-
- [
- [[link boost_asio.reference.ip__basic_resolver.cancel [*cancel]]]
- [Cancel any asynchronous operations that are waiting on the resolver. ]
- ]
-
- [
- [[link boost_asio.reference.ip__basic_resolver.get_io_service [*get_io_service]]]
- [Get the io_service associated with the object. ]
- ]
+[variablelist
   
- [
- [[link boost_asio.reference.ip__basic_resolver.resolve [*resolve]]]
- [Perform forward resolution of a query to a list of entries.
+[[e][An endpoint object that determines what endpoints will be returned.]]
 
- Perform reverse resolution of an endpoint to a list of entries. ]
- ]
-
 ]
 
-[heading Protected Member Functions]
-[table
- [[Name][Description]]
 
- [
- [[link boost_asio.reference.ip__basic_resolver.get_implementation [*get_implementation]]]
- [Get the underlying implementation of the I/O object. ]
- ]
-
- [
- [[link boost_asio.reference.ip__basic_resolver.get_service [*get_service]]]
- [Get the service associated with the I/O object. ]
- ]
+[heading Return Value]
+
+A forward-only iterator that can be used to traverse the list of endpoint entries.
+
+
+[heading Exceptions]
+
+
+[variablelist
   
+[[boost::system::system_error][Thrown on failure.]]
+
 ]
 
-[heading Protected Data Members]
-[table
- [[Name][Description]]
 
- [
- [[link boost_asio.reference.ip__basic_resolver.implementation [*implementation]]]
- [(Deprecated: Use get_implementation().) The underlying implementation of the I/O object. ]
- ]
+[heading Remarks]
+
+A default constructed iterator represents the end of the list.
 
- [
- [[link boost_asio.reference.ip__basic_resolver.service [*service]]]
- [(Deprecated: Use get_service().) The service associated with the I/O object. ]
- ]
+A successful call to this function is guaranteed to return at least one entry.
 
-]
 
-The [link boost_asio.reference.ip__basic_resolver `ip::basic_resolver`] class template provides the ability to resolve a query to a list of endpoints.
+[endsect]
 
 
-[heading Thread Safety]
-
-[*Distinct] [*objects:] Safe.
 
-[*Shared] [*objects:] Unsafe.
+[section:overload4 ip::basic_resolver::resolve (4 of 4 overloads)]
 
 
+Perform reverse resolution of an endpoint to a list of entries.
 
 
-[heading Requirements]
+ iterator resolve(
+ const endpoint_type & e,
+ boost::system::error_code & ec);
 
-[*Header: ][^boost/asio/ip/icmp.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
+This function is used to resolve an endpoint into a list of endpoint entries.
 
 
-[endsect]
+[heading Parameters]
+
 
+[variablelist
+
+[[e][An endpoint object that determines what endpoints will be returned.]]
 
+[[ec][Set to indicate what error occurred, if any.]]
 
-[section:socket ip::icmp::socket]
+]
 
-[indexterm2 socket..ip::icmp]
-The ICMP socket type.
 
+[heading Return Value]
+
+A forward-only iterator that can be used to traverse the list of endpoint entries. Returns a default constructed iterator if an error occurs.
 
- typedef basic_raw_socket< icmp > socket;
 
+[heading Remarks]
+
+A default constructed iterator represents the end of the list.
 
-[heading Types]
-[table
- [[Name][Description]]
+A successful call to this function is guaranteed to return at least one entry.
 
- [
 
- [[link boost_asio.reference.basic_raw_socket.broadcast [*broadcast]]]
- [Socket option to permit sending of broadcast messages. ]
-
- ]
+[endsect]
 
- [
 
- [[link boost_asio.reference.basic_raw_socket.bytes_readable [*bytes_readable]]]
- [IO control command to get the amount of data that can be read without blocking. ]
-
- ]
+[endsect]
 
- [
 
- [[link boost_asio.reference.basic_raw_socket.debug [*debug]]]
- [Socket option to enable socket-level debugging. ]
-
- ]
+[section:service ip::basic_resolver::service]
 
- [
 
- [[link boost_asio.reference.basic_raw_socket.do_not_route [*do_not_route]]]
- [Socket option to prevent routing, use local interfaces only. ]
-
- ]
+['Inherited from basic_io_object.]
 
- [
+[indexterm2 service..ip::basic_resolver]
+(Deprecated: Use `get_service()`.) The service associated with the I/O object.
 
- [[link boost_asio.reference.basic_raw_socket.enable_connection_aborted [*enable_connection_aborted]]]
- [Socket option to report aborted connections on accept. ]
-
- ]
 
- [
+ service_type & service;
 
- [[link boost_asio.reference.basic_raw_socket.endpoint_type [*endpoint_type]]]
- [The endpoint type. ]
-
- ]
 
- [
 
- [[link boost_asio.reference.basic_raw_socket.implementation_type [*implementation_type]]]
- [The underlying implementation type of I/O object. ]
-
- ]
+[heading Remarks]
+
+Available only for services that do not support movability.
 
- [
 
- [[link boost_asio.reference.basic_raw_socket.keep_alive [*keep_alive]]]
- [Socket option to send keep-alives. ]
-
- ]
 
- [
 
- [[link boost_asio.reference.basic_raw_socket.linger [*linger]]]
- [Socket option to specify whether the socket lingers on close if unsent data is present. ]
-
- ]
+[endsect]
 
- [
 
- [[link boost_asio.reference.basic_raw_socket.lowest_layer_type [*lowest_layer_type]]]
- [A basic_socket is always the lowest layer. ]
-
- ]
 
- [
+[section:service_type ip::basic_resolver::service_type]
 
- [[link boost_asio.reference.basic_raw_socket.message_flags [*message_flags]]]
- [Bitmask type for flags that can be passed to send and receive operations. ]
-
- ]
 
- [
+['Inherited from basic_io_object.]
 
- [[link boost_asio.reference.basic_raw_socket.native_handle_type [*native_handle_type]]]
- [The native representation of a socket. ]
-
- ]
+[indexterm2 service_type..ip::basic_resolver]
+The type of the service that will be used to provide I/O operations.
 
- [
 
- [[link boost_asio.reference.basic_raw_socket.native_type [*native_type]]]
- [(Deprecated: Use native_handle_type.) The native representation of a socket. ]
-
- ]
+ typedef ResolverService service_type;
 
- [
 
- [[link boost_asio.reference.basic_raw_socket.non_blocking_io [*non_blocking_io]]]
- [(Deprecated: Use non_blocking().) IO control command to set the blocking mode of the socket. ]
-
- ]
 
- [
+[heading Requirements]
 
- [[link boost_asio.reference.basic_raw_socket.protocol_type [*protocol_type]]]
- [The protocol type. ]
-
- ]
+[*Header: ][^boost/asio/ip/basic_resolver.hpp]
 
- [
+[*Convenience header: ][^boost/asio.hpp]
 
- [[link boost_asio.reference.basic_raw_socket.receive_buffer_size [*receive_buffer_size]]]
- [Socket option for the receive buffer size of a socket. ]
-
- ]
 
- [
+[endsect]
 
- [[link boost_asio.reference.basic_raw_socket.receive_low_watermark [*receive_low_watermark]]]
- [Socket option for the receive low watermark. ]
-
- ]
 
- [
 
- [[link boost_asio.reference.basic_raw_socket.reuse_address [*reuse_address]]]
- [Socket option to allow the socket to be bound to an address that is already in use. ]
-
- ]
+[endsect]
 
- [
+[section:ip__basic_resolver_entry ip::basic_resolver_entry]
 
- [[link boost_asio.reference.basic_raw_socket.send_buffer_size [*send_buffer_size]]]
- [Socket option for the send buffer size of a socket. ]
-
- ]
 
- [
+An entry produced by a resolver.
 
- [[link boost_asio.reference.basic_raw_socket.send_low_watermark [*send_low_watermark]]]
- [Socket option for the send low watermark. ]
-
- ]
+
+ template<
+ typename ``[link boost_asio.reference.InternetProtocol InternetProtocol]``>
+ class basic_resolver_entry
+
+
+[heading Types]
+[table
+ [[Name][Description]]
 
   [
 
- [[link boost_asio.reference.basic_raw_socket.service_type [*service_type]]]
- [The type of the service that will be used to provide I/O operations. ]
+ [[link boost_asio.reference.ip__basic_resolver_entry.endpoint_type [*endpoint_type]]]
+ [The endpoint type associated with the endpoint entry. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.basic_raw_socket.shutdown_type [*shutdown_type]]]
- [Different ways a socket may be shutdown. ]
+ [[link boost_asio.reference.ip__basic_resolver_entry.protocol_type [*protocol_type]]]
+ [The protocol type associated with the endpoint entry. ]
   
   ]
 
@@ -60841,355 +60404,180 @@
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.basic_raw_socket.assign [*assign]]]
- [Assign an existing native socket to the socket. ]
- ]
-
- [
- [[link boost_asio.reference.basic_raw_socket.async_connect [*async_connect]]]
- [Start an asynchronous connect. ]
- ]
-
- [
- [[link boost_asio.reference.basic_raw_socket.async_receive [*async_receive]]]
- [Start an asynchronous receive on a connected socket. ]
+ [[link boost_asio.reference.ip__basic_resolver_entry.basic_resolver_entry [*basic_resolver_entry]]]
+ [Default constructor.
+
+ Construct with specified endpoint, host name and service name. ]
   ]
   
   [
- [[link boost_asio.reference.basic_raw_socket.async_receive_from [*async_receive_from]]]
- [Start an asynchronous receive. ]
+ [[link boost_asio.reference.ip__basic_resolver_entry.endpoint [*endpoint]]]
+ [Get the endpoint associated with the entry. ]
   ]
   
   [
- [[link boost_asio.reference.basic_raw_socket.async_send [*async_send]]]
- [Start an asynchronous send on a connected socket. ]
+ [[link boost_asio.reference.ip__basic_resolver_entry.host_name [*host_name]]]
+ [Get the host name associated with the entry. ]
   ]
   
   [
- [[link boost_asio.reference.basic_raw_socket.async_send_to [*async_send_to]]]
- [Start an asynchronous send. ]
+ [[link boost_asio.reference.ip__basic_resolver_entry.operator_endpoint_type [*operator endpoint_type]]]
+ [Convert to the endpoint associated with the entry. ]
   ]
   
   [
- [[link boost_asio.reference.basic_raw_socket.at_mark [*at_mark]]]
- [Determine whether the socket is at the out-of-band data mark. ]
+ [[link boost_asio.reference.ip__basic_resolver_entry.service_name [*service_name]]]
+ [Get the service name associated with the entry. ]
   ]
   
- [
- [[link boost_asio.reference.basic_raw_socket.available [*available]]]
- [Determine the number of bytes available for reading. ]
- ]
+]
+
+The [link boost_asio.reference.ip__basic_resolver_entry `ip::basic_resolver_entry`] class template describes an entry as returned by a resolver.
+
+
+[heading Thread Safety]
   
- [
- [[link boost_asio.reference.basic_raw_socket.basic_raw_socket [*basic_raw_socket]]]
- [Construct a basic_raw_socket without opening it.
+[*Distinct] [*objects:] Safe.
 
- Construct and open a basic_raw_socket.
+[*Shared] [*objects:] Unsafe.
 
- Construct a basic_raw_socket, opening it and binding it to the given local endpoint.
 
- Construct a basic_raw_socket on an existing native socket.
 
- Move-construct a basic_raw_socket from another. ]
- ]
-
- [
- [[link boost_asio.reference.basic_raw_socket.bind [*bind]]]
- [Bind the socket to the given local endpoint. ]
- ]
-
- [
- [[link boost_asio.reference.basic_raw_socket.cancel [*cancel]]]
- [Cancel all asynchronous operations associated with the socket. ]
- ]
-
- [
- [[link boost_asio.reference.basic_raw_socket.close [*close]]]
- [Close the socket. ]
- ]
-
- [
- [[link boost_asio.reference.basic_raw_socket.connect [*connect]]]
- [Connect the socket to the specified endpoint. ]
- ]
-
- [
- [[link boost_asio.reference.basic_raw_socket.get_io_service [*get_io_service]]]
- [Get the io_service associated with the object. ]
- ]
-
- [
- [[link boost_asio.reference.basic_raw_socket.get_option [*get_option]]]
- [Get an option from the socket. ]
- ]
-
- [
- [[link boost_asio.reference.basic_raw_socket.io_control [*io_control]]]
- [Perform an IO control command on the socket. ]
- ]
-
- [
- [[link boost_asio.reference.basic_raw_socket.is_open [*is_open]]]
- [Determine whether the socket is open. ]
- ]
-
- [
- [[link boost_asio.reference.basic_raw_socket.local_endpoint [*local_endpoint]]]
- [Get the local endpoint of the socket. ]
- ]
-
- [
- [[link boost_asio.reference.basic_raw_socket.lowest_layer [*lowest_layer]]]
- [Get a reference to the lowest layer.
-
- Get a const reference to the lowest layer. ]
- ]
-
- [
- [[link boost_asio.reference.basic_raw_socket.native [*native]]]
- [(Deprecated: Use native_handle().) Get the native socket representation. ]
- ]
-
- [
- [[link boost_asio.reference.basic_raw_socket.native_handle [*native_handle]]]
- [Get the native socket representation. ]
- ]
-
- [
- [[link boost_asio.reference.basic_raw_socket.native_non_blocking [*native_non_blocking]]]
- [Gets the non-blocking mode of the native socket implementation.
-
- Sets the non-blocking mode of the native socket implementation. ]
- ]
-
- [
- [[link boost_asio.reference.basic_raw_socket.non_blocking [*non_blocking]]]
- [Gets the non-blocking mode of the socket.
-
- Sets the non-blocking mode of the socket. ]
- ]
-
- [
- [[link boost_asio.reference.basic_raw_socket.open [*open]]]
- [Open the socket using the specified protocol. ]
- ]
-
- [
- [[link boost_asio.reference.basic_raw_socket.operator_eq_ [*operator=]]]
- [Move-assign a basic_raw_socket from another. ]
- ]
-
- [
- [[link boost_asio.reference.basic_raw_socket.receive [*receive]]]
- [Receive some data on a connected socket. ]
- ]
-
- [
- [[link boost_asio.reference.basic_raw_socket.receive_from [*receive_from]]]
- [Receive raw data with the endpoint of the sender. ]
- ]
-
- [
- [[link boost_asio.reference.basic_raw_socket.remote_endpoint [*remote_endpoint]]]
- [Get the remote endpoint of the socket. ]
- ]
-
- [
- [[link boost_asio.reference.basic_raw_socket.send [*send]]]
- [Send some data on a connected socket. ]
- ]
-
- [
- [[link boost_asio.reference.basic_raw_socket.send_to [*send_to]]]
- [Send raw data to the specified endpoint. ]
- ]
-
- [
- [[link boost_asio.reference.basic_raw_socket.set_option [*set_option]]]
- [Set an option on the socket. ]
- ]
-
- [
- [[link boost_asio.reference.basic_raw_socket.shutdown [*shutdown]]]
- [Disable sends or receives on the socket. ]
- ]
-
-]
+[heading Requirements]
 
-[heading Protected Member Functions]
-[table
- [[Name][Description]]
+[*Header: ][^boost/asio/ip/basic_resolver_entry.hpp]
 
- [
- [[link boost_asio.reference.basic_raw_socket.get_implementation [*get_implementation]]]
- [Get the underlying implementation of the I/O object. ]
- ]
-
- [
- [[link boost_asio.reference.basic_raw_socket.get_service [*get_service]]]
- [Get the service associated with the I/O object. ]
- ]
-
-]
+[*Convenience header: ][^boost/asio.hpp]
 
-[heading Data Members]
-[table
- [[Name][Description]]
+[section:basic_resolver_entry ip::basic_resolver_entry::basic_resolver_entry]
 
- [
- [[link boost_asio.reference.basic_raw_socket.max_connections [*max_connections]]]
- [The maximum length of the queue of pending incoming connections. ]
- ]
+[indexterm2 basic_resolver_entry..ip::basic_resolver_entry]
+Default constructor.
 
- [
- [[link boost_asio.reference.basic_raw_socket.message_do_not_route [*message_do_not_route]]]
- [Specify that the data should not be subject to routing. ]
- ]
 
- [
- [[link boost_asio.reference.basic_raw_socket.message_end_of_record [*message_end_of_record]]]
- [Specifies that the data marks the end of a record. ]
- ]
+ ``[link boost_asio.reference.ip__basic_resolver_entry.basic_resolver_entry.overload1 basic_resolver_entry]``();
+ `` [''''&raquo;''' [link boost_asio.reference.ip__basic_resolver_entry.basic_resolver_entry.overload1 more...]]``
 
- [
- [[link boost_asio.reference.basic_raw_socket.message_out_of_band [*message_out_of_band]]]
- [Process out-of-band data. ]
- ]
 
- [
- [[link boost_asio.reference.basic_raw_socket.message_peek [*message_peek]]]
- [Peek at incoming data without removing it from the input queue. ]
- ]
+Construct with specified endpoint, host name and service name.
 
-]
 
-[heading Protected Data Members]
-[table
- [[Name][Description]]
+ ``[link boost_asio.reference.ip__basic_resolver_entry.basic_resolver_entry.overload2 basic_resolver_entry]``(
+ const endpoint_type & ep,
+ const std::string & host,
+ const std::string & service);
+ `` [''''&raquo;''' [link boost_asio.reference.ip__basic_resolver_entry.basic_resolver_entry.overload2 more...]]``
 
- [
- [[link boost_asio.reference.basic_raw_socket.implementation [*implementation]]]
- [(Deprecated: Use get_implementation().) The underlying implementation of the I/O object. ]
- ]
 
- [
- [[link boost_asio.reference.basic_raw_socket.service [*service]]]
- [(Deprecated: Use get_service().) The service associated with the I/O object. ]
- ]
+[section:overload1 ip::basic_resolver_entry::basic_resolver_entry (1 of 2 overloads)]
 
-]
 
-The [link boost_asio.reference.basic_raw_socket `basic_raw_socket`] class template provides asynchronous and blocking raw-oriented socket functionality.
+Default constructor.
 
 
-[heading Thread Safety]
-
-[*Distinct] [*objects:] Safe.
+ basic_resolver_entry();
 
-[*Shared] [*objects:] Unsafe.
 
 
+[endsect]
 
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/ip/icmp.hpp]
+[section:overload2 ip::basic_resolver_entry::basic_resolver_entry (2 of 2 overloads)]
 
-[*Convenience header: ][^boost/asio.hpp]
 
+Construct with specified endpoint, host name and service name.
 
-[endsect]
 
+ basic_resolver_entry(
+ const endpoint_type & ep,
+ const std::string & host,
+ const std::string & service);
 
 
-[section:type ip::icmp::type]
 
-[indexterm2 type..ip::icmp]
-Obtain an identifier for the type of the protocol.
+[endsect]
 
 
- int type() const;
+[endsect]
 
 
+[section:endpoint ip::basic_resolver_entry::endpoint]
 
-[endsect]
+[indexterm2 endpoint..ip::basic_resolver_entry]
+Get the endpoint associated with the entry.
 
 
+ endpoint_type endpoint() const;
 
-[section:v4 ip::icmp::v4]
 
-[indexterm2 v4..ip::icmp]
-Construct to represent the IPv4 ICMP protocol.
 
+[endsect]
 
- static icmp v4();
 
 
+[section:endpoint_type ip::basic_resolver_entry::endpoint_type]
 
-[endsect]
+[indexterm2 endpoint_type..ip::basic_resolver_entry]
+The endpoint type associated with the endpoint entry.
 
 
+ typedef InternetProtocol::endpoint endpoint_type;
 
-[section:v6 ip::icmp::v6]
 
-[indexterm2 v6..ip::icmp]
-Construct to represent the IPv6 ICMP protocol.
 
+[heading Requirements]
 
- static icmp v6();
+[*Header: ][^boost/asio/ip/basic_resolver_entry.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
 
-[endsect]
+[section:host_name ip::basic_resolver_entry::host_name]
 
+[indexterm2 host_name..ip::basic_resolver_entry]
+Get the host name associated with the entry.
 
-[section:ip__multicast__enable_loopback ip::multicast::enable_loopback]
 
-[indexterm1 ip::multicast::enable_loopback]
-Socket option determining whether outgoing multicast packets will be received on the same socket if it is a member of the multicast group.
+ std::string host_name() const;
 
 
- typedef implementation_defined enable_loopback;
 
+[endsect]
 
 
-Implements the IPPROTO\_IP/IP\_MULTICAST\_LOOP socket option.
 
+[section:operator_endpoint_type ip::basic_resolver_entry::operator endpoint_type]
 
-[heading Examples]
-
-Setting the option:
+[indexterm2 operator endpoint_type..ip::basic_resolver_entry]
+Convert to the endpoint associated with the entry.
 
- boost::asio::ip::udp::socket socket(io_service);
- ...
- boost::asio::ip::multicast::enable_loopback option(true);
- socket.set_option(option);
 
+ operator endpoint_type() const;
 
 
 
+[endsect]
 
-Getting the current option value:
 
- boost::asio::ip::udp::socket socket(io_service);
- ...
- boost::asio::ip::multicast::enable_loopback option;
- socket.get_option(option);
- bool is_set = option.value();
 
+[section:protocol_type ip::basic_resolver_entry::protocol_type]
 
+[indexterm2 protocol_type..ip::basic_resolver_entry]
+The protocol type associated with the endpoint entry.
 
 
+ typedef InternetProtocol protocol_type;
 
 
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/ip/multicast.hpp]
+[*Header: ][^boost/asio/ip/basic_resolver_entry.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
@@ -61198,172 +60586,235 @@
 
 
 
-[section:ip__multicast__hops ip::multicast::hops]
+[section:service_name ip::basic_resolver_entry::service_name]
 
-[indexterm1 ip::multicast::hops]
-Socket option for time-to-live associated with outgoing multicast packets.
+[indexterm2 service_name..ip::basic_resolver_entry]
+Get the service name associated with the entry.
 
 
- typedef implementation_defined hops;
+ std::string service_name() const;
 
 
 
-Implements the IPPROTO\_IP/IP\_MULTICAST\_TTL socket option.
+[endsect]
 
 
-[heading Examples]
-
-Setting the option:
 
- boost::asio::ip::udp::socket socket(io_service);
- ...
- boost::asio::ip::multicast::hops option(4);
- socket.set_option(option);
+[endsect]
 
+[section:ip__basic_resolver_iterator ip::basic_resolver_iterator]
 
 
+An iterator over the entries produced by a resolver.
 
 
-Getting the current option value:
+ template<
+ typename ``[link boost_asio.reference.InternetProtocol InternetProtocol]``>
+ class basic_resolver_iterator
 
- boost::asio::ip::udp::socket socket(io_service);
- ...
- boost::asio::ip::multicast::hops option;
- socket.get_option(option);
- int ttl = option.value();
 
+[heading Types]
+[table
+ [[Name][Description]]
 
+ [
 
+ [[link boost_asio.reference.ip__basic_resolver_iterator.difference_type [*difference_type]]]
+ [The type used for the distance between two iterators. ]
+
+ ]
 
+ [
 
+ [[link boost_asio.reference.ip__basic_resolver_iterator.iterator_category [*iterator_category]]]
+ [The iterator category. ]
+
+ ]
 
+ [
 
-[heading Requirements]
+ [[link boost_asio.reference.ip__basic_resolver_iterator.pointer [*pointer]]]
+ [The type of the result of applying operator->() to the iterator. ]
+
+ ]
 
-[*Header: ][^boost/asio/ip/multicast.hpp]
+ [
 
-[*Convenience header: ][^boost/asio.hpp]
+ [[link boost_asio.reference.ip__basic_resolver_iterator.reference [*reference]]]
+ [The type of the result of applying operator*() to the iterator. ]
+
+ ]
 
+ [
 
-[endsect]
+ [[link boost_asio.reference.ip__basic_resolver_iterator.value_type [*value_type]]]
+ [The type of the value pointed to by the iterator. ]
+
+ ]
 
+]
 
+[heading Member Functions]
+[table
+ [[Name][Description]]
 
-[section:ip__multicast__join_group ip::multicast::join_group]
+ [
+ [[link boost_asio.reference.ip__basic_resolver_iterator.basic_resolver_iterator [*basic_resolver_iterator]]]
+ [Default constructor creates an end iterator. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__basic_resolver_iterator.create [*create]]]
+ [Create an iterator from an addrinfo list returned by getaddrinfo.
 
-[indexterm1 ip::multicast::join_group]
-Socket option to join a multicast group on a specified interface.
+ Create an iterator from an endpoint, host name and service name. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__basic_resolver_iterator.operator__star_ [*operator *]]]
+ [Dereference an iterator. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__basic_resolver_iterator.operator_plus__plus_ [*operator++]]]
+ [Increment operator (prefix).
 
+ Increment operator (postfix). ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__basic_resolver_iterator.operator_arrow_ [*operator->]]]
+ [Dereference an iterator. ]
+ ]
+
+]
 
- typedef implementation_defined join_group;
+[heading Friends]
+[table
+ [[Name][Description]]
 
+ [
+ [[link boost_asio.reference.ip__basic_resolver_iterator.operator_not__eq_ [*operator!=]]]
+ [Test two iterators for inequality. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__basic_resolver_iterator.operator_eq__eq_ [*operator==]]]
+ [Test two iterators for equality. ]
+ ]
+
+]
 
+The [link boost_asio.reference.ip__basic_resolver_iterator `ip::basic_resolver_iterator`] class template is used to define iterators over the results returned by a resolver.
 
-Implements the IPPROTO\_IP/IP\_ADD\_MEMBERSHIP socket option.
+The iterator's value\_type, obtained when the iterator is dereferenced, is:
 
+ const basic_resolver_entry<InternetProtocol>
 
-[heading Examples]
-
-Setting the option to join a multicast group:
 
- boost::asio::ip::udp::socket socket(io_service);
- ...
- boost::asio::ip::address multicast_address =
- boost::asio::ip::address::from_string("225.0.0.1");
- boost::asio::ip::multicast::join_group option(multicast_address);
- socket.set_option(option);
 
 
 
+[heading Thread Safety]
+
+[*Distinct] [*objects:] Safe.
 
+[*Shared] [*objects:] Unsafe.
 
 
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/ip/multicast.hpp]
+[*Header: ][^boost/asio/ip/basic_resolver_iterator.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
 
-[endsect]
+[section:basic_resolver_iterator ip::basic_resolver_iterator::basic_resolver_iterator]
 
+[indexterm2 basic_resolver_iterator..ip::basic_resolver_iterator]
+Default constructor creates an end iterator.
 
 
-[section:ip__multicast__leave_group ip::multicast::leave_group]
+ basic_resolver_iterator();
 
-[indexterm1 ip::multicast::leave_group]
-Socket option to leave a multicast group on a specified interface.
 
 
- typedef implementation_defined leave_group;
+[endsect]
 
 
+[section:create ip::basic_resolver_iterator::create]
 
-Implements the IPPROTO\_IP/IP\_DROP\_MEMBERSHIP socket option.
+[indexterm2 create..ip::basic_resolver_iterator]
+Create an iterator from an addrinfo list returned by getaddrinfo.
 
 
-[heading Examples]
-
-Setting the option to leave a multicast group:
+ static basic_resolver_iterator ``[link boost_asio.reference.ip__basic_resolver_iterator.create.overload1 create]``(
+ boost::asio::detail::addrinfo_type * address_info,
+ const std::string & host_name,
+ const std::string & service_name);
+ `` [''''&raquo;''' [link boost_asio.reference.ip__basic_resolver_iterator.create.overload1 more...]]``
 
- boost::asio::ip::udp::socket socket(io_service);
- ...
- boost::asio::ip::address multicast_address =
- boost::asio::ip::address::from_string("225.0.0.1");
- boost::asio::ip::multicast::leave_group option(multicast_address);
- socket.set_option(option);
+
+Create an iterator from an endpoint, host name and service name.
 
 
+ static basic_resolver_iterator ``[link boost_asio.reference.ip__basic_resolver_iterator.create.overload2 create]``(
+ const typename InternetProtocol::endpoint & endpoint,
+ const std::string & host_name,
+ const std::string & service_name);
+ `` [''''&raquo;''' [link boost_asio.reference.ip__basic_resolver_iterator.create.overload2 more...]]``
 
 
+[section:overload1 ip::basic_resolver_iterator::create (1 of 2 overloads)]
 
 
+Create an iterator from an addrinfo list returned by getaddrinfo.
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/ip/multicast.hpp]
+ static basic_resolver_iterator create(
+ boost::asio::detail::addrinfo_type * address_info,
+ const std::string & host_name,
+ const std::string & service_name);
 
-[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
 
-[section:ip__multicast__outbound_interface ip::multicast::outbound_interface]
+[section:overload2 ip::basic_resolver_iterator::create (2 of 2 overloads)]
 
-[indexterm1 ip::multicast::outbound_interface]
-Socket option for local interface to use for outgoing multicast packets.
 
+Create an iterator from an endpoint, host name and service name.
 
- typedef implementation_defined outbound_interface;
 
+ static basic_resolver_iterator create(
+ const typename InternetProtocol::endpoint & endpoint,
+ const std::string & host_name,
+ const std::string & service_name);
 
 
-Implements the IPPROTO\_IP/IP\_MULTICAST\_IF socket option.
 
+[endsect]
 
-[heading Examples]
-
-Setting the option:
 
- boost::asio::ip::udp::socket socket(io_service);
- ...
- boost::asio::ip::address_v4 local_interface =
- boost::asio::ip::address_v4::from_string("1.2.3.4");
- boost::asio::ip::multicast::outbound_interface option(local_interface);
- socket.set_option(option);
+[endsect]
+
 
+[section:difference_type ip::basic_resolver_iterator::difference_type]
 
+[indexterm2 difference_type..ip::basic_resolver_iterator]
+The type used for the distance between two iterators.
 
 
+ typedef std::ptrdiff_t difference_type;
 
 
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/ip/multicast.hpp]
+[*Header: ][^boost/asio/ip/basic_resolver_iterator.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
@@ -61371,122 +60822,88 @@
 [endsect]
 
 
-[section:ip__resolver_query_base ip::resolver_query_base]
 
+[section:iterator_category ip::basic_resolver_iterator::iterator_category]
 
-The [link boost_asio.reference.ip__resolver_query_base `ip::resolver_query_base`] class is used as a base for the [link boost_asio.reference.ip__basic_resolver_query `ip::basic_resolver_query`] class templates to provide a common place to define the flag constants.
+[indexterm2 iterator_category..ip::basic_resolver_iterator]
+The iterator category.
 
 
- class resolver_query_base
+ typedef std::forward_iterator_tag iterator_category;
 
 
-[heading Types]
-[table
- [[Name][Description]]
 
- [
+[heading Requirements]
 
- [[link boost_asio.reference.ip__resolver_query_base.flags [*flags]]]
- [A bitmask type (C++ Std \[lib.bitmask.types\]). ]
-
- ]
+[*Header: ][^boost/asio/ip/basic_resolver_iterator.hpp]
 
-]
+[*Convenience header: ][^boost/asio.hpp]
 
-[heading Protected Member Functions]
-[table
- [[Name][Description]]
 
- [
- [[link boost_asio.reference.ip__resolver_query_base._resolver_query_base [*~resolver_query_base]]]
- [Protected destructor to prevent deletion through this type. ]
- ]
-
-]
+[endsect]
 
-[heading Data Members]
-[table
- [[Name][Description]]
 
- [
- [[link boost_asio.reference.ip__resolver_query_base.address_configured [*address_configured]]]
- [Only return IPv4 addresses if a non-loopback IPv4 address is configured for the system. Only return IPv6 addresses if a non-loopback IPv6 address is configured for the system. ]
- ]
 
- [
- [[link boost_asio.reference.ip__resolver_query_base.all_matching [*all_matching]]]
- [If used with v4_mapped, return all matching IPv6 and IPv4 addresses. ]
- ]
+[section:operator__star_ ip::basic_resolver_iterator::operator *]
 
- [
- [[link boost_asio.reference.ip__resolver_query_base.canonical_name [*canonical_name]]]
- [Determine the canonical name of the host specified in the query. ]
- ]
+[indexterm2 operator *..ip::basic_resolver_iterator]
+Dereference an iterator.
 
- [
- [[link boost_asio.reference.ip__resolver_query_base.numeric_host [*numeric_host]]]
- [Host name should be treated as a numeric string defining an IPv4 or IPv6 address and no name resolution should be attempted. ]
- ]
 
- [
- [[link boost_asio.reference.ip__resolver_query_base.numeric_service [*numeric_service]]]
- [Service name should be treated as a numeric string defining a port number and no name resolution should be attempted. ]
- ]
+ const basic_resolver_entry< InternetProtocol > & operator *() const;
 
- [
- [[link boost_asio.reference.ip__resolver_query_base.passive [*passive]]]
- [Indicate that returned endpoint is intended for use as a locally bound socket endpoint. ]
- ]
 
- [
- [[link boost_asio.reference.ip__resolver_query_base.v4_mapped [*v4_mapped]]]
- [If the query protocol family is specified as IPv6, return IPv4-mapped IPv6 addresses on finding no IPv6 addresses. ]
- ]
 
-]
+[endsect]
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/ip/resolver_query_base.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
+[section:operator_not__eq_ ip::basic_resolver_iterator::operator!=]
 
+[indexterm2 operator!=..ip::basic_resolver_iterator]
+Test two iterators for inequality.
 
-[section:address_configured ip::resolver_query_base::address_configured]
 
-[indexterm2 address_configured..ip::resolver_query_base]
-Only return IPv4 addresses if a non-loopback IPv4 address is configured for the system. Only return IPv6 addresses if a non-loopback IPv6 address is configured for the system.
+ friend bool operator!=(
+ const basic_resolver_iterator & a,
+ const basic_resolver_iterator & b);
 
 
- static const flags address_configured = implementation_defined;
+[heading Requirements]
 
+[*Header: ][^boost/asio/ip/basic_resolver_iterator.hpp]
+
+[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
+[section:operator_plus__plus_ ip::basic_resolver_iterator::operator++]
 
-[section:all_matching ip::resolver_query_base::all_matching]
+[indexterm2 operator++..ip::basic_resolver_iterator]
+Increment operator (prefix).
 
-[indexterm2 all_matching..ip::resolver_query_base]
-If used with v4\_mapped, return all matching IPv6 and IPv4 addresses.
 
+ basic_resolver_iterator & ``[link boost_asio.reference.ip__basic_resolver_iterator.operator_plus__plus_.overload1 operator++]``();
+ `` [''''&raquo;''' [link boost_asio.reference.ip__basic_resolver_iterator.operator_plus__plus_.overload1 more...]]``
 
- static const flags all_matching = implementation_defined;
 
+Increment operator (postfix).
 
 
-[endsect]
+ basic_resolver_iterator ``[link boost_asio.reference.ip__basic_resolver_iterator.operator_plus__plus_.overload2 operator++]``(
+ int );
+ `` [''''&raquo;''' [link boost_asio.reference.ip__basic_resolver_iterator.operator_plus__plus_.overload2 more...]]``
 
 
+[section:overload1 ip::basic_resolver_iterator::operator++ (1 of 2 overloads)]
 
-[section:canonical_name ip::resolver_query_base::canonical_name]
 
-[indexterm2 canonical_name..ip::resolver_query_base]
-Determine the canonical name of the host specified in the query.
+Increment operator (prefix).
 
 
- static const flags canonical_name = implementation_defined;
+ basic_resolver_iterator & operator++();
 
 
 
@@ -61494,48 +60911,30 @@
 
 
 
-[section:flags ip::resolver_query_base::flags]
-
-[indexterm2 flags..ip::resolver_query_base]
-A bitmask type (C++ Std [lib.bitmask.types]).
-
-
- typedef unspecified flags;
+[section:overload2 ip::basic_resolver_iterator::operator++ (2 of 2 overloads)]
 
 
+Increment operator (postfix).
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/ip/resolver_query_base.hpp]
+ basic_resolver_iterator operator++(
+ int );
 
-[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
-
-[section:numeric_host ip::resolver_query_base::numeric_host]
-
-[indexterm2 numeric_host..ip::resolver_query_base]
-Host name should be treated as a numeric string defining an IPv4 or IPv6 address and no name resolution should be attempted.
-
-
- static const flags numeric_host = implementation_defined;
-
-
-
 [endsect]
 
 
+[section:operator_arrow_ ip::basic_resolver_iterator::operator->]
 
-[section:numeric_service ip::resolver_query_base::numeric_service]
-
-[indexterm2 numeric_service..ip::resolver_query_base]
-Service name should be treated as a numeric string defining a port number and no name resolution should be attempted.
+[indexterm2 operator->..ip::basic_resolver_iterator]
+Dereference an iterator.
 
 
- static const flags numeric_service = implementation_defined;
+ const basic_resolver_entry< InternetProtocol > * operator->() const;
 
 
 
@@ -61543,60 +60942,56 @@
 
 
 
-[section:passive ip::resolver_query_base::passive]
-
-[indexterm2 passive..ip::resolver_query_base]
-Indicate that returned endpoint is intended for use as a locally bound socket endpoint.
-
+[section:operator_eq__eq_ ip::basic_resolver_iterator::operator==]
 
- static const flags passive = implementation_defined;
+[indexterm2 operator==..ip::basic_resolver_iterator]
+Test two iterators for equality.
 
 
+ friend bool operator==(
+ const basic_resolver_iterator & a,
+ const basic_resolver_iterator & b);
 
-[endsect]
 
+[heading Requirements]
 
+[*Header: ][^boost/asio/ip/basic_resolver_iterator.hpp]
 
-[section:v4_mapped ip::resolver_query_base::v4_mapped]
+[*Convenience header: ][^boost/asio.hpp]
 
-[indexterm2 v4_mapped..ip::resolver_query_base]
-If the query protocol family is specified as IPv6, return IPv4-mapped IPv6 addresses on finding no IPv6 addresses.
 
+[endsect]
 
- static const flags v4_mapped = implementation_defined;
 
 
+[section:pointer ip::basic_resolver_iterator::pointer]
 
-[endsect]
+[indexterm2 pointer..ip::basic_resolver_iterator]
+The type of the result of applying `operator->()` to the iterator.
 
 
+ typedef const basic_resolver_entry< InternetProtocol > * pointer;
 
-[section:_resolver_query_base ip::resolver_query_base::~resolver_query_base]
 
-[indexterm2 ~resolver_query_base..ip::resolver_query_base]
-Protected destructor to prevent deletion through this type.
 
+[heading Requirements]
 
- ~resolver_query_base();
+[*Header: ][^boost/asio/ip/basic_resolver_iterator.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
 
-[endsect]
-
-[section:ip__resolver_service ip::resolver_service]
-
+[section:reference ip::basic_resolver_iterator::reference]
 
-Default service implementation for a resolver.
+[indexterm2 reference..ip::basic_resolver_iterator]
+The type of the result of applying `operator*()` to the iterator.
 
 
- template<
- typename ``[link boost_asio.reference.InternetProtocol InternetProtocol]``>
- class resolver_service :
- public io_service::service
+ typedef const basic_resolver_entry< InternetProtocol > & reference;
 
 
 [heading Types]
@@ -61605,36 +61000,15 @@
 
   [
 
- [[link boost_asio.reference.ip__resolver_service.endpoint_type [*endpoint_type]]]
- [The endpoint type. ]
-
- ]
-
- [
-
- [[link boost_asio.reference.ip__resolver_service.implementation_type [*implementation_type]]]
- [The type of a resolver implementation. ]
-
- ]
-
- [
-
- [[link boost_asio.reference.ip__resolver_service.iterator_type [*iterator_type]]]
- [The iterator type. ]
-
- ]
-
- [
-
- [[link boost_asio.reference.ip__resolver_service.protocol_type [*protocol_type]]]
- [The protocol type. ]
+ [[link boost_asio.reference.ip__basic_resolver_entry.endpoint_type [*endpoint_type]]]
+ [The endpoint type associated with the endpoint entry. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.ip__resolver_service.query_type [*query_type]]]
- [The query type. ]
+ [[link boost_asio.reference.ip__basic_resolver_entry.protocol_type [*protocol_type]]]
+ [The protocol type associated with the endpoint entry. ]
   
   ]
 
@@ -61645,240 +61019,49 @@
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.ip__resolver_service.async_resolve [*async_resolve]]]
- [Asynchronously resolve a query to a list of entries.
+ [[link boost_asio.reference.ip__basic_resolver_entry.basic_resolver_entry [*basic_resolver_entry]]]
+ [Default constructor.
 
- Asynchronously resolve an endpoint to a list of entries. ]
- ]
-
- [
- [[link boost_asio.reference.ip__resolver_service.cancel [*cancel]]]
- [Cancel pending asynchronous operations. ]
- ]
-
- [
- [[link boost_asio.reference.ip__resolver_service.construct [*construct]]]
- [Construct a new resolver implementation. ]
+ Construct with specified endpoint, host name and service name. ]
   ]
   
   [
- [[link boost_asio.reference.ip__resolver_service.destroy [*destroy]]]
- [Destroy a resolver implementation. ]
+ [[link boost_asio.reference.ip__basic_resolver_entry.endpoint [*endpoint]]]
+ [Get the endpoint associated with the entry. ]
   ]
   
   [
- [[link boost_asio.reference.ip__resolver_service.get_io_service [*get_io_service]]]
- [Get the io_service object that owns the service. ]
+ [[link boost_asio.reference.ip__basic_resolver_entry.host_name [*host_name]]]
+ [Get the host name associated with the entry. ]
   ]
   
   [
- [[link boost_asio.reference.ip__resolver_service.resolve [*resolve]]]
- [Resolve a query to a list of entries.
-
- Resolve an endpoint to a list of entries. ]
+ [[link boost_asio.reference.ip__basic_resolver_entry.operator_endpoint_type [*operator endpoint_type]]]
+ [Convert to the endpoint associated with the entry. ]
   ]
   
   [
- [[link boost_asio.reference.ip__resolver_service.resolver_service [*resolver_service]]]
- [Construct a new resolver service for the specified io_service. ]
+ [[link boost_asio.reference.ip__basic_resolver_entry.service_name [*service_name]]]
+ [Get the service name associated with the entry. ]
   ]
   
 ]
 
-[heading Data Members]
-[table
- [[Name][Description]]
-
- [
- [[link boost_asio.reference.ip__resolver_service.id [*id]]]
- [The unique service identifier. ]
- ]
-
-]
-
-[heading Requirements]
-
-[*Header: ][^boost/asio/ip/resolver_service.hpp]
-
-[*Convenience header: ][^boost/asio.hpp]
-
-[section:async_resolve ip::resolver_service::async_resolve]
-
-[indexterm2 async_resolve..ip::resolver_service]
-Asynchronously resolve a query to a list of entries.
-
-
- template<
- typename ``[link boost_asio.reference.ResolveHandler ResolveHandler]``>
- void ``[link boost_asio.reference.ip__resolver_service.async_resolve.overload1 async_resolve]``(
- implementation_type & impl,
- const query_type & query,
- ResolveHandler handler);
- `` [''''&raquo;''' [link boost_asio.reference.ip__resolver_service.async_resolve.overload1 more...]]``
-
-
-Asynchronously resolve an endpoint to a list of entries.
-
-
- template<
- typename ``[link boost_asio.reference.ResolveHandler ResolveHandler]``>
- void ``[link boost_asio.reference.ip__resolver_service.async_resolve.overload2 async_resolve]``(
- implementation_type & impl,
- const endpoint_type & endpoint,
- ResolveHandler handler);
- `` [''''&raquo;''' [link boost_asio.reference.ip__resolver_service.async_resolve.overload2 more...]]``
-
-
-[section:overload1 ip::resolver_service::async_resolve (1 of 2 overloads)]
-
-
-Asynchronously resolve a query to a list of entries.
-
-
- template<
- typename ``[link boost_asio.reference.ResolveHandler ResolveHandler]``>
- void async_resolve(
- implementation_type & impl,
- const query_type & query,
- ResolveHandler handler);
-
-
-
-[endsect]
-
-
-
-[section:overload2 ip::resolver_service::async_resolve (2 of 2 overloads)]
-
-
-Asynchronously resolve an endpoint to a list of entries.
-
-
- template<
- typename ``[link boost_asio.reference.ResolveHandler ResolveHandler]``>
- void async_resolve(
- implementation_type & impl,
- const endpoint_type & endpoint,
- ResolveHandler handler);
-
-
-
-[endsect]
-
-
-[endsect]
-
-
-[section:cancel ip::resolver_service::cancel]
-
-[indexterm2 cancel..ip::resolver_service]
-Cancel pending asynchronous operations.
-
-
- void cancel(
- implementation_type & impl);
-
-
-
-[endsect]
-
-
-
-[section:construct ip::resolver_service::construct]
-
-[indexterm2 construct..ip::resolver_service]
-Construct a new resolver implementation.
-
-
- void construct(
- implementation_type & impl);
-
-
-
-[endsect]
-
-
-
-[section:destroy ip::resolver_service::destroy]
-
-[indexterm2 destroy..ip::resolver_service]
-Destroy a resolver implementation.
-
-
- void destroy(
- implementation_type & impl);
-
-
-
-[endsect]
-
-
-
-[section:endpoint_type ip::resolver_service::endpoint_type]
-
-[indexterm2 endpoint_type..ip::resolver_service]
-The endpoint type.
-
-
- typedef InternetProtocol::endpoint endpoint_type;
-
-
-
-[heading Requirements]
-
-[*Header: ][^boost/asio/ip/resolver_service.hpp]
-
-[*Convenience header: ][^boost/asio.hpp]
-
-
-[endsect]
-
-
-
-[section:get_io_service ip::resolver_service::get_io_service]
-
-
-['Inherited from io_service.]
-
-[indexterm2 get_io_service..ip::resolver_service]
-Get the [link boost_asio.reference.io_service `io_service`] object that owns the service.
-
-
- boost::asio::io_service & get_io_service();
-
-
-
-[endsect]
-
-
-
-[section:id ip::resolver_service::id]
-
-[indexterm2 id..ip::resolver_service]
-The unique service identifier.
-
-
- static boost::asio::io_service::id id;
-
-
-
-[endsect]
-
-
+The [link boost_asio.reference.ip__basic_resolver_entry `ip::basic_resolver_entry`] class template describes an entry as returned by a resolver.
 
-[section:implementation_type ip::resolver_service::implementation_type]
 
-[indexterm2 implementation_type..ip::resolver_service]
-The type of a resolver implementation.
+[heading Thread Safety]
+
+[*Distinct] [*objects:] Safe.
 
+[*Shared] [*objects:] Unsafe.
 
- typedef implementation_defined implementation_type;
 
 
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/ip/resolver_service.hpp]
+[*Header: ][^boost/asio/ip/basic_resolver_iterator.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
@@ -61887,13 +61070,13 @@
 
 
 
-[section:iterator_type ip::resolver_service::iterator_type]
+[section:value_type ip::basic_resolver_iterator::value_type]
 
-[indexterm2 iterator_type..ip::resolver_service]
-The iterator type.
+[indexterm2 value_type..ip::basic_resolver_iterator]
+The type of the value pointed to by the iterator.
 
 
- typedef basic_resolver_iterator< InternetProtocol > iterator_type;
+ typedef basic_resolver_entry< InternetProtocol > value_type;
 
 
 [heading Types]
@@ -61902,36 +61085,15 @@
 
   [
 
- [[link boost_asio.reference.ip__basic_resolver_iterator.difference_type [*difference_type]]]
- [The type used for the distance between two iterators. ]
-
- ]
-
- [
-
- [[link boost_asio.reference.ip__basic_resolver_iterator.iterator_category [*iterator_category]]]
- [The iterator category. ]
-
- ]
-
- [
-
- [[link boost_asio.reference.ip__basic_resolver_iterator.pointer [*pointer]]]
- [The type of the result of applying operator->() to the iterator. ]
-
- ]
-
- [
-
- [[link boost_asio.reference.ip__basic_resolver_iterator.reference [*reference]]]
- [The type of the result of applying operator*() to the iterator. ]
+ [[link boost_asio.reference.ip__basic_resolver_entry.endpoint_type [*endpoint_type]]]
+ [The endpoint type associated with the endpoint entry. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.ip__basic_resolver_iterator.value_type [*value_type]]]
- [The type of the value pointed to by the iterator. ]
+ [[link boost_asio.reference.ip__basic_resolver_entry.protocol_type [*protocol_type]]]
+ [The protocol type associated with the endpoint entry. ]
   
   ]
 
@@ -61942,60 +61104,35 @@
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.ip__basic_resolver_iterator.basic_resolver_iterator [*basic_resolver_iterator]]]
- [Default constructor creates an end iterator. ]
- ]
-
- [
- [[link boost_asio.reference.ip__basic_resolver_iterator.create [*create]]]
- [Create an iterator from an addrinfo list returned by getaddrinfo.
+ [[link boost_asio.reference.ip__basic_resolver_entry.basic_resolver_entry [*basic_resolver_entry]]]
+ [Default constructor.
 
- Create an iterator from an endpoint, host name and service name. ]
- ]
-
- [
- [[link boost_asio.reference.ip__basic_resolver_iterator.operator__star_ [*operator *]]]
- [Dereference an iterator. ]
+ Construct with specified endpoint, host name and service name. ]
   ]
   
   [
- [[link boost_asio.reference.ip__basic_resolver_iterator.operator_plus__plus_ [*operator++]]]
- [Increment operator (prefix).
-
- Increment operator (postfix). ]
+ [[link boost_asio.reference.ip__basic_resolver_entry.endpoint [*endpoint]]]
+ [Get the endpoint associated with the entry. ]
   ]
   
   [
- [[link boost_asio.reference.ip__basic_resolver_iterator.operator_arrow_ [*operator->]]]
- [Dereference an iterator. ]
+ [[link boost_asio.reference.ip__basic_resolver_entry.host_name [*host_name]]]
+ [Get the host name associated with the entry. ]
   ]
   
-]
-
-[heading Friends]
-[table
- [[Name][Description]]
-
   [
- [[link boost_asio.reference.ip__basic_resolver_iterator.operator_not__eq_ [*operator!=]]]
- [Test two iterators for inequality. ]
+ [[link boost_asio.reference.ip__basic_resolver_entry.operator_endpoint_type [*operator endpoint_type]]]
+ [Convert to the endpoint associated with the entry. ]
   ]
   
   [
- [[link boost_asio.reference.ip__basic_resolver_iterator.operator_eq__eq_ [*operator==]]]
- [Test two iterators for equality. ]
+ [[link boost_asio.reference.ip__basic_resolver_entry.service_name [*service_name]]]
+ [Get the service name associated with the entry. ]
   ]
   
 ]
 
-The [link boost_asio.reference.ip__basic_resolver_iterator `ip::basic_resolver_iterator`] class template is used to define iterators over the results returned by a resolver.
-
-The iterator's value\_type, obtained when the iterator is dereferenced, is:
-
- const basic_resolver_entry<InternetProtocol>
-
-
-
+The [link boost_asio.reference.ip__basic_resolver_entry `ip::basic_resolver_entry`] class template describes an entry as returned by a resolver.
 
 
 [heading Thread Safety]
@@ -62009,7 +61146,7 @@
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/ip/resolver_service.hpp]
+[*Header: ][^boost/asio/ip/basic_resolver_iterator.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
@@ -62018,34 +61155,18 @@
 
 
 
-[section:protocol_type ip::resolver_service::protocol_type]
-
-[indexterm2 protocol_type..ip::resolver_service]
-The protocol type.
-
-
- typedef InternetProtocol protocol_type;
-
-
-
-[heading Requirements]
-
-[*Header: ][^boost/asio/ip/resolver_service.hpp]
-
-[*Convenience header: ][^boost/asio.hpp]
-
-
 [endsect]
 
+[section:ip__basic_resolver_query ip::basic_resolver_query]
 
 
-[section:query_type ip::resolver_service::query_type]
-
-[indexterm2 query_type..ip::resolver_service]
-The query type.
+An query to be passed to a resolver.
 
 
- typedef basic_resolver_query< InternetProtocol > query_type;
+ template<
+ typename ``[link boost_asio.reference.InternetProtocol InternetProtocol]``>
+ class basic_resolver_query :
+ public ip::resolver_query_base
 
 
 [heading Types]
@@ -62152,591 +61273,384 @@
 
 
 
-
 [heading Requirements]
 
-[*Header: ][^boost/asio/ip/resolver_service.hpp]
+[*Header: ][^boost/asio/ip/basic_resolver_query.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
 
-[endsect]
+[section:address_configured ip::basic_resolver_query::address_configured]
 
 
-[section:resolve ip::resolver_service::resolve]
+['Inherited from ip::resolver_query_base.]
 
-[indexterm2 resolve..ip::resolver_service]
-Resolve a query to a list of entries.
+[indexterm2 address_configured..ip::basic_resolver_query]
+Only return IPv4 addresses if a non-loopback IPv4 address is configured for the system. Only return IPv6 addresses if a non-loopback IPv6 address is configured for the system.
 
 
- iterator_type ``[link boost_asio.reference.ip__resolver_service.resolve.overload1 resolve]``(
- implementation_type & impl,
- const query_type & query,
- boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.ip__resolver_service.resolve.overload1 more...]]``
+ static const flags address_configured = implementation_defined;
 
 
-Resolve an endpoint to a list of entries.
 
+[endsect]
 
- iterator_type ``[link boost_asio.reference.ip__resolver_service.resolve.overload2 resolve]``(
- implementation_type & impl,
- const endpoint_type & endpoint,
- boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.ip__resolver_service.resolve.overload2 more...]]``
 
 
-[section:overload1 ip::resolver_service::resolve (1 of 2 overloads)]
+[section:all_matching ip::basic_resolver_query::all_matching]
 
 
-Resolve a query to a list of entries.
+['Inherited from ip::resolver_query_base.]
 
+[indexterm2 all_matching..ip::basic_resolver_query]
+If used with v4\_mapped, return all matching IPv6 and IPv4 addresses.
 
- iterator_type resolve(
- implementation_type & impl,
- const query_type & query,
- boost::system::error_code & ec);
 
+ static const flags all_matching = implementation_defined;
 
 
-[endsect]
 
+[endsect]
 
 
-[section:overload2 ip::resolver_service::resolve (2 of 2 overloads)]
+[section:basic_resolver_query ip::basic_resolver_query::basic_resolver_query]
 
+[indexterm2 basic_resolver_query..ip::basic_resolver_query]
+Construct with specified service name for any protocol.
 
-Resolve an endpoint to a list of entries.
 
-
- iterator_type resolve(
- implementation_type & impl,
- const endpoint_type & endpoint,
- boost::system::error_code & ec);
+ ``[link boost_asio.reference.ip__basic_resolver_query.basic_resolver_query.overload1 basic_resolver_query]``(
+ const std::string & service,
+ resolver_query_base::flags resolve_flags = passive|address_configured);
+ `` [''''&raquo;''' [link boost_asio.reference.ip__basic_resolver_query.basic_resolver_query.overload1 more...]]``
 
 
+Construct with specified service name for a given protocol.
 
-[endsect]
 
+ ``[link boost_asio.reference.ip__basic_resolver_query.basic_resolver_query.overload2 basic_resolver_query]``(
+ const protocol_type & protocol,
+ const std::string & service,
+ resolver_query_base::flags resolve_flags = passive|address_configured);
+ `` [''''&raquo;''' [link boost_asio.reference.ip__basic_resolver_query.basic_resolver_query.overload2 more...]]``
 
-[endsect]
 
+Construct with specified host name and service name for any protocol.
 
-[section:resolver_service ip::resolver_service::resolver_service]
 
-[indexterm2 resolver_service..ip::resolver_service]
-Construct a new resolver service for the specified [link boost_asio.reference.io_service `io_service`].
+ ``[link boost_asio.reference.ip__basic_resolver_query.basic_resolver_query.overload3 basic_resolver_query]``(
+ const std::string & host,
+ const std::string & service,
+ resolver_query_base::flags resolve_flags = address_configured);
+ `` [''''&raquo;''' [link boost_asio.reference.ip__basic_resolver_query.basic_resolver_query.overload3 more...]]``
 
 
- resolver_service(
- boost::asio::io_service & io_service);
+Construct with specified host name and service name for a given protocol.
 
 
+ ``[link boost_asio.reference.ip__basic_resolver_query.basic_resolver_query.overload4 basic_resolver_query]``(
+ const protocol_type & protocol,
+ const std::string & host,
+ const std::string & service,
+ resolver_query_base::flags resolve_flags = address_configured);
+ `` [''''&raquo;''' [link boost_asio.reference.ip__basic_resolver_query.basic_resolver_query.overload4 more...]]``
 
-[endsect]
 
+[section:overload1 ip::basic_resolver_query::basic_resolver_query (1 of 4 overloads)]
 
 
-[endsect]
+Construct with specified service name for any protocol.
 
-[section:ip__tcp ip::tcp]
 
+ basic_resolver_query(
+ const std::string & service,
+ resolver_query_base::flags resolve_flags = passive|address_configured);
 
-Encapsulates the flags needed for TCP.
 
+This constructor is typically used to perform name resolution for local service binding.
 
- class tcp
 
+[heading Parameters]
+
 
-[heading Types]
-[table
- [[Name][Description]]
+[variablelist
+
+[[service][A string identifying the requested service. This may be a descriptive name or a numeric string corresponding to a port number.]]
 
- [
+[[resolve_flags][A set of flags that determine how name resolution should be performed. The default flags are suitable for local service binding.]]
 
- [[link boost_asio.reference.ip__tcp.acceptor [*acceptor]]]
- [The TCP acceptor type. ]
-
- ]
+]
 
- [
 
- [[link boost_asio.reference.ip__tcp.endpoint [*endpoint]]]
- [The type of a TCP endpoint. ]
-
- ]
+[heading Remarks]
+
+On POSIX systems, service names are typically defined in the file `/etc/services`. On Windows, service names may be found in the file `c:\windows\system32\drivers\etc\services`. Operating systems may use additional locations when resolving service names.
 
- [
 
- [[link boost_asio.reference.ip__tcp.iostream [*iostream]]]
- [The TCP iostream type. ]
-
- ]
 
- [
 
- [[link boost_asio.reference.ip__tcp.no_delay [*no_delay]]]
- [Socket option for disabling the Nagle algorithm. ]
-
- ]
+[endsect]
 
- [
 
- [[link boost_asio.reference.ip__tcp.resolver [*resolver]]]
- [The TCP resolver type. ]
-
- ]
 
- [
+[section:overload2 ip::basic_resolver_query::basic_resolver_query (2 of 4 overloads)]
 
- [[link boost_asio.reference.ip__tcp.socket [*socket]]]
- [The TCP socket type. ]
-
- ]
 
-]
+Construct with specified service name for a given protocol.
 
-[heading Member Functions]
-[table
- [[Name][Description]]
 
- [
- [[link boost_asio.reference.ip__tcp.family [*family]]]
- [Obtain an identifier for the protocol family. ]
- ]
-
- [
- [[link boost_asio.reference.ip__tcp.protocol [*protocol]]]
- [Obtain an identifier for the protocol. ]
- ]
-
- [
- [[link boost_asio.reference.ip__tcp.type [*type]]]
- [Obtain an identifier for the type of the protocol. ]
- ]
-
- [
- [[link boost_asio.reference.ip__tcp.v4 [*v4]]]
- [Construct to represent the IPv4 TCP protocol. ]
- ]
-
- [
- [[link boost_asio.reference.ip__tcp.v6 [*v6]]]
- [Construct to represent the IPv6 TCP protocol. ]
- ]
-
-]
+ basic_resolver_query(
+ const protocol_type & protocol,
+ const std::string & service,
+ resolver_query_base::flags resolve_flags = passive|address_configured);
 
-[heading Friends]
-[table
- [[Name][Description]]
 
- [
- [[link boost_asio.reference.ip__tcp.operator_not__eq_ [*operator!=]]]
- [Compare two protocols for inequality. ]
- ]
-
- [
- [[link boost_asio.reference.ip__tcp.operator_eq__eq_ [*operator==]]]
- [Compare two protocols for equality. ]
- ]
-
-]
+This constructor is typically used to perform name resolution for local service binding with a specific protocol version.
 
-The [link boost_asio.reference.ip__tcp `ip::tcp`] class contains flags necessary for TCP sockets.
 
+[heading Parameters]
+
 
-[heading Thread Safety]
+[variablelist
   
-[*Distinct] [*objects:] Safe.
+[[protocol][A protocol object, normally representing either the IPv4 or IPv6 version of an internet protocol.]]
 
-[*Shared] [*objects:] Safe.
+[[service][A string identifying the requested service. This may be a descriptive name or a numeric string corresponding to a port number.]]
 
+[[resolve_flags][A set of flags that determine how name resolution should be performed. The default flags are suitable for local service binding.]]
 
+]
 
 
-[heading Requirements]
+[heading Remarks]
+
+On POSIX systems, service names are typically defined in the file `/etc/services`. On Windows, service names may be found in the file `c:\windows\system32\drivers\etc\services`. Operating systems may use additional locations when resolving service names.
 
-[*Header: ][^boost/asio/ip/tcp.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
 
 
-[section:acceptor ip::tcp::acceptor]
+[endsect]
 
-[indexterm2 acceptor..ip::tcp]
-The TCP acceptor type.
 
 
- typedef basic_socket_acceptor< tcp > acceptor;
+[section:overload3 ip::basic_resolver_query::basic_resolver_query (3 of 4 overloads)]
 
 
-[heading Types]
-[table
- [[Name][Description]]
+Construct with specified host name and service name for any protocol.
 
- [
 
- [[link boost_asio.reference.basic_socket_acceptor.broadcast [*broadcast]]]
- [Socket option to permit sending of broadcast messages. ]
-
- ]
+ basic_resolver_query(
+ const std::string & host,
+ const std::string & service,
+ resolver_query_base::flags resolve_flags = address_configured);
 
- [
 
- [[link boost_asio.reference.basic_socket_acceptor.bytes_readable [*bytes_readable]]]
- [IO control command to get the amount of data that can be read without blocking. ]
-
- ]
+This constructor is typically used to perform name resolution for communication with remote hosts.
 
- [
 
- [[link boost_asio.reference.basic_socket_acceptor.debug [*debug]]]
- [Socket option to enable socket-level debugging. ]
+[heading Parameters]
+
+
+[variablelist
   
- ]
+[[host][A string identifying a location. May be a descriptive name or a numeric address string. If an empty string and the passive flag has been specified, the resolved endpoints are suitable for local service binding. If an empty string and passive is not specified, the resolved endpoints will use the loopback address.]]
 
- [
+[[service][A string identifying the requested service. This may be a descriptive name or a numeric string corresponding to a port number. May be an empty string, in which case all resolved endpoints will have a port number of 0.]]
 
- [[link boost_asio.reference.basic_socket_acceptor.do_not_route [*do_not_route]]]
- [Socket option to prevent routing, use local interfaces only. ]
-
- ]
+[[resolve_flags][A set of flags that determine how name resolution should be performed. The default flags are suitable for communication with remote hosts.]]
 
- [
+]
 
- [[link boost_asio.reference.basic_socket_acceptor.enable_connection_aborted [*enable_connection_aborted]]]
- [Socket option to report aborted connections on accept. ]
-
- ]
 
- [
+[heading Remarks]
+
+On POSIX systems, host names may be locally defined in the file `/etc/hosts`. On Windows, host names may be defined in the file `c:\windows\system32\drivers\etc\hosts`. Remote host name resolution is performed using DNS. Operating systems may use additional locations when resolving host names (such as NETBIOS names on Windows).
 
- [[link boost_asio.reference.basic_socket_acceptor.endpoint_type [*endpoint_type]]]
- [The endpoint type. ]
-
- ]
+On POSIX systems, service names are typically defined in the file `/etc/services`. On Windows, service names may be found in the file `c:\windows\system32\drivers\etc\services`. Operating systems may use additional locations when resolving service names.
 
- [
 
- [[link boost_asio.reference.basic_socket_acceptor.implementation_type [*implementation_type]]]
- [The underlying implementation type of I/O object. ]
-
- ]
+[endsect]
 
- [
 
- [[link boost_asio.reference.basic_socket_acceptor.keep_alive [*keep_alive]]]
- [Socket option to send keep-alives. ]
-
- ]
 
- [
+[section:overload4 ip::basic_resolver_query::basic_resolver_query (4 of 4 overloads)]
 
- [[link boost_asio.reference.basic_socket_acceptor.linger [*linger]]]
- [Socket option to specify whether the socket lingers on close if unsent data is present. ]
-
- ]
 
- [
+Construct with specified host name and service name for a given protocol.
 
- [[link boost_asio.reference.basic_socket_acceptor.message_flags [*message_flags]]]
- [Bitmask type for flags that can be passed to send and receive operations. ]
-
- ]
 
- [
+ basic_resolver_query(
+ const protocol_type & protocol,
+ const std::string & host,
+ const std::string & service,
+ resolver_query_base::flags resolve_flags = address_configured);
 
- [[link boost_asio.reference.basic_socket_acceptor.native_handle_type [*native_handle_type]]]
- [The native representation of an acceptor. ]
-
- ]
 
- [
+This constructor is typically used to perform name resolution for communication with remote hosts.
 
- [[link boost_asio.reference.basic_socket_acceptor.native_type [*native_type]]]
- [(Deprecated: Use native_handle_type.) The native representation of an acceptor. ]
-
- ]
 
- [
+[heading Parameters]
+
 
- [[link boost_asio.reference.basic_socket_acceptor.non_blocking_io [*non_blocking_io]]]
- [(Deprecated: Use non_blocking().) IO control command to set the blocking mode of the socket. ]
+[variablelist
   
- ]
+[[protocol][A protocol object, normally representing either the IPv4 or IPv6 version of an internet protocol.]]
 
- [
+[[host][A string identifying a location. May be a descriptive name or a numeric address string. If an empty string and the passive flag has been specified, the resolved endpoints are suitable for local service binding. If an empty string and passive is not specified, the resolved endpoints will use the loopback address.]]
 
- [[link boost_asio.reference.basic_socket_acceptor.protocol_type [*protocol_type]]]
- [The protocol type. ]
-
- ]
+[[service][A string identifying the requested service. This may be a descriptive name or a numeric string corresponding to a port number. May be an empty string, in which case all resolved endpoints will have a port number of 0.]]
 
- [
+[[resolve_flags][A set of flags that determine how name resolution should be performed. The default flags are suitable for communication with remote hosts.]]
 
- [[link boost_asio.reference.basic_socket_acceptor.receive_buffer_size [*receive_buffer_size]]]
- [Socket option for the receive buffer size of a socket. ]
-
- ]
+]
 
- [
 
- [[link boost_asio.reference.basic_socket_acceptor.receive_low_watermark [*receive_low_watermark]]]
- [Socket option for the receive low watermark. ]
-
- ]
+[heading Remarks]
+
+On POSIX systems, host names may be locally defined in the file `/etc/hosts`. On Windows, host names may be defined in the file `c:\windows\system32\drivers\etc\hosts`. Remote host name resolution is performed using DNS. Operating systems may use additional locations when resolving host names (such as NETBIOS names on Windows).
 
- [
+On POSIX systems, service names are typically defined in the file `/etc/services`. On Windows, service names may be found in the file `c:\windows\system32\drivers\etc\services`. Operating systems may use additional locations when resolving service names.
 
- [[link boost_asio.reference.basic_socket_acceptor.reuse_address [*reuse_address]]]
- [Socket option to allow the socket to be bound to an address that is already in use. ]
-
- ]
 
- [
+[endsect]
 
- [[link boost_asio.reference.basic_socket_acceptor.send_buffer_size [*send_buffer_size]]]
- [Socket option for the send buffer size of a socket. ]
-
- ]
 
- [
+[endsect]
 
- [[link boost_asio.reference.basic_socket_acceptor.send_low_watermark [*send_low_watermark]]]
- [Socket option for the send low watermark. ]
-
- ]
 
- [
+[section:canonical_name ip::basic_resolver_query::canonical_name]
 
- [[link boost_asio.reference.basic_socket_acceptor.service_type [*service_type]]]
- [The type of the service that will be used to provide I/O operations. ]
-
- ]
 
- [
+['Inherited from ip::resolver_query_base.]
 
- [[link boost_asio.reference.basic_socket_acceptor.shutdown_type [*shutdown_type]]]
- [Different ways a socket may be shutdown. ]
-
- ]
+[indexterm2 canonical_name..ip::basic_resolver_query]
+Determine the canonical name of the host specified in the query.
 
-]
 
-[heading Member Functions]
-[table
- [[Name][Description]]
+ static const flags canonical_name = implementation_defined;
 
- [
- [[link boost_asio.reference.basic_socket_acceptor.accept [*accept]]]
- [Accept a new connection.
 
- Accept a new connection and obtain the endpoint of the peer. ]
- ]
-
- [
- [[link boost_asio.reference.basic_socket_acceptor.assign [*assign]]]
- [Assigns an existing native acceptor to the acceptor. ]
- ]
-
- [
- [[link boost_asio.reference.basic_socket_acceptor.async_accept [*async_accept]]]
- [Start an asynchronous accept. ]
- ]
-
- [
- [[link boost_asio.reference.basic_socket_acceptor.basic_socket_acceptor [*basic_socket_acceptor]]]
- [Construct an acceptor without opening it.
 
- Construct an open acceptor.
+[endsect]
 
- Construct an acceptor opened on the given endpoint.
 
- Construct a basic_socket_acceptor on an existing native acceptor.
 
- Move-construct a basic_socket_acceptor from another. ]
- ]
-
- [
- [[link boost_asio.reference.basic_socket_acceptor.bind [*bind]]]
- [Bind the acceptor to the given local endpoint. ]
- ]
-
- [
- [[link boost_asio.reference.basic_socket_acceptor.cancel [*cancel]]]
- [Cancel all asynchronous operations associated with the acceptor. ]
- ]
-
- [
- [[link boost_asio.reference.basic_socket_acceptor.close [*close]]]
- [Close the acceptor. ]
- ]
-
- [
- [[link boost_asio.reference.basic_socket_acceptor.get_io_service [*get_io_service]]]
- [Get the io_service associated with the object. ]
- ]
-
- [
- [[link boost_asio.reference.basic_socket_acceptor.get_option [*get_option]]]
- [Get an option from the acceptor. ]
- ]
-
- [
- [[link boost_asio.reference.basic_socket_acceptor.io_control [*io_control]]]
- [Perform an IO control command on the acceptor. ]
- ]
-
- [
- [[link boost_asio.reference.basic_socket_acceptor.is_open [*is_open]]]
- [Determine whether the acceptor is open. ]
- ]
-
- [
- [[link boost_asio.reference.basic_socket_acceptor.listen [*listen]]]
- [Place the acceptor into the state where it will listen for new connections. ]
- ]
-
- [
- [[link boost_asio.reference.basic_socket_acceptor.local_endpoint [*local_endpoint]]]
- [Get the local endpoint of the acceptor. ]
- ]
-
- [
- [[link boost_asio.reference.basic_socket_acceptor.native [*native]]]
- [(Deprecated: Use native_handle().) Get the native acceptor representation. ]
- ]
-
- [
- [[link boost_asio.reference.basic_socket_acceptor.native_handle [*native_handle]]]
- [Get the native acceptor representation. ]
- ]
-
- [
- [[link boost_asio.reference.basic_socket_acceptor.native_non_blocking [*native_non_blocking]]]
- [Gets the non-blocking mode of the native acceptor implementation.
+[section:flags ip::basic_resolver_query::flags]
 
- Sets the non-blocking mode of the native acceptor implementation. ]
- ]
-
- [
- [[link boost_asio.reference.basic_socket_acceptor.non_blocking [*non_blocking]]]
- [Gets the non-blocking mode of the acceptor.
 
- Sets the non-blocking mode of the acceptor. ]
- ]
-
- [
- [[link boost_asio.reference.basic_socket_acceptor.open [*open]]]
- [Open the acceptor using the specified protocol. ]
- ]
-
- [
- [[link boost_asio.reference.basic_socket_acceptor.operator_eq_ [*operator=]]]
- [Move-assign a basic_socket_acceptor from another. ]
- ]
-
- [
- [[link boost_asio.reference.basic_socket_acceptor.set_option [*set_option]]]
- [Set an option on the acceptor. ]
- ]
-
-]
+['Inherited from ip::resolver_query_base.]
 
-[heading Protected Member Functions]
-[table
- [[Name][Description]]
+[indexterm2 flags..ip::basic_resolver_query]
+A bitmask type (C++ Std [lib.bitmask.types]).
 
- [
- [[link boost_asio.reference.basic_socket_acceptor.get_implementation [*get_implementation]]]
- [Get the underlying implementation of the I/O object. ]
- ]
-
- [
- [[link boost_asio.reference.basic_socket_acceptor.get_service [*get_service]]]
- [Get the service associated with the I/O object. ]
- ]
-
-]
 
-[heading Data Members]
-[table
- [[Name][Description]]
+ typedef unspecified flags;
 
- [
- [[link boost_asio.reference.basic_socket_acceptor.max_connections [*max_connections]]]
- [The maximum length of the queue of pending incoming connections. ]
- ]
 
- [
- [[link boost_asio.reference.basic_socket_acceptor.message_do_not_route [*message_do_not_route]]]
- [Specify that the data should not be subject to routing. ]
- ]
 
- [
- [[link boost_asio.reference.basic_socket_acceptor.message_end_of_record [*message_end_of_record]]]
- [Specifies that the data marks the end of a record. ]
- ]
+[heading Requirements]
 
- [
- [[link boost_asio.reference.basic_socket_acceptor.message_out_of_band [*message_out_of_band]]]
- [Process out-of-band data. ]
- ]
+[*Header: ][^boost/asio/ip/basic_resolver_query.hpp]
 
- [
- [[link boost_asio.reference.basic_socket_acceptor.message_peek [*message_peek]]]
- [Peek at incoming data without removing it from the input queue. ]
- ]
+[*Convenience header: ][^boost/asio.hpp]
 
-]
 
-[heading Protected Data Members]
-[table
- [[Name][Description]]
+[endsect]
 
- [
- [[link boost_asio.reference.basic_socket_acceptor.implementation [*implementation]]]
- [(Deprecated: Use get_implementation().) The underlying implementation of the I/O object. ]
- ]
 
- [
- [[link boost_asio.reference.basic_socket_acceptor.service [*service]]]
- [(Deprecated: Use get_service().) The service associated with the I/O object. ]
- ]
 
-]
+[section:hints ip::basic_resolver_query::hints]
 
-The [link boost_asio.reference.basic_socket_acceptor `basic_socket_acceptor`] class template is used for accepting new socket connections.
+[indexterm2 hints..ip::basic_resolver_query]
+Get the hints associated with the query.
 
 
-[heading Thread Safety]
-
-[*Distinct] [*objects:] Safe.
+ const boost::asio::detail::addrinfo_type & hints() const;
 
-[*Shared] [*objects:] Unsafe.
 
 
-[heading Example]
-
-Opening a socket acceptor with the SO\_REUSEADDR option enabled:
+[endsect]
 
- boost::asio::ip::tcp::acceptor acceptor(io_service);
- boost::asio::ip::tcp::endpoint endpoint(boost::asio::ip::tcp::v4(), port);
- acceptor.open(endpoint.protocol());
- acceptor.set_option(boost::asio::ip::tcp::acceptor::reuse_address(true));
- acceptor.bind(endpoint);
- acceptor.listen();
 
 
+[section:host_name ip::basic_resolver_query::host_name]
 
+[indexterm2 host_name..ip::basic_resolver_query]
+Get the host name associated with the query.
 
 
+ std::string host_name() const;
 
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/ip/tcp.hpp]
+[endsect]
+
+
+
+[section:numeric_host ip::basic_resolver_query::numeric_host]
+
+
+['Inherited from ip::resolver_query_base.]
+
+[indexterm2 numeric_host..ip::basic_resolver_query]
+Host name should be treated as a numeric string defining an IPv4 or IPv6 address and no name resolution should be attempted.
+
+
+ static const flags numeric_host = implementation_defined;
+
+
+
+[endsect]
+
+
+
+[section:numeric_service ip::basic_resolver_query::numeric_service]
+
+
+['Inherited from ip::resolver_query_base.]
+
+[indexterm2 numeric_service..ip::basic_resolver_query]
+Service name should be treated as a numeric string defining a port number and no name resolution should be attempted.
+
+
+ static const flags numeric_service = implementation_defined;
+
+
+
+[endsect]
+
+
+
+[section:passive ip::basic_resolver_query::passive]
+
+
+['Inherited from ip::resolver_query_base.]
+
+[indexterm2 passive..ip::basic_resolver_query]
+Indicate that returned endpoint is intended for use as a locally bound socket endpoint.
+
+
+ static const flags passive = implementation_defined;
+
+
+
+[endsect]
+
+
+
+[section:protocol_type ip::basic_resolver_query::protocol_type]
+
+[indexterm2 protocol_type..ip::basic_resolver_query]
+The protocol type associated with the endpoint query.
+
+
+ typedef InternetProtocol protocol_type;
+
+
+
+[heading Requirements]
+
+[*Header: ][^boost/asio/ip/basic_resolver_query.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
@@ -62745,13 +61659,198 @@
 
 
 
-[section:endpoint ip::tcp::endpoint]
+[section:service_name ip::basic_resolver_query::service_name]
 
-[indexterm2 endpoint..ip::tcp]
-The type of a TCP endpoint.
+[indexterm2 service_name..ip::basic_resolver_query]
+Get the service name associated with the query.
 
 
- typedef basic_endpoint< tcp > endpoint;
+ std::string service_name() const;
+
+
+
+[endsect]
+
+
+
+[section:v4_mapped ip::basic_resolver_query::v4_mapped]
+
+
+['Inherited from ip::resolver_query_base.]
+
+[indexterm2 v4_mapped..ip::basic_resolver_query]
+If the query protocol family is specified as IPv6, return IPv4-mapped IPv6 addresses on finding no IPv6 addresses.
+
+
+ static const flags v4_mapped = implementation_defined;
+
+
+
+[endsect]
+
+
+
+[endsect]
+
+[section:ip__host_name ip::host_name]
+
+[indexterm1 ip::host_name]
+Get the current host name.
+
+
+ std::string ``[link boost_asio.reference.ip__host_name.overload1 host_name]``();
+ `` [''''&raquo;''' [link boost_asio.reference.ip__host_name.overload1 more...]]``
+
+ std::string ``[link boost_asio.reference.ip__host_name.overload2 host_name]``(
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.ip__host_name.overload2 more...]]``
+
+[heading Requirements]
+
+[*Header: ][^boost/asio/ip/host_name.hpp]
+
+[*Convenience header: ][^boost/asio.hpp]
+
+
+[section:overload1 ip::host_name (1 of 2 overloads)]
+
+
+Get the current host name.
+
+
+ std::string host_name();
+
+
+
+[endsect]
+
+
+
+[section:overload2 ip::host_name (2 of 2 overloads)]
+
+
+Get the current host name.
+
+
+ std::string host_name(
+ boost::system::error_code & ec);
+
+
+
+[endsect]
+
+
+[endsect]
+
+[section:ip__icmp ip::icmp]
+
+
+Encapsulates the flags needed for ICMP.
+
+
+ class icmp
+
+
+[heading Types]
+[table
+ [[Name][Description]]
+
+ [
+
+ [[link boost_asio.reference.ip__icmp.endpoint [*endpoint]]]
+ [The type of a ICMP endpoint. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.ip__icmp.resolver [*resolver]]]
+ [The ICMP resolver type. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.ip__icmp.socket [*socket]]]
+ [The ICMP socket type. ]
+
+ ]
+
+]
+
+[heading Member Functions]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.ip__icmp.family [*family]]]
+ [Obtain an identifier for the protocol family. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__icmp.protocol [*protocol]]]
+ [Obtain an identifier for the protocol. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__icmp.type [*type]]]
+ [Obtain an identifier for the type of the protocol. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__icmp.v4 [*v4]]]
+ [Construct to represent the IPv4 ICMP protocol. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__icmp.v6 [*v6]]]
+ [Construct to represent the IPv6 ICMP protocol. ]
+ ]
+
+]
+
+[heading Friends]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.ip__icmp.operator_not__eq_ [*operator!=]]]
+ [Compare two protocols for inequality. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__icmp.operator_eq__eq_ [*operator==]]]
+ [Compare two protocols for equality. ]
+ ]
+
+]
+
+The [link boost_asio.reference.ip__icmp `ip::icmp`] class contains flags necessary for ICMP sockets.
+
+
+[heading Thread Safety]
+
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Safe.
+
+
+
+
+[heading Requirements]
+
+[*Header: ][^boost/asio/ip/icmp.hpp]
+
+[*Convenience header: ][^boost/asio.hpp]
+
+
+[section:endpoint ip::icmp::endpoint]
+
+[indexterm2 endpoint..ip::icmp]
+The type of a ICMP endpoint.
+
+
+ typedef basic_endpoint< icmp > endpoint;
 
 
 [heading Types]
@@ -62897,7 +61996,7 @@
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/ip/tcp.hpp]
+[*Header: ][^boost/asio/ip/icmp.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
@@ -62906,9 +62005,9 @@
 
 
 
-[section:family ip::tcp::family]
+[section:family ip::icmp::family]
 
-[indexterm2 family..ip::tcp]
+[indexterm2 family..ip::icmp]
 Obtain an identifier for the protocol family.
 
 
@@ -62920,166 +62019,20 @@
 
 
 
-[section:iostream ip::tcp::iostream]
-
-[indexterm2 iostream..ip::tcp]
-The TCP iostream type.
-
-
- typedef basic_socket_iostream< tcp > iostream;
-
-
-[heading Types]
-[table
- [[Name][Description]]
-
- [
-
- [[link boost_asio.reference.basic_socket_iostream.duration_type [*duration_type]]]
- [The duration type. ]
-
- ]
-
- [
-
- [[link boost_asio.reference.basic_socket_iostream.endpoint_type [*endpoint_type]]]
- [The endpoint type. ]
-
- ]
-
- [
-
- [[link boost_asio.reference.basic_socket_iostream.time_type [*time_type]]]
- [The time type. ]
-
- ]
-
-]
-
-[heading Member Functions]
-[table
- [[Name][Description]]
-
- [
- [[link boost_asio.reference.basic_socket_iostream.basic_socket_iostream [*basic_socket_iostream]]]
- [Construct a basic_socket_iostream without establishing a connection.
-
- Establish a connection to an endpoint corresponding to a resolver query. ]
- ]
-
- [
- [[link boost_asio.reference.basic_socket_iostream.close [*close]]]
- [Close the connection. ]
- ]
-
- [
- [[link boost_asio.reference.basic_socket_iostream.connect [*connect]]]
- [Establish a connection to an endpoint corresponding to a resolver query. ]
- ]
-
- [
- [[link boost_asio.reference.basic_socket_iostream.error [*error]]]
- [Get the last error associated with the stream. ]
- ]
-
- [
- [[link boost_asio.reference.basic_socket_iostream.expires_at [*expires_at]]]
- [Get the stream's expiry time as an absolute time.
-
- Set the stream's expiry time as an absolute time. ]
- ]
-
- [
- [[link boost_asio.reference.basic_socket_iostream.expires_from_now [*expires_from_now]]]
- [Get the timer's expiry time relative to now.
-
- Set the stream's expiry time relative to now. ]
- ]
-
- [
- [[link boost_asio.reference.basic_socket_iostream.rdbuf [*rdbuf]]]
- [Return a pointer to the underlying streambuf. ]
- ]
-
-]
-
-
-[heading Requirements]
-
-[*Header: ][^boost/asio/ip/tcp.hpp]
-
-[*Convenience header: ][^boost/asio.hpp]
-
-
-[endsect]
-
-
-
-[section:no_delay ip::tcp::no_delay]
-
-[indexterm2 no_delay..ip::tcp]
-Socket option for disabling the Nagle algorithm.
-
-
- typedef implementation_defined no_delay;
-
-
-
-Implements the IPPROTO\_TCP/TCP\_NODELAY socket option.
-
-
-[heading Examples]
-
-Setting the option:
-
- boost::asio::ip::tcp::socket socket(io_service);
- ...
- boost::asio::ip::tcp::no_delay option(true);
- socket.set_option(option);
-
-
-
-
-
-Getting the current option value:
-
- boost::asio::ip::tcp::socket socket(io_service);
- ...
- boost::asio::ip::tcp::no_delay option;
- socket.get_option(option);
- bool is_set = option.value();
-
-
-
-
-
-
-
-[heading Requirements]
-
-[*Header: ][^boost/asio/ip/tcp.hpp]
-
-[*Convenience header: ][^boost/asio.hpp]
-
-
-[endsect]
-
-
-
-[section:operator_not__eq_ ip::tcp::operator!=]
+[section:operator_not__eq_ ip::icmp::operator!=]
 
-[indexterm2 operator!=..ip::tcp]
+[indexterm2 operator!=..ip::icmp]
 Compare two protocols for inequality.
 
 
   friend bool operator!=(
- const tcp & p1,
- const tcp & p2);
+ const icmp & p1,
+ const icmp & p2);
 
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/ip/tcp.hpp]
+[*Header: ][^boost/asio/ip/icmp.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
@@ -63088,20 +62041,20 @@
 
 
 
-[section:operator_eq__eq_ ip::tcp::operator==]
+[section:operator_eq__eq_ ip::icmp::operator==]
 
-[indexterm2 operator==..ip::tcp]
+[indexterm2 operator==..ip::icmp]
 Compare two protocols for equality.
 
 
   friend bool operator==(
- const tcp & p1,
- const tcp & p2);
+ const icmp & p1,
+ const icmp & p2);
 
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/ip/tcp.hpp]
+[*Header: ][^boost/asio/ip/icmp.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
@@ -63110,9 +62063,9 @@
 
 
 
-[section:protocol ip::tcp::protocol]
+[section:protocol ip::icmp::protocol]
 
-[indexterm2 protocol..ip::tcp]
+[indexterm2 protocol..ip::icmp]
 Obtain an identifier for the protocol.
 
 
@@ -63124,13 +62077,13 @@
 
 
 
-[section:resolver ip::tcp::resolver]
+[section:resolver ip::icmp::resolver]
 
-[indexterm2 resolver..ip::tcp]
-The TCP resolver type.
+[indexterm2 resolver..ip::icmp]
+The ICMP resolver type.
 
 
- typedef basic_resolver< tcp > resolver;
+ typedef basic_resolver< icmp > resolver;
 
 
 [heading Types]
@@ -63262,7 +62215,7 @@
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/ip/tcp.hpp]
+[*Header: ][^boost/asio/ip/icmp.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
@@ -63271,13 +62224,13 @@
 
 
 
-[section:socket ip::tcp::socket]
+[section:socket ip::icmp::socket]
 
-[indexterm2 socket..ip::tcp]
-The TCP socket type.
+[indexterm2 socket..ip::icmp]
+The ICMP socket type.
 
 
- typedef basic_stream_socket< tcp > socket;
+ typedef basic_raw_socket< icmp > socket;
 
 
 [heading Types]
@@ -63286,154 +62239,154 @@
 
   [
 
- [[link boost_asio.reference.basic_stream_socket.broadcast [*broadcast]]]
+ [[link boost_asio.reference.basic_raw_socket.broadcast [*broadcast]]]
     [Socket option to permit sending of broadcast messages. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.basic_stream_socket.bytes_readable [*bytes_readable]]]
+ [[link boost_asio.reference.basic_raw_socket.bytes_readable [*bytes_readable]]]
     [IO control command to get the amount of data that can be read without blocking. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.basic_stream_socket.debug [*debug]]]
+ [[link boost_asio.reference.basic_raw_socket.debug [*debug]]]
     [Socket option to enable socket-level debugging. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.basic_stream_socket.do_not_route [*do_not_route]]]
+ [[link boost_asio.reference.basic_raw_socket.do_not_route [*do_not_route]]]
     [Socket option to prevent routing, use local interfaces only. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.basic_stream_socket.enable_connection_aborted [*enable_connection_aborted]]]
+ [[link boost_asio.reference.basic_raw_socket.enable_connection_aborted [*enable_connection_aborted]]]
     [Socket option to report aborted connections on accept. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.basic_stream_socket.endpoint_type [*endpoint_type]]]
+ [[link boost_asio.reference.basic_raw_socket.endpoint_type [*endpoint_type]]]
     [The endpoint type. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.basic_stream_socket.implementation_type [*implementation_type]]]
+ [[link boost_asio.reference.basic_raw_socket.implementation_type [*implementation_type]]]
     [The underlying implementation type of I/O object. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.basic_stream_socket.keep_alive [*keep_alive]]]
+ [[link boost_asio.reference.basic_raw_socket.keep_alive [*keep_alive]]]
     [Socket option to send keep-alives. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.basic_stream_socket.linger [*linger]]]
+ [[link boost_asio.reference.basic_raw_socket.linger [*linger]]]
     [Socket option to specify whether the socket lingers on close if unsent data is present. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.basic_stream_socket.lowest_layer_type [*lowest_layer_type]]]
+ [[link boost_asio.reference.basic_raw_socket.lowest_layer_type [*lowest_layer_type]]]
     [A basic_socket is always the lowest layer. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.basic_stream_socket.message_flags [*message_flags]]]
+ [[link boost_asio.reference.basic_raw_socket.message_flags [*message_flags]]]
     [Bitmask type for flags that can be passed to send and receive operations. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.basic_stream_socket.native_handle_type [*native_handle_type]]]
+ [[link boost_asio.reference.basic_raw_socket.native_handle_type [*native_handle_type]]]
     [The native representation of a socket. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.basic_stream_socket.native_type [*native_type]]]
+ [[link boost_asio.reference.basic_raw_socket.native_type [*native_type]]]
     [(Deprecated: Use native_handle_type.) The native representation of a socket. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.basic_stream_socket.non_blocking_io [*non_blocking_io]]]
+ [[link boost_asio.reference.basic_raw_socket.non_blocking_io [*non_blocking_io]]]
     [(Deprecated: Use non_blocking().) IO control command to set the blocking mode of the socket. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.basic_stream_socket.protocol_type [*protocol_type]]]
+ [[link boost_asio.reference.basic_raw_socket.protocol_type [*protocol_type]]]
     [The protocol type. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.basic_stream_socket.receive_buffer_size [*receive_buffer_size]]]
+ [[link boost_asio.reference.basic_raw_socket.receive_buffer_size [*receive_buffer_size]]]
     [Socket option for the receive buffer size of a socket. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.basic_stream_socket.receive_low_watermark [*receive_low_watermark]]]
+ [[link boost_asio.reference.basic_raw_socket.receive_low_watermark [*receive_low_watermark]]]
     [Socket option for the receive low watermark. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.basic_stream_socket.reuse_address [*reuse_address]]]
+ [[link boost_asio.reference.basic_raw_socket.reuse_address [*reuse_address]]]
     [Socket option to allow the socket to be bound to an address that is already in use. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.basic_stream_socket.send_buffer_size [*send_buffer_size]]]
+ [[link boost_asio.reference.basic_raw_socket.send_buffer_size [*send_buffer_size]]]
     [Socket option for the send buffer size of a socket. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.basic_stream_socket.send_low_watermark [*send_low_watermark]]]
+ [[link boost_asio.reference.basic_raw_socket.send_low_watermark [*send_low_watermark]]]
     [Socket option for the send low watermark. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.basic_stream_socket.service_type [*service_type]]]
+ [[link boost_asio.reference.basic_raw_socket.service_type [*service_type]]]
     [The type of the service that will be used to provide I/O operations. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.basic_stream_socket.shutdown_type [*shutdown_type]]]
+ [[link boost_asio.reference.basic_raw_socket.shutdown_type [*shutdown_type]]]
     [Different ways a socket may be shutdown. ]
   
   ]
@@ -63445,179 +62398,177 @@
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.basic_stream_socket.assign [*assign]]]
+ [[link boost_asio.reference.basic_raw_socket.assign [*assign]]]
     [Assign an existing native socket to the socket. ]
   ]
   
   [
- [[link boost_asio.reference.basic_stream_socket.async_connect [*async_connect]]]
+ [[link boost_asio.reference.basic_raw_socket.async_connect [*async_connect]]]
     [Start an asynchronous connect. ]
   ]
   
   [
- [[link boost_asio.reference.basic_stream_socket.async_read_some [*async_read_some]]]
- [Start an asynchronous read. ]
+ [[link boost_asio.reference.basic_raw_socket.async_receive [*async_receive]]]
+ [Start an asynchronous receive on a connected socket. ]
   ]
   
   [
- [[link boost_asio.reference.basic_stream_socket.async_receive [*async_receive]]]
+ [[link boost_asio.reference.basic_raw_socket.async_receive_from [*async_receive_from]]]
     [Start an asynchronous receive. ]
   ]
   
   [
- [[link boost_asio.reference.basic_stream_socket.async_send [*async_send]]]
- [Start an asynchronous send. ]
+ [[link boost_asio.reference.basic_raw_socket.async_send [*async_send]]]
+ [Start an asynchronous send on a connected socket. ]
   ]
   
   [
- [[link boost_asio.reference.basic_stream_socket.async_write_some [*async_write_some]]]
- [Start an asynchronous write. ]
+ [[link boost_asio.reference.basic_raw_socket.async_send_to [*async_send_to]]]
+ [Start an asynchronous send. ]
   ]
   
   [
- [[link boost_asio.reference.basic_stream_socket.at_mark [*at_mark]]]
+ [[link boost_asio.reference.basic_raw_socket.at_mark [*at_mark]]]
     [Determine whether the socket is at the out-of-band data mark. ]
   ]
   
   [
- [[link boost_asio.reference.basic_stream_socket.available [*available]]]
+ [[link boost_asio.reference.basic_raw_socket.available [*available]]]
     [Determine the number of bytes available for reading. ]
   ]
   
   [
- [[link boost_asio.reference.basic_stream_socket.basic_stream_socket [*basic_stream_socket]]]
- [Construct a basic_stream_socket without opening it.
+ [[link boost_asio.reference.basic_raw_socket.basic_raw_socket [*basic_raw_socket]]]
+ [Construct a basic_raw_socket without opening it.
 
- Construct and open a basic_stream_socket.
+ Construct and open a basic_raw_socket.
 
- Construct a basic_stream_socket, opening it and binding it to the given local endpoint.
+ Construct a basic_raw_socket, opening it and binding it to the given local endpoint.
 
- Construct a basic_stream_socket on an existing native socket.
+ Construct a basic_raw_socket on an existing native socket.
 
- Move-construct a basic_stream_socket from another. ]
+ Move-construct a basic_raw_socket from another. ]
   ]
   
   [
- [[link boost_asio.reference.basic_stream_socket.bind [*bind]]]
+ [[link boost_asio.reference.basic_raw_socket.bind [*bind]]]
     [Bind the socket to the given local endpoint. ]
   ]
   
   [
- [[link boost_asio.reference.basic_stream_socket.cancel [*cancel]]]
+ [[link boost_asio.reference.basic_raw_socket.cancel [*cancel]]]
     [Cancel all asynchronous operations associated with the socket. ]
   ]
   
   [
- [[link boost_asio.reference.basic_stream_socket.close [*close]]]
+ [[link boost_asio.reference.basic_raw_socket.close [*close]]]
     [Close the socket. ]
   ]
   
   [
- [[link boost_asio.reference.basic_stream_socket.connect [*connect]]]
+ [[link boost_asio.reference.basic_raw_socket.connect [*connect]]]
     [Connect the socket to the specified endpoint. ]
   ]
   
   [
- [[link boost_asio.reference.basic_stream_socket.get_io_service [*get_io_service]]]
+ [[link boost_asio.reference.basic_raw_socket.get_io_service [*get_io_service]]]
     [Get the io_service associated with the object. ]
   ]
   
   [
- [[link boost_asio.reference.basic_stream_socket.get_option [*get_option]]]
+ [[link boost_asio.reference.basic_raw_socket.get_option [*get_option]]]
     [Get an option from the socket. ]
   ]
   
   [
- [[link boost_asio.reference.basic_stream_socket.io_control [*io_control]]]
+ [[link boost_asio.reference.basic_raw_socket.io_control [*io_control]]]
     [Perform an IO control command on the socket. ]
   ]
   
   [
- [[link boost_asio.reference.basic_stream_socket.is_open [*is_open]]]
+ [[link boost_asio.reference.basic_raw_socket.is_open [*is_open]]]
     [Determine whether the socket is open. ]
   ]
   
   [
- [[link boost_asio.reference.basic_stream_socket.local_endpoint [*local_endpoint]]]
+ [[link boost_asio.reference.basic_raw_socket.local_endpoint [*local_endpoint]]]
     [Get the local endpoint of the socket. ]
   ]
   
   [
- [[link boost_asio.reference.basic_stream_socket.lowest_layer [*lowest_layer]]]
+ [[link boost_asio.reference.basic_raw_socket.lowest_layer [*lowest_layer]]]
     [Get a reference to the lowest layer.
 
      Get a const reference to the lowest layer. ]
   ]
   
   [
- [[link boost_asio.reference.basic_stream_socket.native [*native]]]
+ [[link boost_asio.reference.basic_raw_socket.native [*native]]]
     [(Deprecated: Use native_handle().) Get the native socket representation. ]
   ]
   
   [
- [[link boost_asio.reference.basic_stream_socket.native_handle [*native_handle]]]
+ [[link boost_asio.reference.basic_raw_socket.native_handle [*native_handle]]]
     [Get the native socket representation. ]
   ]
   
   [
- [[link boost_asio.reference.basic_stream_socket.native_non_blocking [*native_non_blocking]]]
+ [[link boost_asio.reference.basic_raw_socket.native_non_blocking [*native_non_blocking]]]
     [Gets the non-blocking mode of the native socket implementation.
 
      Sets the non-blocking mode of the native socket implementation. ]
   ]
   
   [
- [[link boost_asio.reference.basic_stream_socket.non_blocking [*non_blocking]]]
+ [[link boost_asio.reference.basic_raw_socket.non_blocking [*non_blocking]]]
     [Gets the non-blocking mode of the socket.
 
      Sets the non-blocking mode of the socket. ]
   ]
   
   [
- [[link boost_asio.reference.basic_stream_socket.open [*open]]]
+ [[link boost_asio.reference.basic_raw_socket.open [*open]]]
     [Open the socket using the specified protocol. ]
   ]
   
   [
- [[link boost_asio.reference.basic_stream_socket.operator_eq_ [*operator=]]]
- [Move-assign a basic_stream_socket from another. ]
+ [[link boost_asio.reference.basic_raw_socket.operator_eq_ [*operator=]]]
+ [Move-assign a basic_raw_socket from another. ]
   ]
   
   [
- [[link boost_asio.reference.basic_stream_socket.read_some [*read_some]]]
- [Read some data from the socket. ]
+ [[link boost_asio.reference.basic_raw_socket.receive [*receive]]]
+ [Receive some data on a connected socket. ]
   ]
   
   [
- [[link boost_asio.reference.basic_stream_socket.receive [*receive]]]
- [Receive some data on the socket.
-
- Receive some data on a connected socket. ]
+ [[link boost_asio.reference.basic_raw_socket.receive_from [*receive_from]]]
+ [Receive raw data with the endpoint of the sender. ]
   ]
   
   [
- [[link boost_asio.reference.basic_stream_socket.remote_endpoint [*remote_endpoint]]]
+ [[link boost_asio.reference.basic_raw_socket.remote_endpoint [*remote_endpoint]]]
     [Get the remote endpoint of the socket. ]
   ]
   
   [
- [[link boost_asio.reference.basic_stream_socket.send [*send]]]
- [Send some data on the socket. ]
+ [[link boost_asio.reference.basic_raw_socket.send [*send]]]
+ [Send some data on a connected socket. ]
   ]
   
   [
- [[link boost_asio.reference.basic_stream_socket.set_option [*set_option]]]
- [Set an option on the socket. ]
+ [[link boost_asio.reference.basic_raw_socket.send_to [*send_to]]]
+ [Send raw data to the specified endpoint. ]
   ]
   
   [
- [[link boost_asio.reference.basic_stream_socket.shutdown [*shutdown]]]
- [Disable sends or receives on the socket. ]
+ [[link boost_asio.reference.basic_raw_socket.set_option [*set_option]]]
+ [Set an option on the socket. ]
   ]
   
   [
- [[link boost_asio.reference.basic_stream_socket.write_some [*write_some]]]
- [Write some data to the socket. ]
+ [[link boost_asio.reference.basic_raw_socket.shutdown [*shutdown]]]
+ [Disable sends or receives on the socket. ]
   ]
   
 ]
@@ -63627,12 +62578,12 @@
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.basic_stream_socket.get_implementation [*get_implementation]]]
+ [[link boost_asio.reference.basic_raw_socket.get_implementation [*get_implementation]]]
     [Get the underlying implementation of the I/O object. ]
   ]
   
   [
- [[link boost_asio.reference.basic_stream_socket.get_service [*get_service]]]
+ [[link boost_asio.reference.basic_raw_socket.get_service [*get_service]]]
     [Get the service associated with the I/O object. ]
   ]
   
@@ -63643,27 +62594,27 @@
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.basic_stream_socket.max_connections [*max_connections]]]
+ [[link boost_asio.reference.basic_raw_socket.max_connections [*max_connections]]]
     [The maximum length of the queue of pending incoming connections. ]
   ]
 
   [
- [[link boost_asio.reference.basic_stream_socket.message_do_not_route [*message_do_not_route]]]
+ [[link boost_asio.reference.basic_raw_socket.message_do_not_route [*message_do_not_route]]]
     [Specify that the data should not be subject to routing. ]
   ]
 
   [
- [[link boost_asio.reference.basic_stream_socket.message_end_of_record [*message_end_of_record]]]
+ [[link boost_asio.reference.basic_raw_socket.message_end_of_record [*message_end_of_record]]]
     [Specifies that the data marks the end of a record. ]
   ]
 
   [
- [[link boost_asio.reference.basic_stream_socket.message_out_of_band [*message_out_of_band]]]
+ [[link boost_asio.reference.basic_raw_socket.message_out_of_band [*message_out_of_band]]]
     [Process out-of-band data. ]
   ]
 
   [
- [[link boost_asio.reference.basic_stream_socket.message_peek [*message_peek]]]
+ [[link boost_asio.reference.basic_raw_socket.message_peek [*message_peek]]]
     [Peek at incoming data without removing it from the input queue. ]
   ]
 
@@ -63674,33 +62625,32 @@
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.basic_stream_socket.implementation [*implementation]]]
+ [[link boost_asio.reference.basic_raw_socket.implementation [*implementation]]]
     [(Deprecated: Use get_implementation().) The underlying implementation of the I/O object. ]
   ]
 
   [
- [[link boost_asio.reference.basic_stream_socket.service [*service]]]
+ [[link boost_asio.reference.basic_raw_socket.service [*service]]]
     [(Deprecated: Use get_service().) The service associated with the I/O object. ]
   ]
 
 ]
 
-The [link boost_asio.reference.basic_stream_socket `basic_stream_socket`] class template provides asynchronous and blocking stream-oriented socket functionality.
+The [link boost_asio.reference.basic_raw_socket `basic_raw_socket`] class template provides asynchronous and blocking raw-oriented socket functionality.
 
 
 [heading Thread Safety]
   
 [*Distinct] [*objects:] Safe.
 
-[*Shared] [*objects:] Unsafe.
-
+[*Shared] [*objects:] Unsafe.
 
 
 
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/ip/tcp.hpp]
+[*Header: ][^boost/asio/ip/icmp.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
@@ -63709,9 +62659,9 @@
 
 
 
-[section:type ip::tcp::type]
+[section:type ip::icmp::type]
 
-[indexterm2 type..ip::tcp]
+[indexterm2 type..ip::icmp]
 Obtain an identifier for the type of the protocol.
 
 
@@ -63723,13 +62673,13 @@
 
 
 
-[section:v4 ip::tcp::v4]
+[section:v4 ip::icmp::v4]
 
-[indexterm2 v4..ip::tcp]
-Construct to represent the IPv4 TCP protocol.
+[indexterm2 v4..ip::icmp]
+Construct to represent the IPv4 ICMP protocol.
 
 
- static tcp v4();
+ static icmp v4();
 
 
 
@@ -63737,13 +62687,13 @@
 
 
 
-[section:v6 ip::tcp::v6]
+[section:v6 ip::icmp::v6]
 
-[indexterm2 v6..ip::tcp]
-Construct to represent the IPv6 TCP protocol.
+[indexterm2 v6..ip::icmp]
+Construct to represent the IPv6 ICMP protocol.
 
 
- static tcp v6();
+ static icmp v6();
 
 
 
@@ -63753,253 +62703,134 @@
 
 [endsect]
 
-[section:ip__udp ip::udp]
-
 
-Encapsulates the flags needed for UDP.
+[section:ip__multicast__enable_loopback ip::multicast::enable_loopback]
 
+[indexterm1 ip::multicast::enable_loopback]
+Socket option determining whether outgoing multicast packets will be received on the same socket if it is a member of the multicast group.
 
- class udp
 
+ typedef implementation_defined enable_loopback;
 
-[heading Types]
-[table
- [[Name][Description]]
 
- [
 
- [[link boost_asio.reference.ip__udp.endpoint [*endpoint]]]
- [The type of a UDP endpoint. ]
-
- ]
+Implements the IPPROTO\_IP/IP\_MULTICAST\_LOOP socket option.
 
- [
 
- [[link boost_asio.reference.ip__udp.resolver [*resolver]]]
- [The UDP resolver type. ]
+[heading Examples]
   
- ]
-
- [
+Setting the option:
 
- [[link boost_asio.reference.ip__udp.socket [*socket]]]
- [The UDP socket type. ]
-
- ]
+ boost::asio::ip::udp::socket socket(io_service);
+ ...
+ boost::asio::ip::multicast::enable_loopback option(true);
+ socket.set_option(option);
 
-]
 
-[heading Member Functions]
-[table
- [[Name][Description]]
 
- [
- [[link boost_asio.reference.ip__udp.family [*family]]]
- [Obtain an identifier for the protocol family. ]
- ]
-
- [
- [[link boost_asio.reference.ip__udp.protocol [*protocol]]]
- [Obtain an identifier for the protocol. ]
- ]
-
- [
- [[link boost_asio.reference.ip__udp.type [*type]]]
- [Obtain an identifier for the type of the protocol. ]
- ]
-
- [
- [[link boost_asio.reference.ip__udp.v4 [*v4]]]
- [Construct to represent the IPv4 UDP protocol. ]
- ]
-
- [
- [[link boost_asio.reference.ip__udp.v6 [*v6]]]
- [Construct to represent the IPv6 UDP protocol. ]
- ]
-
-]
 
-[heading Friends]
-[table
- [[Name][Description]]
 
- [
- [[link boost_asio.reference.ip__udp.operator_not__eq_ [*operator!=]]]
- [Compare two protocols for inequality. ]
- ]
-
- [
- [[link boost_asio.reference.ip__udp.operator_eq__eq_ [*operator==]]]
- [Compare two protocols for equality. ]
- ]
-
-]
+Getting the current option value:
 
-The [link boost_asio.reference.ip__udp `ip::udp`] class contains flags necessary for UDP sockets.
+ boost::asio::ip::udp::socket socket(io_service);
+ ...
+ boost::asio::ip::multicast::enable_loopback option;
+ socket.get_option(option);
+ bool is_set = option.value();
 
 
-[heading Thread Safety]
-
-[*Distinct] [*objects:] Safe.
 
-[*Shared] [*objects:] Safe.
 
 
 
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/ip/udp.hpp]
+[*Header: ][^boost/asio/ip/multicast.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
 
-[section:endpoint ip::udp::endpoint]
+[endsect]
 
-[indexterm2 endpoint..ip::udp]
-The type of a UDP endpoint.
 
 
- typedef basic_endpoint< udp > endpoint;
+[section:ip__multicast__hops ip::multicast::hops]
 
+[indexterm1 ip::multicast::hops]
+Socket option for time-to-live associated with outgoing multicast packets.
 
-[heading Types]
-[table
- [[Name][Description]]
 
- [
+ typedef implementation_defined hops;
 
- [[link boost_asio.reference.ip__basic_endpoint.data_type [*data_type]]]
- [The type of the endpoint structure. This type is dependent on the underlying implementation of the socket layer. ]
-
- ]
 
- [
 
- [[link boost_asio.reference.ip__basic_endpoint.protocol_type [*protocol_type]]]
- [The protocol type associated with the endpoint. ]
+Implements the IPPROTO\_IP/IP\_MULTICAST\_TTL socket option.
+
+
+[heading Examples]
   
- ]
+Setting the option:
 
-]
+ boost::asio::ip::udp::socket socket(io_service);
+ ...
+ boost::asio::ip::multicast::hops option(4);
+ socket.set_option(option);
 
-[heading Member Functions]
-[table
- [[Name][Description]]
 
- [
- [[link boost_asio.reference.ip__basic_endpoint.address [*address]]]
- [Get the IP address associated with the endpoint.
 
- Set the IP address associated with the endpoint. ]
- ]
-
- [
- [[link boost_asio.reference.ip__basic_endpoint.basic_endpoint [*basic_endpoint]]]
- [Default constructor.
 
- Construct an endpoint using a port number, specified in the host's byte order. The IP address will be the any address (i.e. INADDR_ANY or in6addr_any). This constructor would typically be used for accepting new connections.
 
- Construct an endpoint using a port number and an IP address. This constructor may be used for accepting connections on a specific interface or for making a connection to a remote endpoint.
+Getting the current option value:
 
- Copy constructor. ]
- ]
-
- [
- [[link boost_asio.reference.ip__basic_endpoint.capacity [*capacity]]]
- [Get the capacity of the endpoint in the native type. ]
- ]
-
- [
- [[link boost_asio.reference.ip__basic_endpoint.data [*data]]]
- [Get the underlying endpoint in the native type. ]
- ]
-
- [
- [[link boost_asio.reference.ip__basic_endpoint.operator_eq_ [*operator=]]]
- [Assign from another endpoint. ]
- ]
-
- [
- [[link boost_asio.reference.ip__basic_endpoint.port [*port]]]
- [Get the port associated with the endpoint. The port number is always in the host's byte order.
+ boost::asio::ip::udp::socket socket(io_service);
+ ...
+ boost::asio::ip::multicast::hops option;
+ socket.get_option(option);
+ int ttl = option.value();
 
- Set the port associated with the endpoint. The port number is always in the host's byte order. ]
- ]
-
- [
- [[link boost_asio.reference.ip__basic_endpoint.protocol [*protocol]]]
- [The protocol associated with the endpoint. ]
- ]
-
- [
- [[link boost_asio.reference.ip__basic_endpoint.resize [*resize]]]
- [Set the underlying size of the endpoint in the native type. ]
- ]
-
- [
- [[link boost_asio.reference.ip__basic_endpoint.size [*size]]]
- [Get the underlying size of the endpoint in the native type. ]
- ]
-
-]
 
-[heading Friends]
-[table
- [[Name][Description]]
 
- [
- [[link boost_asio.reference.ip__basic_endpoint.operator_not__eq_ [*operator!=]]]
- [Compare two endpoints for inequality. ]
- ]
-
- [
- [[link boost_asio.reference.ip__basic_endpoint.operator_lt_ [*operator<]]]
- [Compare endpoints for ordering. ]
- ]
-
- [
- [[link boost_asio.reference.ip__basic_endpoint.operator_lt__eq_ [*operator<=]]]
- [Compare endpoints for ordering. ]
- ]
-
- [
- [[link boost_asio.reference.ip__basic_endpoint.operator_eq__eq_ [*operator==]]]
- [Compare two endpoints for equality. ]
- ]
-
- [
- [[link boost_asio.reference.ip__basic_endpoint.operator_gt_ [*operator>]]]
- [Compare endpoints for ordering. ]
- ]
-
- [
- [[link boost_asio.reference.ip__basic_endpoint.operator_gt__eq_ [*operator>=]]]
- [Compare endpoints for ordering. ]
- ]
-
-]
 
-[heading Related Functions]
-[table
- [[Name][Description]]
 
- [
- [[link boost_asio.reference.ip__basic_endpoint.operator_lt__lt_ [*operator<<]]]
- [Output an endpoint as a string. ]
- ]
-
-]
 
-The [link boost_asio.reference.ip__basic_endpoint `ip::basic_endpoint`] class template describes an endpoint that may be associated with a particular socket.
 
+[heading Requirements]
 
-[heading Thread Safety]
+[*Header: ][^boost/asio/ip/multicast.hpp]
+
+[*Convenience header: ][^boost/asio.hpp]
+
+
+[endsect]
+
+
+
+[section:ip__multicast__join_group ip::multicast::join_group]
+
+[indexterm1 ip::multicast::join_group]
+Socket option to join a multicast group on a specified interface.
+
+
+ typedef implementation_defined join_group;
+
+
+
+Implements the IPPROTO\_IP/IP\_ADD\_MEMBERSHIP socket option.
+
+
+[heading Examples]
   
-[*Distinct] [*objects:] Safe.
+Setting the option to join a multicast group:
+
+ boost::asio::ip::udp::socket socket(io_service);
+ ...
+ boost::asio::ip::address multicast_address =
+ boost::asio::ip::address::from_string("225.0.0.1");
+ boost::asio::ip::multicast::join_group option(multicast_address);
+ socket.set_option(option);
+
 
-[*Shared] [*objects:] Unsafe.
 
 
 
@@ -64007,7 +62838,7 @@
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/ip/udp.hpp]
+[*Header: ][^boost/asio/ip/multicast.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
@@ -64016,34 +62847,39 @@
 
 
 
-[section:family ip::udp::family]
+[section:ip__multicast__leave_group ip::multicast::leave_group]
 
-[indexterm2 family..ip::udp]
-Obtain an identifier for the protocol family.
+[indexterm1 ip::multicast::leave_group]
+Socket option to leave a multicast group on a specified interface.
 
 
- int family() const;
+ typedef implementation_defined leave_group;
 
 
 
-[endsect]
+Implements the IPPROTO\_IP/IP\_DROP\_MEMBERSHIP socket option.
 
 
+[heading Examples]
+
+Setting the option to leave a multicast group:
+
+ boost::asio::ip::udp::socket socket(io_service);
+ ...
+ boost::asio::ip::address multicast_address =
+ boost::asio::ip::address::from_string("225.0.0.1");
+ boost::asio::ip::multicast::leave_group option(multicast_address);
+ socket.set_option(option);
+
 
-[section:operator_not__eq_ ip::udp::operator!=]
 
-[indexterm2 operator!=..ip::udp]
-Compare two protocols for inequality.
 
 
- friend bool operator!=(
- const udp & p1,
- const udp & p2);
 
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/ip/udp.hpp]
+[*Header: ][^boost/asio/ip/multicast.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
@@ -64052,49 +62888,53 @@
 
 
 
-[section:operator_eq__eq_ ip::udp::operator==]
+[section:ip__multicast__outbound_interface ip::multicast::outbound_interface]
 
-[indexterm2 operator==..ip::udp]
-Compare two protocols for equality.
+[indexterm1 ip::multicast::outbound_interface]
+Socket option for local interface to use for outgoing multicast packets.
 
 
- friend bool operator==(
- const udp & p1,
- const udp & p2);
+ typedef implementation_defined outbound_interface;
 
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/ip/udp.hpp]
+Implements the IPPROTO\_IP/IP\_MULTICAST\_IF socket option.
 
-[*Convenience header: ][^boost/asio.hpp]
 
+[heading Examples]
+
+Setting the option:
 
-[endsect]
+ boost::asio::ip::udp::socket socket(io_service);
+ ...
+ boost::asio::ip::address_v4 local_interface =
+ boost::asio::ip::address_v4::from_string("1.2.3.4");
+ boost::asio::ip::multicast::outbound_interface option(local_interface);
+ socket.set_option(option);
 
 
 
-[section:protocol ip::udp::protocol]
 
-[indexterm2 protocol..ip::udp]
-Obtain an identifier for the protocol.
 
 
- int protocol() const;
 
+[heading Requirements]
+
+[*Header: ][^boost/asio/ip/multicast.hpp]
+
+[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
+[section:ip__resolver_query_base ip::resolver_query_base]
 
-[section:resolver ip::udp::resolver]
 
-[indexterm2 resolver..ip::udp]
-The UDP resolver type.
+The [link boost_asio.reference.ip__resolver_query_base `ip::resolver_query_base`] class is used as a base for the [link boost_asio.reference.ip__basic_resolver_query `ip::basic_resolver_query`] class templates to provide a common place to define the flag constants.
 
 
- typedef basic_resolver< udp > resolver;
+ class resolver_query_base
 
 
 [heading Types]
@@ -64103,130 +62943,127 @@
 
   [
 
- [[link boost_asio.reference.ip__basic_resolver.endpoint_type [*endpoint_type]]]
- [The endpoint type. ]
+ [[link boost_asio.reference.ip__resolver_query_base.flags [*flags]]]
+ [A bitmask type (C++ Std \[lib.bitmask.types\]). ]
   
   ]
 
- [
+]
 
- [[link boost_asio.reference.ip__basic_resolver.implementation_type [*implementation_type]]]
- [The underlying implementation type of I/O object. ]
-
- ]
+[heading Protected Member Functions]
+[table
+ [[Name][Description]]
 
   [
-
- [[link boost_asio.reference.ip__basic_resolver.iterator [*iterator]]]
- [The iterator type. ]
-
+ [[link boost_asio.reference.ip__resolver_query_base._resolver_query_base [*~resolver_query_base]]]
+ [Protected destructor to prevent deletion through this type. ]
   ]
+
+]
 
- [
+[heading Data Members]
+[table
+ [[Name][Description]]
 
- [[link boost_asio.reference.ip__basic_resolver.protocol_type [*protocol_type]]]
- [The protocol type. ]
-
+ [
+ [[link boost_asio.reference.ip__resolver_query_base.address_configured [*address_configured]]]
+ [Only return IPv4 addresses if a non-loopback IPv4 address is configured for the system. Only return IPv6 addresses if a non-loopback IPv6 address is configured for the system. ]
   ]
 
   [
-
- [[link boost_asio.reference.ip__basic_resolver.query [*query]]]
- [The query type. ]
-
+ [[link boost_asio.reference.ip__resolver_query_base.all_matching [*all_matching]]]
+ [If used with v4_mapped, return all matching IPv6 and IPv4 addresses. ]
   ]
 
   [
+ [[link boost_asio.reference.ip__resolver_query_base.canonical_name [*canonical_name]]]
+ [Determine the canonical name of the host specified in the query. ]
+ ]
 
- [[link boost_asio.reference.ip__basic_resolver.service_type [*service_type]]]
- [The type of the service that will be used to provide I/O operations. ]
-
+ [
+ [[link boost_asio.reference.ip__resolver_query_base.numeric_host [*numeric_host]]]
+ [Host name should be treated as a numeric string defining an IPv4 or IPv6 address and no name resolution should be attempted. ]
   ]
 
-]
+ [
+ [[link boost_asio.reference.ip__resolver_query_base.numeric_service [*numeric_service]]]
+ [Service name should be treated as a numeric string defining a port number and no name resolution should be attempted. ]
+ ]
 
-[heading Member Functions]
-[table
- [[Name][Description]]
-
- [
- [[link boost_asio.reference.ip__basic_resolver.async_resolve [*async_resolve]]]
- [Asynchronously perform forward resolution of a query to a list of entries.
-
- Asynchronously perform reverse resolution of an endpoint to a list of entries. ]
- ]
-
- [
- [[link boost_asio.reference.ip__basic_resolver.basic_resolver [*basic_resolver]]]
- [Constructor. ]
- ]
-
   [
- [[link boost_asio.reference.ip__basic_resolver.cancel [*cancel]]]
- [Cancel any asynchronous operations that are waiting on the resolver. ]
+ [[link boost_asio.reference.ip__resolver_query_base.passive [*passive]]]
+ [Indicate that returned endpoint is intended for use as a locally bound socket endpoint. ]
   ]
-
+
   [
- [[link boost_asio.reference.ip__basic_resolver.get_io_service [*get_io_service]]]
- [Get the io_service associated with the object. ]
+ [[link boost_asio.reference.ip__resolver_query_base.v4_mapped [*v4_mapped]]]
+ [If the query protocol family is specified as IPv6, return IPv4-mapped IPv6 addresses on finding no IPv6 addresses. ]
   ]
-
- [
- [[link boost_asio.reference.ip__basic_resolver.resolve [*resolve]]]
- [Perform forward resolution of a query to a list of entries.
 
- Perform reverse resolution of an endpoint to a list of entries. ]
- ]
-
 ]
 
-[heading Protected Member Functions]
-[table
- [[Name][Description]]
+[heading Requirements]
 
- [
- [[link boost_asio.reference.ip__basic_resolver.get_implementation [*get_implementation]]]
- [Get the underlying implementation of the I/O object. ]
- ]
-
- [
- [[link boost_asio.reference.ip__basic_resolver.get_service [*get_service]]]
- [Get the service associated with the I/O object. ]
- ]
-
-]
+[*Header: ][^boost/asio/ip/resolver_query_base.hpp]
 
-[heading Protected Data Members]
-[table
- [[Name][Description]]
+[*Convenience header: ][^boost/asio.hpp]
 
- [
- [[link boost_asio.reference.ip__basic_resolver.implementation [*implementation]]]
- [(Deprecated: Use get_implementation().) The underlying implementation of the I/O object. ]
- ]
 
- [
- [[link boost_asio.reference.ip__basic_resolver.service [*service]]]
- [(Deprecated: Use get_service().) The service associated with the I/O object. ]
- ]
+[section:address_configured ip::resolver_query_base::address_configured]
 
-]
+[indexterm2 address_configured..ip::resolver_query_base]
+Only return IPv4 addresses if a non-loopback IPv4 address is configured for the system. Only return IPv6 addresses if a non-loopback IPv6 address is configured for the system.
 
-The [link boost_asio.reference.ip__basic_resolver `ip::basic_resolver`] class template provides the ability to resolve a query to a list of endpoints.
 
+ static const flags address_configured = implementation_defined;
 
-[heading Thread Safety]
-
-[*Distinct] [*objects:] Safe.
 
-[*Shared] [*objects:] Unsafe.
+
+[endsect]
+
+
+
+[section:all_matching ip::resolver_query_base::all_matching]
+
+[indexterm2 all_matching..ip::resolver_query_base]
+If used with v4\_mapped, return all matching IPv6 and IPv4 addresses.
+
+
+ static const flags all_matching = implementation_defined;
+
+
+
+[endsect]
+
+
+
+[section:canonical_name ip::resolver_query_base::canonical_name]
+
+[indexterm2 canonical_name..ip::resolver_query_base]
+Determine the canonical name of the host specified in the query.
+
+
+ static const flags canonical_name = implementation_defined;
+
+
+
+[endsect]
+
+
+
+[section:flags ip::resolver_query_base::flags]
+
+[indexterm2 flags..ip::resolver_query_base]
+A bitmask type (C++ Std [lib.bitmask.types]).
 
 
+ typedef unspecified flags;
+
 
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/ip/udp.hpp]
+[*Header: ][^boost/asio/ip/resolver_query_base.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
@@ -64235,367 +63072,172 @@
 
 
 
-[section:socket ip::udp::socket]
+[section:numeric_host ip::resolver_query_base::numeric_host]
 
-[indexterm2 socket..ip::udp]
-The UDP socket type.
+[indexterm2 numeric_host..ip::resolver_query_base]
+Host name should be treated as a numeric string defining an IPv4 or IPv6 address and no name resolution should be attempted.
 
 
- typedef basic_datagram_socket< udp > socket;
+ static const flags numeric_host = implementation_defined;
 
 
-[heading Types]
-[table
- [[Name][Description]]
 
- [
+[endsect]
 
- [[link boost_asio.reference.basic_datagram_socket.broadcast [*broadcast]]]
- [Socket option to permit sending of broadcast messages. ]
-
- ]
 
- [
 
- [[link boost_asio.reference.basic_datagram_socket.bytes_readable [*bytes_readable]]]
- [IO control command to get the amount of data that can be read without blocking. ]
-
- ]
+[section:numeric_service ip::resolver_query_base::numeric_service]
 
- [
+[indexterm2 numeric_service..ip::resolver_query_base]
+Service name should be treated as a numeric string defining a port number and no name resolution should be attempted.
 
- [[link boost_asio.reference.basic_datagram_socket.debug [*debug]]]
- [Socket option to enable socket-level debugging. ]
-
- ]
 
- [
+ static const flags numeric_service = implementation_defined;
 
- [[link boost_asio.reference.basic_datagram_socket.do_not_route [*do_not_route]]]
- [Socket option to prevent routing, use local interfaces only. ]
-
- ]
 
- [
 
- [[link boost_asio.reference.basic_datagram_socket.enable_connection_aborted [*enable_connection_aborted]]]
- [Socket option to report aborted connections on accept. ]
-
- ]
+[endsect]
 
- [
 
- [[link boost_asio.reference.basic_datagram_socket.endpoint_type [*endpoint_type]]]
- [The endpoint type. ]
-
- ]
 
- [
+[section:passive ip::resolver_query_base::passive]
 
- [[link boost_asio.reference.basic_datagram_socket.implementation_type [*implementation_type]]]
- [The underlying implementation type of I/O object. ]
-
- ]
+[indexterm2 passive..ip::resolver_query_base]
+Indicate that returned endpoint is intended for use as a locally bound socket endpoint.
 
- [
 
- [[link boost_asio.reference.basic_datagram_socket.keep_alive [*keep_alive]]]
- [Socket option to send keep-alives. ]
-
- ]
+ static const flags passive = implementation_defined;
 
- [
 
- [[link boost_asio.reference.basic_datagram_socket.linger [*linger]]]
- [Socket option to specify whether the socket lingers on close if unsent data is present. ]
-
- ]
 
- [
+[endsect]
 
- [[link boost_asio.reference.basic_datagram_socket.lowest_layer_type [*lowest_layer_type]]]
- [A basic_socket is always the lowest layer. ]
-
- ]
 
- [
 
- [[link boost_asio.reference.basic_datagram_socket.message_flags [*message_flags]]]
- [Bitmask type for flags that can be passed to send and receive operations. ]
-
- ]
+[section:v4_mapped ip::resolver_query_base::v4_mapped]
 
- [
+[indexterm2 v4_mapped..ip::resolver_query_base]
+If the query protocol family is specified as IPv6, return IPv4-mapped IPv6 addresses on finding no IPv6 addresses.
 
- [[link boost_asio.reference.basic_datagram_socket.native_handle_type [*native_handle_type]]]
- [The native representation of a socket. ]
-
- ]
 
- [
+ static const flags v4_mapped = implementation_defined;
 
- [[link boost_asio.reference.basic_datagram_socket.native_type [*native_type]]]
- [(Deprecated: Use native_handle_type.) The native representation of a socket. ]
-
- ]
 
- [
 
- [[link boost_asio.reference.basic_datagram_socket.non_blocking_io [*non_blocking_io]]]
- [(Deprecated: Use non_blocking().) IO control command to set the blocking mode of the socket. ]
-
- ]
+[endsect]
 
- [
 
- [[link boost_asio.reference.basic_datagram_socket.protocol_type [*protocol_type]]]
- [The protocol type. ]
-
- ]
 
- [
+[section:_resolver_query_base ip::resolver_query_base::~resolver_query_base]
 
- [[link boost_asio.reference.basic_datagram_socket.receive_buffer_size [*receive_buffer_size]]]
- [Socket option for the receive buffer size of a socket. ]
-
- ]
+[indexterm2 ~resolver_query_base..ip::resolver_query_base]
+Protected destructor to prevent deletion through this type.
 
- [
 
- [[link boost_asio.reference.basic_datagram_socket.receive_low_watermark [*receive_low_watermark]]]
- [Socket option for the receive low watermark. ]
-
- ]
+ ~resolver_query_base();
 
- [
 
- [[link boost_asio.reference.basic_datagram_socket.reuse_address [*reuse_address]]]
- [Socket option to allow the socket to be bound to an address that is already in use. ]
-
- ]
 
- [
+[endsect]
 
- [[link boost_asio.reference.basic_datagram_socket.send_buffer_size [*send_buffer_size]]]
- [Socket option for the send buffer size of a socket. ]
-
- ]
 
- [
 
- [[link boost_asio.reference.basic_datagram_socket.send_low_watermark [*send_low_watermark]]]
- [Socket option for the send low watermark. ]
-
- ]
+[endsect]
 
- [
+[section:ip__resolver_service ip::resolver_service]
 
- [[link boost_asio.reference.basic_datagram_socket.service_type [*service_type]]]
- [The type of the service that will be used to provide I/O operations. ]
-
- ]
 
- [
+Default service implementation for a resolver.
 
- [[link boost_asio.reference.basic_datagram_socket.shutdown_type [*shutdown_type]]]
- [Different ways a socket may be shutdown. ]
-
- ]
 
-]
+ template<
+ typename ``[link boost_asio.reference.InternetProtocol InternetProtocol]``>
+ class resolver_service :
+ public io_service::service
 
-[heading Member Functions]
+
+[heading Types]
 [table
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.basic_datagram_socket.assign [*assign]]]
- [Assign an existing native socket to the socket. ]
- ]
-
- [
- [[link boost_asio.reference.basic_datagram_socket.async_connect [*async_connect]]]
- [Start an asynchronous connect. ]
- ]
-
- [
- [[link boost_asio.reference.basic_datagram_socket.async_receive [*async_receive]]]
- [Start an asynchronous receive on a connected socket. ]
- ]
-
- [
- [[link boost_asio.reference.basic_datagram_socket.async_receive_from [*async_receive_from]]]
- [Start an asynchronous receive. ]
- ]
-
- [
- [[link boost_asio.reference.basic_datagram_socket.async_send [*async_send]]]
- [Start an asynchronous send on a connected socket. ]
- ]
-
- [
- [[link boost_asio.reference.basic_datagram_socket.async_send_to [*async_send_to]]]
- [Start an asynchronous send. ]
- ]
-
- [
- [[link boost_asio.reference.basic_datagram_socket.at_mark [*at_mark]]]
- [Determine whether the socket is at the out-of-band data mark. ]
- ]
-
- [
- [[link boost_asio.reference.basic_datagram_socket.available [*available]]]
- [Determine the number of bytes available for reading. ]
- ]
-
- [
- [[link boost_asio.reference.basic_datagram_socket.basic_datagram_socket [*basic_datagram_socket]]]
- [Construct a basic_datagram_socket without opening it.
-
- Construct and open a basic_datagram_socket.
-
- Construct a basic_datagram_socket, opening it and binding it to the given local endpoint.
-
- Construct a basic_datagram_socket on an existing native socket.
 
- Move-construct a basic_datagram_socket from another. ]
- ]
-
- [
- [[link boost_asio.reference.basic_datagram_socket.bind [*bind]]]
- [Bind the socket to the given local endpoint. ]
- ]
-
- [
- [[link boost_asio.reference.basic_datagram_socket.cancel [*cancel]]]
- [Cancel all asynchronous operations associated with the socket. ]
- ]
-
- [
- [[link boost_asio.reference.basic_datagram_socket.close [*close]]]
- [Close the socket. ]
- ]
-
- [
- [[link boost_asio.reference.basic_datagram_socket.connect [*connect]]]
- [Connect the socket to the specified endpoint. ]
- ]
-
- [
- [[link boost_asio.reference.basic_datagram_socket.get_io_service [*get_io_service]]]
- [Get the io_service associated with the object. ]
- ]
-
- [
- [[link boost_asio.reference.basic_datagram_socket.get_option [*get_option]]]
- [Get an option from the socket. ]
- ]
+ [[link boost_asio.reference.ip__resolver_service.endpoint_type [*endpoint_type]]]
+ [The endpoint type. ]
   
- [
- [[link boost_asio.reference.basic_datagram_socket.io_control [*io_control]]]
- [Perform an IO control command on the socket. ]
   ]
-
+
   [
- [[link boost_asio.reference.basic_datagram_socket.is_open [*is_open]]]
- [Determine whether the socket is open. ]
- ]
+
+ [[link boost_asio.reference.ip__resolver_service.implementation_type [*implementation_type]]]
+ [The type of a resolver implementation. ]
   
- [
- [[link boost_asio.reference.basic_datagram_socket.local_endpoint [*local_endpoint]]]
- [Get the local endpoint of the socket. ]
   ]
-
- [
- [[link boost_asio.reference.basic_datagram_socket.lowest_layer [*lowest_layer]]]
- [Get a reference to the lowest layer.
 
- Get a const reference to the lowest layer. ]
- ]
-
   [
- [[link boost_asio.reference.basic_datagram_socket.native [*native]]]
- [(Deprecated: Use native_handle().) Get the native socket representation. ]
- ]
+
+ [[link boost_asio.reference.ip__resolver_service.iterator_type [*iterator_type]]]
+ [The iterator type. ]
   
- [
- [[link boost_asio.reference.basic_datagram_socket.native_handle [*native_handle]]]
- [Get the native socket representation. ]
   ]
-
- [
- [[link boost_asio.reference.basic_datagram_socket.native_non_blocking [*native_non_blocking]]]
- [Gets the non-blocking mode of the native socket implementation.
 
- Sets the non-blocking mode of the native socket implementation. ]
- ]
-
   [
- [[link boost_asio.reference.basic_datagram_socket.non_blocking [*non_blocking]]]
- [Gets the non-blocking mode of the socket.
 
- Sets the non-blocking mode of the socket. ]
- ]
+ [[link boost_asio.reference.ip__resolver_service.protocol_type [*protocol_type]]]
+ [The protocol type. ]
   
- [
- [[link boost_asio.reference.basic_datagram_socket.open [*open]]]
- [Open the socket using the specified protocol. ]
   ]
-
+
   [
- [[link boost_asio.reference.basic_datagram_socket.operator_eq_ [*operator=]]]
- [Move-assign a basic_datagram_socket from another. ]
- ]
+
+ [[link boost_asio.reference.ip__resolver_service.query_type [*query_type]]]
+ [The query type. ]
   
- [
- [[link boost_asio.reference.basic_datagram_socket.receive [*receive]]]
- [Receive some data on a connected socket. ]
   ]
-
+
+]
+
+[heading Member Functions]
+[table
+ [[Name][Description]]
+
   [
- [[link boost_asio.reference.basic_datagram_socket.receive_from [*receive_from]]]
- [Receive a datagram with the endpoint of the sender. ]
+ [[link boost_asio.reference.ip__resolver_service.async_resolve [*async_resolve]]]
+ [Asynchronously resolve a query to a list of entries.
+
+ Asynchronously resolve an endpoint to a list of entries. ]
   ]
   
   [
- [[link boost_asio.reference.basic_datagram_socket.remote_endpoint [*remote_endpoint]]]
- [Get the remote endpoint of the socket. ]
+ [[link boost_asio.reference.ip__resolver_service.cancel [*cancel]]]
+ [Cancel pending asynchronous operations. ]
   ]
   
   [
- [[link boost_asio.reference.basic_datagram_socket.send [*send]]]
- [Send some data on a connected socket. ]
+ [[link boost_asio.reference.ip__resolver_service.construct [*construct]]]
+ [Construct a new resolver implementation. ]
   ]
   
   [
- [[link boost_asio.reference.basic_datagram_socket.send_to [*send_to]]]
- [Send a datagram to the specified endpoint. ]
+ [[link boost_asio.reference.ip__resolver_service.destroy [*destroy]]]
+ [Destroy a resolver implementation. ]
   ]
   
   [
- [[link boost_asio.reference.basic_datagram_socket.set_option [*set_option]]]
- [Set an option on the socket. ]
+ [[link boost_asio.reference.ip__resolver_service.get_io_service [*get_io_service]]]
+ [Get the io_service object that owns the service. ]
   ]
   
   [
- [[link boost_asio.reference.basic_datagram_socket.shutdown [*shutdown]]]
- [Disable sends or receives on the socket. ]
- ]
-
-]
-
-[heading Protected Member Functions]
-[table
- [[Name][Description]]
+ [[link boost_asio.reference.ip__resolver_service.resolve [*resolve]]]
+ [Resolve a query to a list of entries.
 
- [
- [[link boost_asio.reference.basic_datagram_socket.get_implementation [*get_implementation]]]
- [Get the underlying implementation of the I/O object. ]
+ Resolve an endpoint to a list of entries. ]
   ]
   
   [
- [[link boost_asio.reference.basic_datagram_socket.get_service [*get_service]]]
- [Get the service associated with the I/O object. ]
+ [[link boost_asio.reference.ip__resolver_service.resolver_service [*resolver_service]]]
+ [Construct a new resolver service for the specified io_service. ]
   ]
   
 ]
@@ -64605,106 +63247,93 @@
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.basic_datagram_socket.max_connections [*max_connections]]]
- [The maximum length of the queue of pending incoming connections. ]
- ]
-
- [
- [[link boost_asio.reference.basic_datagram_socket.message_do_not_route [*message_do_not_route]]]
- [Specify that the data should not be subject to routing. ]
- ]
-
- [
- [[link boost_asio.reference.basic_datagram_socket.message_end_of_record [*message_end_of_record]]]
- [Specifies that the data marks the end of a record. ]
- ]
-
- [
- [[link boost_asio.reference.basic_datagram_socket.message_out_of_band [*message_out_of_band]]]
- [Process out-of-band data. ]
- ]
-
- [
- [[link boost_asio.reference.basic_datagram_socket.message_peek [*message_peek]]]
- [Peek at incoming data without removing it from the input queue. ]
+ [[link boost_asio.reference.ip__resolver_service.id [*id]]]
+ [The unique service identifier. ]
   ]
 
 ]
 
-[heading Protected Data Members]
-[table
- [[Name][Description]]
-
- [
- [[link boost_asio.reference.basic_datagram_socket.implementation [*implementation]]]
- [(Deprecated: Use get_implementation().) The underlying implementation of the I/O object. ]
- ]
-
- [
- [[link boost_asio.reference.basic_datagram_socket.service [*service]]]
- [(Deprecated: Use get_service().) The service associated with the I/O object. ]
- ]
+[heading Requirements]
 
-]
+[*Header: ][^boost/asio/ip/resolver_service.hpp]
 
-The [link boost_asio.reference.basic_datagram_socket `basic_datagram_socket`] class template provides asynchronous and blocking datagram-oriented socket functionality.
+[*Convenience header: ][^boost/asio.hpp]
 
+[section:async_resolve ip::resolver_service::async_resolve]
 
-[heading Thread Safety]
-
-[*Distinct] [*objects:] Safe.
+[indexterm2 async_resolve..ip::resolver_service]
+Asynchronously resolve a query to a list of entries.
 
-[*Shared] [*objects:] Unsafe.
 
+ template<
+ typename ``[link boost_asio.reference.ResolveHandler ResolveHandler]``>
+ void ``[link boost_asio.reference.ip__resolver_service.async_resolve.overload1 async_resolve]``(
+ implementation_type & impl,
+ const query_type & query,
+ ResolveHandler handler);
+ `` [''''&raquo;''' [link boost_asio.reference.ip__resolver_service.async_resolve.overload1 more...]]``
 
 
+Asynchronously resolve an endpoint to a list of entries.
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/ip/udp.hpp]
+ template<
+ typename ``[link boost_asio.reference.ResolveHandler ResolveHandler]``>
+ void ``[link boost_asio.reference.ip__resolver_service.async_resolve.overload2 async_resolve]``(
+ implementation_type & impl,
+ const endpoint_type & endpoint,
+ ResolveHandler handler);
+ `` [''''&raquo;''' [link boost_asio.reference.ip__resolver_service.async_resolve.overload2 more...]]``
 
-[*Convenience header: ][^boost/asio.hpp]
 
+[section:overload1 ip::resolver_service::async_resolve (1 of 2 overloads)]
 
-[endsect]
 
+Asynchronously resolve a query to a list of entries.
 
 
-[section:type ip::udp::type]
+ template<
+ typename ``[link boost_asio.reference.ResolveHandler ResolveHandler]``>
+ void async_resolve(
+ implementation_type & impl,
+ const query_type & query,
+ ResolveHandler handler);
 
-[indexterm2 type..ip::udp]
-Obtain an identifier for the type of the protocol.
 
 
- int type() const;
+[endsect]
 
 
 
-[endsect]
+[section:overload2 ip::resolver_service::async_resolve (2 of 2 overloads)]
 
 
+Asynchronously resolve an endpoint to a list of entries.
 
-[section:v4 ip::udp::v4]
 
-[indexterm2 v4..ip::udp]
-Construct to represent the IPv4 UDP protocol.
+ template<
+ typename ``[link boost_asio.reference.ResolveHandler ResolveHandler]``>
+ void async_resolve(
+ implementation_type & impl,
+ const endpoint_type & endpoint,
+ ResolveHandler handler);
 
 
- static udp v4();
 
+[endsect]
 
 
 [endsect]
 
 
+[section:cancel ip::resolver_service::cancel]
 
-[section:v6 ip::udp::v6]
-
-[indexterm2 v6..ip::udp]
-Construct to represent the IPv6 UDP protocol.
+[indexterm2 cancel..ip::resolver_service]
+Cancel pending asynchronous operations.
 
 
- static udp v6();
+ void cancel(
+ implementation_type & impl);
 
 
 
@@ -64712,52 +63341,49 @@
 
 
 
-[endsect]
+[section:construct ip::resolver_service::construct]
 
+[indexterm2 construct..ip::resolver_service]
+Construct a new resolver implementation.
 
-[section:ip__unicast__hops ip::unicast::hops]
 
-[indexterm1 ip::unicast::hops]
-Socket option for time-to-live associated with outgoing unicast packets.
+ void construct(
+ implementation_type & impl);
 
 
- typedef implementation_defined hops;
 
+[endsect]
 
 
-Implements the IPPROTO\_IP/IP\_UNICAST\_TTL socket option.
 
+[section:destroy ip::resolver_service::destroy]
 
-[heading Examples]
-
-Setting the option:
+[indexterm2 destroy..ip::resolver_service]
+Destroy a resolver implementation.
 
- boost::asio::ip::udp::socket socket(io_service);
- ...
- boost::asio::ip::unicast::hops option(4);
- socket.set_option(option);
 
+ void destroy(
+ implementation_type & impl);
 
 
 
+[endsect]
 
-Getting the current option value:
 
- boost::asio::ip::udp::socket socket(io_service);
- ...
- boost::asio::ip::unicast::hops option;
- socket.get_option(option);
- int ttl = option.value();
 
+[section:endpoint_type ip::resolver_service::endpoint_type]
 
+[indexterm2 endpoint_type..ip::resolver_service]
+The endpoint type.
 
 
+ typedef InternetProtocol::endpoint endpoint_type;
 
 
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/ip/unicast.hpp]
+[*Header: ][^boost/asio/ip/resolver_service.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
@@ -64766,49 +63392,50 @@
 
 
 
-[section:ip__v6_only ip::v6_only]
+[section:get_io_service ip::resolver_service::get_io_service]
 
-[indexterm1 ip::v6_only]
-Socket option for determining whether an IPv6 socket supports IPv6 communication only.
 
+['Inherited from io_service.]
 
- typedef implementation_defined v6_only;
+[indexterm2 get_io_service..ip::resolver_service]
+Get the [link boost_asio.reference.io_service `io_service`] object that owns the service.
 
 
+ boost::asio::io_service & get_io_service();
 
-Implements the IPPROTO\_IPV6/IP\_V6ONLY socket option.
 
 
-[heading Examples]
-
-Setting the option:
+[endsect]
+
 
- boost::asio::ip::tcp::socket socket(io_service);
- ...
- boost::asio::ip::v6_only option(true);
- socket.set_option(option);
 
+[section:id ip::resolver_service::id]
 
+[indexterm2 id..ip::resolver_service]
+The unique service identifier.
 
 
+ static boost::asio::io_service::id id;
 
-Getting the current option value:
 
- boost::asio::ip::tcp::socket socket(io_service);
- ...
- boost::asio::ip::v6_only option;
- socket.get_option(option);
- bool v6_only = option.value();
 
+[endsect]
+
+
+
+[section:implementation_type ip::resolver_service::implementation_type]
 
+[indexterm2 implementation_type..ip::resolver_service]
+The type of a resolver implementation.
 
 
+ typedef implementation_defined implementation_type;
 
 
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/ip/v6_only.hpp]
+[*Header: ][^boost/asio/ip/resolver_service.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
@@ -64816,150 +63443,166 @@
 [endsect]
 
 
-[section:is_match_condition is_match_condition]
 
+[section:iterator_type ip::resolver_service::iterator_type]
 
-Type trait used to determine whether a type can be used as a match condition function with read\_until and async\_read\_until.
+[indexterm2 iterator_type..ip::resolver_service]
+The iterator type.
 
 
- template<
- typename T>
- struct is_match_condition
+ typedef basic_resolver_iterator< InternetProtocol > iterator_type;
 
 
-[heading Data Members]
+[heading Types]
 [table
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.is_match_condition.value [*value]]]
- [The value member is true if the type may be used as a match condition. ]
- ]
-
-]
-
-[heading Requirements]
-
-[*Header: ][^boost/asio/read_until.hpp]
-
-[*Convenience header: ][^boost/asio.hpp]
-
-
-[section:value is_match_condition::value]
-
-[indexterm2 value..is_match_condition]
-The value member is true if the type may be used as a match condition.
 
+ [[link boost_asio.reference.ip__basic_resolver_iterator.difference_type [*difference_type]]]
+ [The type used for the distance between two iterators. ]
+
+ ]
 
- static const bool value;
+ [
 
+ [[link boost_asio.reference.ip__basic_resolver_iterator.iterator_category [*iterator_category]]]
+ [The iterator category. ]
+
+ ]
 
+ [
 
-[endsect]
+ [[link boost_asio.reference.ip__basic_resolver_iterator.pointer [*pointer]]]
+ [The type of the result of applying operator->() to the iterator. ]
+
+ ]
 
+ [
 
+ [[link boost_asio.reference.ip__basic_resolver_iterator.reference [*reference]]]
+ [The type of the result of applying operator*() to the iterator. ]
+
+ ]
 
-[endsect]
+ [
 
-[section:is_read_buffered is_read_buffered]
+ [[link boost_asio.reference.ip__basic_resolver_iterator.value_type [*value_type]]]
+ [The type of the value pointed to by the iterator. ]
+
+ ]
 
+]
 
-The [link boost_asio.reference.is_read_buffered `is_read_buffered`] class is a traits class that may be used to determine whether a stream type supports buffering of read data.
+[heading Member Functions]
+[table
+ [[Name][Description]]
 
+ [
+ [[link boost_asio.reference.ip__basic_resolver_iterator.basic_resolver_iterator [*basic_resolver_iterator]]]
+ [Default constructor creates an end iterator. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__basic_resolver_iterator.create [*create]]]
+ [Create an iterator from an addrinfo list returned by getaddrinfo.
 
- template<
- typename Stream>
- class is_read_buffered
+ Create an iterator from an endpoint, host name and service name. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__basic_resolver_iterator.operator__star_ [*operator *]]]
+ [Dereference an iterator. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__basic_resolver_iterator.operator_plus__plus_ [*operator++]]]
+ [Increment operator (prefix).
 
+ Increment operator (postfix). ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__basic_resolver_iterator.operator_arrow_ [*operator->]]]
+ [Dereference an iterator. ]
+ ]
+
+]
 
-[heading Data Members]
+[heading Friends]
 [table
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.is_read_buffered.value [*value]]]
- [The value member is true only if the Stream type supports buffering of read data. ]
+ [[link boost_asio.reference.ip__basic_resolver_iterator.operator_not__eq_ [*operator!=]]]
+ [Test two iterators for inequality. ]
   ]
-
+
+ [
+ [[link boost_asio.reference.ip__basic_resolver_iterator.operator_eq__eq_ [*operator==]]]
+ [Test two iterators for equality. ]
+ ]
+
 ]
 
-[heading Requirements]
-
-[*Header: ][^boost/asio/is_read_buffered.hpp]
-
-[*Convenience header: ][^boost/asio.hpp]
-
-
-[section:value is_read_buffered::value]
+The [link boost_asio.reference.ip__basic_resolver_iterator `ip::basic_resolver_iterator`] class template is used to define iterators over the results returned by a resolver.
 
-[indexterm2 value..is_read_buffered]
-The value member is true only if the Stream type supports buffering of read data.
+The iterator's value\_type, obtained when the iterator is dereferenced, is:
 
+ const basic_resolver_entry<InternetProtocol>
 
- static const bool value;
 
 
 
-[endsect]
 
+[heading Thread Safety]
+
+[*Distinct] [*objects:] Safe.
 
+[*Shared] [*objects:] Unsafe.
 
-[endsect]
 
-[section:is_write_buffered is_write_buffered]
 
 
-The [link boost_asio.reference.is_write_buffered `is_write_buffered`] class is a traits class that may be used to determine whether a stream type supports buffering of written data.
+[heading Requirements]
 
+[*Header: ][^boost/asio/ip/resolver_service.hpp]
 
- template<
- typename Stream>
- class is_write_buffered
+[*Convenience header: ][^boost/asio.hpp]
 
 
-[heading Data Members]
-[table
- [[Name][Description]]
+[endsect]
 
- [
- [[link boost_asio.reference.is_write_buffered.value [*value]]]
- [The value member is true only if the Stream type supports buffering of written data. ]
- ]
 
-]
 
-[heading Requirements]
+[section:protocol_type ip::resolver_service::protocol_type]
 
-[*Header: ][^boost/asio/is_write_buffered.hpp]
+[indexterm2 protocol_type..ip::resolver_service]
+The protocol type.
 
-[*Convenience header: ][^boost/asio.hpp]
 
+ typedef InternetProtocol protocol_type;
 
-[section:value is_write_buffered::value]
 
-[indexterm2 value..is_write_buffered]
-The value member is true only if the Stream type supports buffering of written data.
 
+[heading Requirements]
 
- static const bool value;
+[*Header: ][^boost/asio/ip/resolver_service.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
 
-[endsect]
-
-[section:local__basic_endpoint local::basic_endpoint]
-
+[section:query_type ip::resolver_service::query_type]
 
-Describes an endpoint for a UNIX socket.
+[indexterm2 query_type..ip::resolver_service]
+The query type.
 
 
- template<
- typename ``[link boost_asio.reference.Protocol Protocol]``>
- class basic_endpoint
+ typedef basic_resolver_query< InternetProtocol > query_type;
 
 
 [heading Types]
@@ -64968,15 +63611,15 @@
 
   [
 
- [[link boost_asio.reference.local__basic_endpoint.data_type [*data_type]]]
- [The type of the endpoint structure. This type is dependent on the underlying implementation of the socket layer. ]
+ [[link boost_asio.reference.ip__basic_resolver_query.flags [*flags]]]
+ [A bitmask type (C++ Std \[lib.bitmask.types\]). ]
   
   ]
 
   [
 
- [[link boost_asio.reference.local__basic_endpoint.protocol_type [*protocol_type]]]
- [The protocol type associated with the endpoint. ]
+ [[link boost_asio.reference.ip__basic_resolver_query.protocol_type [*protocol_type]]]
+ [The protocol type associated with the endpoint query. ]
   
   ]
 
@@ -64987,155 +63630,129 @@
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.local__basic_endpoint.basic_endpoint [*basic_endpoint]]]
- [Default constructor.
+ [[link boost_asio.reference.ip__basic_resolver_query.basic_resolver_query [*basic_resolver_query]]]
+ [Construct with specified service name for any protocol.
 
- Construct an endpoint using the specified path name.
+ Construct with specified service name for a given protocol.
 
- Copy constructor. ]
- ]
-
- [
- [[link boost_asio.reference.local__basic_endpoint.capacity [*capacity]]]
- [Get the capacity of the endpoint in the native type. ]
- ]
-
- [
- [[link boost_asio.reference.local__basic_endpoint.data [*data]]]
- [Get the underlying endpoint in the native type. ]
- ]
-
- [
- [[link boost_asio.reference.local__basic_endpoint.operator_eq_ [*operator=]]]
- [Assign from another endpoint. ]
- ]
-
- [
- [[link boost_asio.reference.local__basic_endpoint.path [*path]]]
- [Get the path associated with the endpoint.
+ Construct with specified host name and service name for any protocol.
 
- Set the path associated with the endpoint. ]
+ Construct with specified host name and service name for a given protocol. ]
   ]
   
   [
- [[link boost_asio.reference.local__basic_endpoint.protocol [*protocol]]]
- [The protocol associated with the endpoint. ]
+ [[link boost_asio.reference.ip__basic_resolver_query.hints [*hints]]]
+ [Get the hints associated with the query. ]
   ]
   
   [
- [[link boost_asio.reference.local__basic_endpoint.resize [*resize]]]
- [Set the underlying size of the endpoint in the native type. ]
+ [[link boost_asio.reference.ip__basic_resolver_query.host_name [*host_name]]]
+ [Get the host name associated with the query. ]
   ]
   
   [
- [[link boost_asio.reference.local__basic_endpoint.size [*size]]]
- [Get the underlying size of the endpoint in the native type. ]
+ [[link boost_asio.reference.ip__basic_resolver_query.service_name [*service_name]]]
+ [Get the service name associated with the query. ]
   ]
   
 ]
 
-[heading Friends]
+[heading Data Members]
 [table
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.local__basic_endpoint.operator_not__eq_ [*operator!=]]]
- [Compare two endpoints for inequality. ]
+ [[link boost_asio.reference.ip__basic_resolver_query.address_configured [*address_configured]]]
+ [Only return IPv4 addresses if a non-loopback IPv4 address is configured for the system. Only return IPv6 addresses if a non-loopback IPv6 address is configured for the system. ]
   ]
-
+
   [
- [[link boost_asio.reference.local__basic_endpoint.operator_lt_ [*operator<]]]
- [Compare endpoints for ordering. ]
+ [[link boost_asio.reference.ip__basic_resolver_query.all_matching [*all_matching]]]
+ [If used with v4_mapped, return all matching IPv6 and IPv4 addresses. ]
   ]
-
+
   [
- [[link boost_asio.reference.local__basic_endpoint.operator_lt__eq_ [*operator<=]]]
- [Compare endpoints for ordering. ]
+ [[link boost_asio.reference.ip__basic_resolver_query.canonical_name [*canonical_name]]]
+ [Determine the canonical name of the host specified in the query. ]
   ]
-
+
   [
- [[link boost_asio.reference.local__basic_endpoint.operator_eq__eq_ [*operator==]]]
- [Compare two endpoints for equality. ]
+ [[link boost_asio.reference.ip__basic_resolver_query.numeric_host [*numeric_host]]]
+ [Host name should be treated as a numeric string defining an IPv4 or IPv6 address and no name resolution should be attempted. ]
   ]
-
+
   [
- [[link boost_asio.reference.local__basic_endpoint.operator_gt_ [*operator>]]]
- [Compare endpoints for ordering. ]
+ [[link boost_asio.reference.ip__basic_resolver_query.numeric_service [*numeric_service]]]
+ [Service name should be treated as a numeric string defining a port number and no name resolution should be attempted. ]
   ]
-
+
   [
- [[link boost_asio.reference.local__basic_endpoint.operator_gt__eq_ [*operator>=]]]
- [Compare endpoints for ordering. ]
+ [[link boost_asio.reference.ip__basic_resolver_query.passive [*passive]]]
+ [Indicate that returned endpoint is intended for use as a locally bound socket endpoint. ]
   ]
-
-]
-
-[heading Related Functions]
-[table
- [[Name][Description]]
 
   [
- [[link boost_asio.reference.local__basic_endpoint.operator_lt__lt_ [*operator<<]]]
- [Output an endpoint as a string. ]
+ [[link boost_asio.reference.ip__basic_resolver_query.v4_mapped [*v4_mapped]]]
+ [If the query protocol family is specified as IPv6, return IPv4-mapped IPv6 addresses on finding no IPv6 addresses. ]
   ]
-
+
 ]
 
-The [link boost_asio.reference.local__basic_endpoint `local::basic_endpoint`] class template describes an endpoint that may be associated with a particular UNIX socket.
+The [link boost_asio.reference.ip__basic_resolver_query `ip::basic_resolver_query`] class template describes a query that can be passed to a resolver.
 
 
 [heading Thread Safety]
   
 [*Distinct] [*objects:] Safe.
 
-[*Shared] [*objects:] Unsafe.
+[*Shared] [*objects:] Unsafe.
 
 
 
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/local/basic_endpoint.hpp]
+[*Header: ][^boost/asio/ip/resolver_service.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
-[section:basic_endpoint local::basic_endpoint::basic_endpoint]
-
-[indexterm2 basic_endpoint..local::basic_endpoint]
-Default constructor.
 
-
- ``[link boost_asio.reference.local__basic_endpoint.basic_endpoint.overload1 basic_endpoint]``();
- `` [''''&raquo;''' [link boost_asio.reference.local__basic_endpoint.basic_endpoint.overload1 more...]]``
+[endsect]
 
 
-Construct an endpoint using the specified path name.
+[section:resolve ip::resolver_service::resolve]
 
+[indexterm2 resolve..ip::resolver_service]
+Resolve a query to a list of entries.
 
- ``[link boost_asio.reference.local__basic_endpoint.basic_endpoint.overload2 basic_endpoint]``(
- const char * path_name);
- `` [''''&raquo;''' [link boost_asio.reference.local__basic_endpoint.basic_endpoint.overload2 more...]]``
 
- ``[link boost_asio.reference.local__basic_endpoint.basic_endpoint.overload3 basic_endpoint]``(
- const std::string & path_name);
- `` [''''&raquo;''' [link boost_asio.reference.local__basic_endpoint.basic_endpoint.overload3 more...]]``
+ iterator_type ``[link boost_asio.reference.ip__resolver_service.resolve.overload1 resolve]``(
+ implementation_type & impl,
+ const query_type & query,
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.ip__resolver_service.resolve.overload1 more...]]``
 
 
-Copy constructor.
+Resolve an endpoint to a list of entries.
 
 
- ``[link boost_asio.reference.local__basic_endpoint.basic_endpoint.overload4 basic_endpoint]``(
- const basic_endpoint & other);
- `` [''''&raquo;''' [link boost_asio.reference.local__basic_endpoint.basic_endpoint.overload4 more...]]``
+ iterator_type ``[link boost_asio.reference.ip__resolver_service.resolve.overload2 resolve]``(
+ implementation_type & impl,
+ const endpoint_type & endpoint,
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.ip__resolver_service.resolve.overload2 more...]]``
 
 
-[section:overload1 local::basic_endpoint::basic_endpoint (1 of 4 overloads)]
+[section:overload1 ip::resolver_service::resolve (1 of 2 overloads)]
 
 
-Default constructor.
+Resolve a query to a list of entries.
 
 
- basic_endpoint();
+ iterator_type resolve(
+ implementation_type & impl,
+ const query_type & query,
+ boost::system::error_code & ec);
 
 
 
@@ -65143,29 +63760,33 @@
 
 
 
-[section:overload2 local::basic_endpoint::basic_endpoint (2 of 4 overloads)]
+[section:overload2 ip::resolver_service::resolve (2 of 2 overloads)]
 
 
-Construct an endpoint using the specified path name.
+Resolve an endpoint to a list of entries.
 
 
- basic_endpoint(
- const char * path_name);
+ iterator_type resolve(
+ implementation_type & impl,
+ const endpoint_type & endpoint,
+ boost::system::error_code & ec);
 
 
 
 [endsect]
 
 
+[endsect]
 
-[section:overload3 local::basic_endpoint::basic_endpoint (3 of 4 overloads)]
 
+[section:resolver_service ip::resolver_service::resolver_service]
 
-Construct an endpoint using the specified path name.
+[indexterm2 resolver_service..ip::resolver_service]
+Construct a new resolver service for the specified [link boost_asio.reference.io_service `io_service`].
 
 
- basic_endpoint(
- const std::string & path_name);
+ resolver_service(
+ boost::asio::io_service & io_service);
 
 
 
@@ -65173,92 +63794,4585 @@
 
 
 
-[section:overload4 local::basic_endpoint::basic_endpoint (4 of 4 overloads)]
+[endsect]
 
+[section:ip__tcp ip::tcp]
 
-Copy constructor.
 
+Encapsulates the flags needed for TCP.
 
- basic_endpoint(
- const basic_endpoint & other);
 
+ class tcp
 
 
-[endsect]
+[heading Types]
+[table
+ [[Name][Description]]
 
+ [
 
-[endsect]
+ [[link boost_asio.reference.ip__tcp.acceptor [*acceptor]]]
+ [The TCP acceptor type. ]
+
+ ]
 
+ [
 
-[section:capacity local::basic_endpoint::capacity]
+ [[link boost_asio.reference.ip__tcp.endpoint [*endpoint]]]
+ [The type of a TCP endpoint. ]
+
+ ]
 
-[indexterm2 capacity..local::basic_endpoint]
-Get the capacity of the endpoint in the native type.
+ [
 
+ [[link boost_asio.reference.ip__tcp.iostream [*iostream]]]
+ [The TCP iostream type. ]
+
+ ]
 
- std::size_t capacity() const;
+ [
 
+ [[link boost_asio.reference.ip__tcp.no_delay [*no_delay]]]
+ [Socket option for disabling the Nagle algorithm. ]
+
+ ]
 
+ [
 
-[endsect]
+ [[link boost_asio.reference.ip__tcp.resolver [*resolver]]]
+ [The TCP resolver type. ]
+
+ ]
 
+ [
 
-[section:data local::basic_endpoint::data]
+ [[link boost_asio.reference.ip__tcp.socket [*socket]]]
+ [The TCP socket type. ]
+
+ ]
 
-[indexterm2 data..local::basic_endpoint]
-Get the underlying endpoint in the native type.
+]
 
+[heading Member Functions]
+[table
+ [[Name][Description]]
 
- data_type * ``[link boost_asio.reference.local__basic_endpoint.data.overload1 data]``();
+ [
+ [[link boost_asio.reference.ip__tcp.family [*family]]]
+ [Obtain an identifier for the protocol family. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__tcp.protocol [*protocol]]]
+ [Obtain an identifier for the protocol. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__tcp.type [*type]]]
+ [Obtain an identifier for the type of the protocol. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__tcp.v4 [*v4]]]
+ [Construct to represent the IPv4 TCP protocol. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__tcp.v6 [*v6]]]
+ [Construct to represent the IPv6 TCP protocol. ]
+ ]
+
+]
+
+[heading Friends]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.ip__tcp.operator_not__eq_ [*operator!=]]]
+ [Compare two protocols for inequality. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__tcp.operator_eq__eq_ [*operator==]]]
+ [Compare two protocols for equality. ]
+ ]
+
+]
+
+The [link boost_asio.reference.ip__tcp `ip::tcp`] class contains flags necessary for TCP sockets.
+
+
+[heading Thread Safety]
+
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Safe.
+
+
+
+
+[heading Requirements]
+
+[*Header: ][^boost/asio/ip/tcp.hpp]
+
+[*Convenience header: ][^boost/asio.hpp]
+
+
+[section:acceptor ip::tcp::acceptor]
+
+[indexterm2 acceptor..ip::tcp]
+The TCP acceptor type.
+
+
+ typedef basic_socket_acceptor< tcp > acceptor;
+
+
+[heading Types]
+[table
+ [[Name][Description]]
+
+ [
+
+ [[link boost_asio.reference.basic_socket_acceptor.broadcast [*broadcast]]]
+ [Socket option to permit sending of broadcast messages. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_socket_acceptor.bytes_readable [*bytes_readable]]]
+ [IO control command to get the amount of data that can be read without blocking. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_socket_acceptor.debug [*debug]]]
+ [Socket option to enable socket-level debugging. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_socket_acceptor.do_not_route [*do_not_route]]]
+ [Socket option to prevent routing, use local interfaces only. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_socket_acceptor.enable_connection_aborted [*enable_connection_aborted]]]
+ [Socket option to report aborted connections on accept. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_socket_acceptor.endpoint_type [*endpoint_type]]]
+ [The endpoint type. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_socket_acceptor.implementation_type [*implementation_type]]]
+ [The underlying implementation type of I/O object. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_socket_acceptor.keep_alive [*keep_alive]]]
+ [Socket option to send keep-alives. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_socket_acceptor.linger [*linger]]]
+ [Socket option to specify whether the socket lingers on close if unsent data is present. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_socket_acceptor.message_flags [*message_flags]]]
+ [Bitmask type for flags that can be passed to send and receive operations. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_socket_acceptor.native_handle_type [*native_handle_type]]]
+ [The native representation of an acceptor. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_socket_acceptor.native_type [*native_type]]]
+ [(Deprecated: Use native_handle_type.) The native representation of an acceptor. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_socket_acceptor.non_blocking_io [*non_blocking_io]]]
+ [(Deprecated: Use non_blocking().) IO control command to set the blocking mode of the socket. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_socket_acceptor.protocol_type [*protocol_type]]]
+ [The protocol type. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_socket_acceptor.receive_buffer_size [*receive_buffer_size]]]
+ [Socket option for the receive buffer size of a socket. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_socket_acceptor.receive_low_watermark [*receive_low_watermark]]]
+ [Socket option for the receive low watermark. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_socket_acceptor.reuse_address [*reuse_address]]]
+ [Socket option to allow the socket to be bound to an address that is already in use. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_socket_acceptor.send_buffer_size [*send_buffer_size]]]
+ [Socket option for the send buffer size of a socket. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_socket_acceptor.send_low_watermark [*send_low_watermark]]]
+ [Socket option for the send low watermark. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_socket_acceptor.service_type [*service_type]]]
+ [The type of the service that will be used to provide I/O operations. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_socket_acceptor.shutdown_type [*shutdown_type]]]
+ [Different ways a socket may be shutdown. ]
+
+ ]
+
+]
+
+[heading Member Functions]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.basic_socket_acceptor.accept [*accept]]]
+ [Accept a new connection.
+
+ Accept a new connection and obtain the endpoint of the peer. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_socket_acceptor.assign [*assign]]]
+ [Assigns an existing native acceptor to the acceptor. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_socket_acceptor.async_accept [*async_accept]]]
+ [Start an asynchronous accept. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_socket_acceptor.basic_socket_acceptor [*basic_socket_acceptor]]]
+ [Construct an acceptor without opening it.
+
+ Construct an open acceptor.
+
+ Construct an acceptor opened on the given endpoint.
+
+ Construct a basic_socket_acceptor on an existing native acceptor.
+
+ Move-construct a basic_socket_acceptor from another. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_socket_acceptor.bind [*bind]]]
+ [Bind the acceptor to the given local endpoint. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_socket_acceptor.cancel [*cancel]]]
+ [Cancel all asynchronous operations associated with the acceptor. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_socket_acceptor.close [*close]]]
+ [Close the acceptor. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_socket_acceptor.get_io_service [*get_io_service]]]
+ [Get the io_service associated with the object. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_socket_acceptor.get_option [*get_option]]]
+ [Get an option from the acceptor. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_socket_acceptor.io_control [*io_control]]]
+ [Perform an IO control command on the acceptor. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_socket_acceptor.is_open [*is_open]]]
+ [Determine whether the acceptor is open. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_socket_acceptor.listen [*listen]]]
+ [Place the acceptor into the state where it will listen for new connections. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_socket_acceptor.local_endpoint [*local_endpoint]]]
+ [Get the local endpoint of the acceptor. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_socket_acceptor.native [*native]]]
+ [(Deprecated: Use native_handle().) Get the native acceptor representation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_socket_acceptor.native_handle [*native_handle]]]
+ [Get the native acceptor representation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_socket_acceptor.native_non_blocking [*native_non_blocking]]]
+ [Gets the non-blocking mode of the native acceptor implementation.
+
+ Sets the non-blocking mode of the native acceptor implementation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_socket_acceptor.non_blocking [*non_blocking]]]
+ [Gets the non-blocking mode of the acceptor.
+
+ Sets the non-blocking mode of the acceptor. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_socket_acceptor.open [*open]]]
+ [Open the acceptor using the specified protocol. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_socket_acceptor.operator_eq_ [*operator=]]]
+ [Move-assign a basic_socket_acceptor from another. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_socket_acceptor.set_option [*set_option]]]
+ [Set an option on the acceptor. ]
+ ]
+
+]
+
+[heading Protected Member Functions]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.basic_socket_acceptor.get_implementation [*get_implementation]]]
+ [Get the underlying implementation of the I/O object. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_socket_acceptor.get_service [*get_service]]]
+ [Get the service associated with the I/O object. ]
+ ]
+
+]
+
+[heading Data Members]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.basic_socket_acceptor.max_connections [*max_connections]]]
+ [The maximum length of the queue of pending incoming connections. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_socket_acceptor.message_do_not_route [*message_do_not_route]]]
+ [Specify that the data should not be subject to routing. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_socket_acceptor.message_end_of_record [*message_end_of_record]]]
+ [Specifies that the data marks the end of a record. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_socket_acceptor.message_out_of_band [*message_out_of_band]]]
+ [Process out-of-band data. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_socket_acceptor.message_peek [*message_peek]]]
+ [Peek at incoming data without removing it from the input queue. ]
+ ]
+
+]
+
+[heading Protected Data Members]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.basic_socket_acceptor.implementation [*implementation]]]
+ [(Deprecated: Use get_implementation().) The underlying implementation of the I/O object. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_socket_acceptor.service [*service]]]
+ [(Deprecated: Use get_service().) The service associated with the I/O object. ]
+ ]
+
+]
+
+The [link boost_asio.reference.basic_socket_acceptor `basic_socket_acceptor`] class template is used for accepting new socket connections.
+
+
+[heading Thread Safety]
+
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Unsafe.
+
+
+[heading Example]
+
+Opening a socket acceptor with the SO\_REUSEADDR option enabled:
+
+ boost::asio::ip::tcp::acceptor acceptor(io_service);
+ boost::asio::ip::tcp::endpoint endpoint(boost::asio::ip::tcp::v4(), port);
+ acceptor.open(endpoint.protocol());
+ acceptor.set_option(boost::asio::ip::tcp::acceptor::reuse_address(true));
+ acceptor.bind(endpoint);
+ acceptor.listen();
+
+
+
+
+
+
+
+[heading Requirements]
+
+[*Header: ][^boost/asio/ip/tcp.hpp]
+
+[*Convenience header: ][^boost/asio.hpp]
+
+
+[endsect]
+
+
+
+[section:endpoint ip::tcp::endpoint]
+
+[indexterm2 endpoint..ip::tcp]
+The type of a TCP endpoint.
+
+
+ typedef basic_endpoint< tcp > endpoint;
+
+
+[heading Types]
+[table
+ [[Name][Description]]
+
+ [
+
+ [[link boost_asio.reference.ip__basic_endpoint.data_type [*data_type]]]
+ [The type of the endpoint structure. This type is dependent on the underlying implementation of the socket layer. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.ip__basic_endpoint.protocol_type [*protocol_type]]]
+ [The protocol type associated with the endpoint. ]
+
+ ]
+
+]
+
+[heading Member Functions]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.ip__basic_endpoint.address [*address]]]
+ [Get the IP address associated with the endpoint.
+
+ Set the IP address associated with the endpoint. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__basic_endpoint.basic_endpoint [*basic_endpoint]]]
+ [Default constructor.
+
+ Construct an endpoint using a port number, specified in the host's byte order. The IP address will be the any address (i.e. INADDR_ANY or in6addr_any). This constructor would typically be used for accepting new connections.
+
+ Construct an endpoint using a port number and an IP address. This constructor may be used for accepting connections on a specific interface or for making a connection to a remote endpoint.
+
+ Copy constructor. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__basic_endpoint.capacity [*capacity]]]
+ [Get the capacity of the endpoint in the native type. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__basic_endpoint.data [*data]]]
+ [Get the underlying endpoint in the native type. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__basic_endpoint.operator_eq_ [*operator=]]]
+ [Assign from another endpoint. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__basic_endpoint.port [*port]]]
+ [Get the port associated with the endpoint. The port number is always in the host's byte order.
+
+ Set the port associated with the endpoint. The port number is always in the host's byte order. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__basic_endpoint.protocol [*protocol]]]
+ [The protocol associated with the endpoint. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__basic_endpoint.resize [*resize]]]
+ [Set the underlying size of the endpoint in the native type. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__basic_endpoint.size [*size]]]
+ [Get the underlying size of the endpoint in the native type. ]
+ ]
+
+]
+
+[heading Friends]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.ip__basic_endpoint.operator_not__eq_ [*operator!=]]]
+ [Compare two endpoints for inequality. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__basic_endpoint.operator_lt_ [*operator<]]]
+ [Compare endpoints for ordering. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__basic_endpoint.operator_lt__eq_ [*operator<=]]]
+ [Compare endpoints for ordering. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__basic_endpoint.operator_eq__eq_ [*operator==]]]
+ [Compare two endpoints for equality. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__basic_endpoint.operator_gt_ [*operator>]]]
+ [Compare endpoints for ordering. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__basic_endpoint.operator_gt__eq_ [*operator>=]]]
+ [Compare endpoints for ordering. ]
+ ]
+
+]
+
+[heading Related Functions]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.ip__basic_endpoint.operator_lt__lt_ [*operator<<]]]
+ [Output an endpoint as a string. ]
+ ]
+
+]
+
+The [link boost_asio.reference.ip__basic_endpoint `ip::basic_endpoint`] class template describes an endpoint that may be associated with a particular socket.
+
+
+[heading Thread Safety]
+
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Unsafe.
+
+
+
+
+
+[heading Requirements]
+
+[*Header: ][^boost/asio/ip/tcp.hpp]
+
+[*Convenience header: ][^boost/asio.hpp]
+
+
+[endsect]
+
+
+
+[section:family ip::tcp::family]
+
+[indexterm2 family..ip::tcp]
+Obtain an identifier for the protocol family.
+
+
+ int family() const;
+
+
+
+[endsect]
+
+
+
+[section:iostream ip::tcp::iostream]
+
+[indexterm2 iostream..ip::tcp]
+The TCP iostream type.
+
+
+ typedef basic_socket_iostream< tcp > iostream;
+
+
+[heading Types]
+[table
+ [[Name][Description]]
+
+ [
+
+ [[link boost_asio.reference.basic_socket_iostream.duration_type [*duration_type]]]
+ [The duration type. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_socket_iostream.endpoint_type [*endpoint_type]]]
+ [The endpoint type. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_socket_iostream.time_type [*time_type]]]
+ [The time type. ]
+
+ ]
+
+]
+
+[heading Member Functions]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.basic_socket_iostream.basic_socket_iostream [*basic_socket_iostream]]]
+ [Construct a basic_socket_iostream without establishing a connection.
+
+ Establish a connection to an endpoint corresponding to a resolver query. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_socket_iostream.close [*close]]]
+ [Close the connection. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_socket_iostream.connect [*connect]]]
+ [Establish a connection to an endpoint corresponding to a resolver query. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_socket_iostream.error [*error]]]
+ [Get the last error associated with the stream. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_socket_iostream.expires_at [*expires_at]]]
+ [Get the stream's expiry time as an absolute time.
+
+ Set the stream's expiry time as an absolute time. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_socket_iostream.expires_from_now [*expires_from_now]]]
+ [Get the timer's expiry time relative to now.
+
+ Set the stream's expiry time relative to now. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_socket_iostream.rdbuf [*rdbuf]]]
+ [Return a pointer to the underlying streambuf. ]
+ ]
+
+]
+
+
+[heading Requirements]
+
+[*Header: ][^boost/asio/ip/tcp.hpp]
+
+[*Convenience header: ][^boost/asio.hpp]
+
+
+[endsect]
+
+
+
+[section:no_delay ip::tcp::no_delay]
+
+[indexterm2 no_delay..ip::tcp]
+Socket option for disabling the Nagle algorithm.
+
+
+ typedef implementation_defined no_delay;
+
+
+
+Implements the IPPROTO\_TCP/TCP\_NODELAY socket option.
+
+
+[heading Examples]
+
+Setting the option:
+
+ boost::asio::ip::tcp::socket socket(io_service);
+ ...
+ boost::asio::ip::tcp::no_delay option(true);
+ socket.set_option(option);
+
+
+
+
+
+Getting the current option value:
+
+ boost::asio::ip::tcp::socket socket(io_service);
+ ...
+ boost::asio::ip::tcp::no_delay option;
+ socket.get_option(option);
+ bool is_set = option.value();
+
+
+
+
+
+
+
+[heading Requirements]
+
+[*Header: ][^boost/asio/ip/tcp.hpp]
+
+[*Convenience header: ][^boost/asio.hpp]
+
+
+[endsect]
+
+
+
+[section:operator_not__eq_ ip::tcp::operator!=]
+
+[indexterm2 operator!=..ip::tcp]
+Compare two protocols for inequality.
+
+
+ friend bool operator!=(
+ const tcp & p1,
+ const tcp & p2);
+
+
+[heading Requirements]
+
+[*Header: ][^boost/asio/ip/tcp.hpp]
+
+[*Convenience header: ][^boost/asio.hpp]
+
+
+[endsect]
+
+
+
+[section:operator_eq__eq_ ip::tcp::operator==]
+
+[indexterm2 operator==..ip::tcp]
+Compare two protocols for equality.
+
+
+ friend bool operator==(
+ const tcp & p1,
+ const tcp & p2);
+
+
+[heading Requirements]
+
+[*Header: ][^boost/asio/ip/tcp.hpp]
+
+[*Convenience header: ][^boost/asio.hpp]
+
+
+[endsect]
+
+
+
+[section:protocol ip::tcp::protocol]
+
+[indexterm2 protocol..ip::tcp]
+Obtain an identifier for the protocol.
+
+
+ int protocol() const;
+
+
+
+[endsect]
+
+
+
+[section:resolver ip::tcp::resolver]
+
+[indexterm2 resolver..ip::tcp]
+The TCP resolver type.
+
+
+ typedef basic_resolver< tcp > resolver;
+
+
+[heading Types]
+[table
+ [[Name][Description]]
+
+ [
+
+ [[link boost_asio.reference.ip__basic_resolver.endpoint_type [*endpoint_type]]]
+ [The endpoint type. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.ip__basic_resolver.implementation_type [*implementation_type]]]
+ [The underlying implementation type of I/O object. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.ip__basic_resolver.iterator [*iterator]]]
+ [The iterator type. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.ip__basic_resolver.protocol_type [*protocol_type]]]
+ [The protocol type. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.ip__basic_resolver.query [*query]]]
+ [The query type. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.ip__basic_resolver.service_type [*service_type]]]
+ [The type of the service that will be used to provide I/O operations. ]
+
+ ]
+
+]
+
+[heading Member Functions]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.ip__basic_resolver.async_resolve [*async_resolve]]]
+ [Asynchronously perform forward resolution of a query to a list of entries.
+
+ Asynchronously perform reverse resolution of an endpoint to a list of entries. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__basic_resolver.basic_resolver [*basic_resolver]]]
+ [Constructor. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__basic_resolver.cancel [*cancel]]]
+ [Cancel any asynchronous operations that are waiting on the resolver. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__basic_resolver.get_io_service [*get_io_service]]]
+ [Get the io_service associated with the object. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__basic_resolver.resolve [*resolve]]]
+ [Perform forward resolution of a query to a list of entries.
+
+ Perform reverse resolution of an endpoint to a list of entries. ]
+ ]
+
+]
+
+[heading Protected Member Functions]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.ip__basic_resolver.get_implementation [*get_implementation]]]
+ [Get the underlying implementation of the I/O object. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__basic_resolver.get_service [*get_service]]]
+ [Get the service associated with the I/O object. ]
+ ]
+
+]
+
+[heading Protected Data Members]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.ip__basic_resolver.implementation [*implementation]]]
+ [(Deprecated: Use get_implementation().) The underlying implementation of the I/O object. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__basic_resolver.service [*service]]]
+ [(Deprecated: Use get_service().) The service associated with the I/O object. ]
+ ]
+
+]
+
+The [link boost_asio.reference.ip__basic_resolver `ip::basic_resolver`] class template provides the ability to resolve a query to a list of endpoints.
+
+
+[heading Thread Safety]
+
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Unsafe.
+
+
+
+
+[heading Requirements]
+
+[*Header: ][^boost/asio/ip/tcp.hpp]
+
+[*Convenience header: ][^boost/asio.hpp]
+
+
+[endsect]
+
+
+
+[section:socket ip::tcp::socket]
+
+[indexterm2 socket..ip::tcp]
+The TCP socket type.
+
+
+ typedef basic_stream_socket< tcp > socket;
+
+
+[heading Types]
+[table
+ [[Name][Description]]
+
+ [
+
+ [[link boost_asio.reference.basic_stream_socket.broadcast [*broadcast]]]
+ [Socket option to permit sending of broadcast messages. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_stream_socket.bytes_readable [*bytes_readable]]]
+ [IO control command to get the amount of data that can be read without blocking. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_stream_socket.debug [*debug]]]
+ [Socket option to enable socket-level debugging. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_stream_socket.do_not_route [*do_not_route]]]
+ [Socket option to prevent routing, use local interfaces only. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_stream_socket.enable_connection_aborted [*enable_connection_aborted]]]
+ [Socket option to report aborted connections on accept. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_stream_socket.endpoint_type [*endpoint_type]]]
+ [The endpoint type. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_stream_socket.implementation_type [*implementation_type]]]
+ [The underlying implementation type of I/O object. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_stream_socket.keep_alive [*keep_alive]]]
+ [Socket option to send keep-alives. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_stream_socket.linger [*linger]]]
+ [Socket option to specify whether the socket lingers on close if unsent data is present. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_stream_socket.lowest_layer_type [*lowest_layer_type]]]
+ [A basic_socket is always the lowest layer. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_stream_socket.message_flags [*message_flags]]]
+ [Bitmask type for flags that can be passed to send and receive operations. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_stream_socket.native_handle_type [*native_handle_type]]]
+ [The native representation of a socket. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_stream_socket.native_type [*native_type]]]
+ [(Deprecated: Use native_handle_type.) The native representation of a socket. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_stream_socket.non_blocking_io [*non_blocking_io]]]
+ [(Deprecated: Use non_blocking().) IO control command to set the blocking mode of the socket. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_stream_socket.protocol_type [*protocol_type]]]
+ [The protocol type. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_stream_socket.receive_buffer_size [*receive_buffer_size]]]
+ [Socket option for the receive buffer size of a socket. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_stream_socket.receive_low_watermark [*receive_low_watermark]]]
+ [Socket option for the receive low watermark. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_stream_socket.reuse_address [*reuse_address]]]
+ [Socket option to allow the socket to be bound to an address that is already in use. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_stream_socket.send_buffer_size [*send_buffer_size]]]
+ [Socket option for the send buffer size of a socket. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_stream_socket.send_low_watermark [*send_low_watermark]]]
+ [Socket option for the send low watermark. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_stream_socket.service_type [*service_type]]]
+ [The type of the service that will be used to provide I/O operations. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_stream_socket.shutdown_type [*shutdown_type]]]
+ [Different ways a socket may be shutdown. ]
+
+ ]
+
+]
+
+[heading Member Functions]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.assign [*assign]]]
+ [Assign an existing native socket to the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.async_connect [*async_connect]]]
+ [Start an asynchronous connect. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.async_read_some [*async_read_some]]]
+ [Start an asynchronous read. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.async_receive [*async_receive]]]
+ [Start an asynchronous receive. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.async_send [*async_send]]]
+ [Start an asynchronous send. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.async_write_some [*async_write_some]]]
+ [Start an asynchronous write. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.at_mark [*at_mark]]]
+ [Determine whether the socket is at the out-of-band data mark. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.available [*available]]]
+ [Determine the number of bytes available for reading. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.basic_stream_socket [*basic_stream_socket]]]
+ [Construct a basic_stream_socket without opening it.
+
+ Construct and open a basic_stream_socket.
+
+ Construct a basic_stream_socket, opening it and binding it to the given local endpoint.
+
+ Construct a basic_stream_socket on an existing native socket.
+
+ Move-construct a basic_stream_socket from another. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.bind [*bind]]]
+ [Bind the socket to the given local endpoint. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.cancel [*cancel]]]
+ [Cancel all asynchronous operations associated with the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.close [*close]]]
+ [Close the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.connect [*connect]]]
+ [Connect the socket to the specified endpoint. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.get_io_service [*get_io_service]]]
+ [Get the io_service associated with the object. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.get_option [*get_option]]]
+ [Get an option from the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.io_control [*io_control]]]
+ [Perform an IO control command on the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.is_open [*is_open]]]
+ [Determine whether the socket is open. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.local_endpoint [*local_endpoint]]]
+ [Get the local endpoint of the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.lowest_layer [*lowest_layer]]]
+ [Get a reference to the lowest layer.
+
+ Get a const reference to the lowest layer. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.native [*native]]]
+ [(Deprecated: Use native_handle().) Get the native socket representation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.native_handle [*native_handle]]]
+ [Get the native socket representation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.native_non_blocking [*native_non_blocking]]]
+ [Gets the non-blocking mode of the native socket implementation.
+
+ Sets the non-blocking mode of the native socket implementation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.non_blocking [*non_blocking]]]
+ [Gets the non-blocking mode of the socket.
+
+ Sets the non-blocking mode of the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.open [*open]]]
+ [Open the socket using the specified protocol. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.operator_eq_ [*operator=]]]
+ [Move-assign a basic_stream_socket from another. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.read_some [*read_some]]]
+ [Read some data from the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.receive [*receive]]]
+ [Receive some data on the socket.
+
+ Receive some data on a connected socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.remote_endpoint [*remote_endpoint]]]
+ [Get the remote endpoint of the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.send [*send]]]
+ [Send some data on the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.set_option [*set_option]]]
+ [Set an option on the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.shutdown [*shutdown]]]
+ [Disable sends or receives on the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.write_some [*write_some]]]
+ [Write some data to the socket. ]
+ ]
+
+]
+
+[heading Protected Member Functions]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.get_implementation [*get_implementation]]]
+ [Get the underlying implementation of the I/O object. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.get_service [*get_service]]]
+ [Get the service associated with the I/O object. ]
+ ]
+
+]
+
+[heading Data Members]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.max_connections [*max_connections]]]
+ [The maximum length of the queue of pending incoming connections. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.message_do_not_route [*message_do_not_route]]]
+ [Specify that the data should not be subject to routing. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.message_end_of_record [*message_end_of_record]]]
+ [Specifies that the data marks the end of a record. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.message_out_of_band [*message_out_of_band]]]
+ [Process out-of-band data. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.message_peek [*message_peek]]]
+ [Peek at incoming data without removing it from the input queue. ]
+ ]
+
+]
+
+[heading Protected Data Members]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.implementation [*implementation]]]
+ [(Deprecated: Use get_implementation().) The underlying implementation of the I/O object. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.service [*service]]]
+ [(Deprecated: Use get_service().) The service associated with the I/O object. ]
+ ]
+
+]
+
+The [link boost_asio.reference.basic_stream_socket `basic_stream_socket`] class template provides asynchronous and blocking stream-oriented socket functionality.
+
+
+[heading Thread Safety]
+
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Unsafe.
+
+
+
+
+
+[heading Requirements]
+
+[*Header: ][^boost/asio/ip/tcp.hpp]
+
+[*Convenience header: ][^boost/asio.hpp]
+
+
+[endsect]
+
+
+
+[section:type ip::tcp::type]
+
+[indexterm2 type..ip::tcp]
+Obtain an identifier for the type of the protocol.
+
+
+ int type() const;
+
+
+
+[endsect]
+
+
+
+[section:v4 ip::tcp::v4]
+
+[indexterm2 v4..ip::tcp]
+Construct to represent the IPv4 TCP protocol.
+
+
+ static tcp v4();
+
+
+
+[endsect]
+
+
+
+[section:v6 ip::tcp::v6]
+
+[indexterm2 v6..ip::tcp]
+Construct to represent the IPv6 TCP protocol.
+
+
+ static tcp v6();
+
+
+
+[endsect]
+
+
+
+[endsect]
+
+[section:ip__udp ip::udp]
+
+
+Encapsulates the flags needed for UDP.
+
+
+ class udp
+
+
+[heading Types]
+[table
+ [[Name][Description]]
+
+ [
+
+ [[link boost_asio.reference.ip__udp.endpoint [*endpoint]]]
+ [The type of a UDP endpoint. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.ip__udp.resolver [*resolver]]]
+ [The UDP resolver type. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.ip__udp.socket [*socket]]]
+ [The UDP socket type. ]
+
+ ]
+
+]
+
+[heading Member Functions]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.ip__udp.family [*family]]]
+ [Obtain an identifier for the protocol family. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__udp.protocol [*protocol]]]
+ [Obtain an identifier for the protocol. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__udp.type [*type]]]
+ [Obtain an identifier for the type of the protocol. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__udp.v4 [*v4]]]
+ [Construct to represent the IPv4 UDP protocol. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__udp.v6 [*v6]]]
+ [Construct to represent the IPv6 UDP protocol. ]
+ ]
+
+]
+
+[heading Friends]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.ip__udp.operator_not__eq_ [*operator!=]]]
+ [Compare two protocols for inequality. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__udp.operator_eq__eq_ [*operator==]]]
+ [Compare two protocols for equality. ]
+ ]
+
+]
+
+The [link boost_asio.reference.ip__udp `ip::udp`] class contains flags necessary for UDP sockets.
+
+
+[heading Thread Safety]
+
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Safe.
+
+
+
+
+[heading Requirements]
+
+[*Header: ][^boost/asio/ip/udp.hpp]
+
+[*Convenience header: ][^boost/asio.hpp]
+
+
+[section:endpoint ip::udp::endpoint]
+
+[indexterm2 endpoint..ip::udp]
+The type of a UDP endpoint.
+
+
+ typedef basic_endpoint< udp > endpoint;
+
+
+[heading Types]
+[table
+ [[Name][Description]]
+
+ [
+
+ [[link boost_asio.reference.ip__basic_endpoint.data_type [*data_type]]]
+ [The type of the endpoint structure. This type is dependent on the underlying implementation of the socket layer. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.ip__basic_endpoint.protocol_type [*protocol_type]]]
+ [The protocol type associated with the endpoint. ]
+
+ ]
+
+]
+
+[heading Member Functions]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.ip__basic_endpoint.address [*address]]]
+ [Get the IP address associated with the endpoint.
+
+ Set the IP address associated with the endpoint. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__basic_endpoint.basic_endpoint [*basic_endpoint]]]
+ [Default constructor.
+
+ Construct an endpoint using a port number, specified in the host's byte order. The IP address will be the any address (i.e. INADDR_ANY or in6addr_any). This constructor would typically be used for accepting new connections.
+
+ Construct an endpoint using a port number and an IP address. This constructor may be used for accepting connections on a specific interface or for making a connection to a remote endpoint.
+
+ Copy constructor. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__basic_endpoint.capacity [*capacity]]]
+ [Get the capacity of the endpoint in the native type. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__basic_endpoint.data [*data]]]
+ [Get the underlying endpoint in the native type. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__basic_endpoint.operator_eq_ [*operator=]]]
+ [Assign from another endpoint. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__basic_endpoint.port [*port]]]
+ [Get the port associated with the endpoint. The port number is always in the host's byte order.
+
+ Set the port associated with the endpoint. The port number is always in the host's byte order. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__basic_endpoint.protocol [*protocol]]]
+ [The protocol associated with the endpoint. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__basic_endpoint.resize [*resize]]]
+ [Set the underlying size of the endpoint in the native type. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__basic_endpoint.size [*size]]]
+ [Get the underlying size of the endpoint in the native type. ]
+ ]
+
+]
+
+[heading Friends]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.ip__basic_endpoint.operator_not__eq_ [*operator!=]]]
+ [Compare two endpoints for inequality. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__basic_endpoint.operator_lt_ [*operator<]]]
+ [Compare endpoints for ordering. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__basic_endpoint.operator_lt__eq_ [*operator<=]]]
+ [Compare endpoints for ordering. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__basic_endpoint.operator_eq__eq_ [*operator==]]]
+ [Compare two endpoints for equality. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__basic_endpoint.operator_gt_ [*operator>]]]
+ [Compare endpoints for ordering. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__basic_endpoint.operator_gt__eq_ [*operator>=]]]
+ [Compare endpoints for ordering. ]
+ ]
+
+]
+
+[heading Related Functions]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.ip__basic_endpoint.operator_lt__lt_ [*operator<<]]]
+ [Output an endpoint as a string. ]
+ ]
+
+]
+
+The [link boost_asio.reference.ip__basic_endpoint `ip::basic_endpoint`] class template describes an endpoint that may be associated with a particular socket.
+
+
+[heading Thread Safety]
+
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Unsafe.
+
+
+
+
+
+[heading Requirements]
+
+[*Header: ][^boost/asio/ip/udp.hpp]
+
+[*Convenience header: ][^boost/asio.hpp]
+
+
+[endsect]
+
+
+
+[section:family ip::udp::family]
+
+[indexterm2 family..ip::udp]
+Obtain an identifier for the protocol family.
+
+
+ int family() const;
+
+
+
+[endsect]
+
+
+
+[section:operator_not__eq_ ip::udp::operator!=]
+
+[indexterm2 operator!=..ip::udp]
+Compare two protocols for inequality.
+
+
+ friend bool operator!=(
+ const udp & p1,
+ const udp & p2);
+
+
+[heading Requirements]
+
+[*Header: ][^boost/asio/ip/udp.hpp]
+
+[*Convenience header: ][^boost/asio.hpp]
+
+
+[endsect]
+
+
+
+[section:operator_eq__eq_ ip::udp::operator==]
+
+[indexterm2 operator==..ip::udp]
+Compare two protocols for equality.
+
+
+ friend bool operator==(
+ const udp & p1,
+ const udp & p2);
+
+
+[heading Requirements]
+
+[*Header: ][^boost/asio/ip/udp.hpp]
+
+[*Convenience header: ][^boost/asio.hpp]
+
+
+[endsect]
+
+
+
+[section:protocol ip::udp::protocol]
+
+[indexterm2 protocol..ip::udp]
+Obtain an identifier for the protocol.
+
+
+ int protocol() const;
+
+
+
+[endsect]
+
+
+
+[section:resolver ip::udp::resolver]
+
+[indexterm2 resolver..ip::udp]
+The UDP resolver type.
+
+
+ typedef basic_resolver< udp > resolver;
+
+
+[heading Types]
+[table
+ [[Name][Description]]
+
+ [
+
+ [[link boost_asio.reference.ip__basic_resolver.endpoint_type [*endpoint_type]]]
+ [The endpoint type. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.ip__basic_resolver.implementation_type [*implementation_type]]]
+ [The underlying implementation type of I/O object. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.ip__basic_resolver.iterator [*iterator]]]
+ [The iterator type. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.ip__basic_resolver.protocol_type [*protocol_type]]]
+ [The protocol type. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.ip__basic_resolver.query [*query]]]
+ [The query type. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.ip__basic_resolver.service_type [*service_type]]]
+ [The type of the service that will be used to provide I/O operations. ]
+
+ ]
+
+]
+
+[heading Member Functions]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.ip__basic_resolver.async_resolve [*async_resolve]]]
+ [Asynchronously perform forward resolution of a query to a list of entries.
+
+ Asynchronously perform reverse resolution of an endpoint to a list of entries. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__basic_resolver.basic_resolver [*basic_resolver]]]
+ [Constructor. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__basic_resolver.cancel [*cancel]]]
+ [Cancel any asynchronous operations that are waiting on the resolver. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__basic_resolver.get_io_service [*get_io_service]]]
+ [Get the io_service associated with the object. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__basic_resolver.resolve [*resolve]]]
+ [Perform forward resolution of a query to a list of entries.
+
+ Perform reverse resolution of an endpoint to a list of entries. ]
+ ]
+
+]
+
+[heading Protected Member Functions]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.ip__basic_resolver.get_implementation [*get_implementation]]]
+ [Get the underlying implementation of the I/O object. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__basic_resolver.get_service [*get_service]]]
+ [Get the service associated with the I/O object. ]
+ ]
+
+]
+
+[heading Protected Data Members]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.ip__basic_resolver.implementation [*implementation]]]
+ [(Deprecated: Use get_implementation().) The underlying implementation of the I/O object. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ip__basic_resolver.service [*service]]]
+ [(Deprecated: Use get_service().) The service associated with the I/O object. ]
+ ]
+
+]
+
+The [link boost_asio.reference.ip__basic_resolver `ip::basic_resolver`] class template provides the ability to resolve a query to a list of endpoints.
+
+
+[heading Thread Safety]
+
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Unsafe.
+
+
+
+
+[heading Requirements]
+
+[*Header: ][^boost/asio/ip/udp.hpp]
+
+[*Convenience header: ][^boost/asio.hpp]
+
+
+[endsect]
+
+
+
+[section:socket ip::udp::socket]
+
+[indexterm2 socket..ip::udp]
+The UDP socket type.
+
+
+ typedef basic_datagram_socket< udp > socket;
+
+
+[heading Types]
+[table
+ [[Name][Description]]
+
+ [
+
+ [[link boost_asio.reference.basic_datagram_socket.broadcast [*broadcast]]]
+ [Socket option to permit sending of broadcast messages. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_datagram_socket.bytes_readable [*bytes_readable]]]
+ [IO control command to get the amount of data that can be read without blocking. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_datagram_socket.debug [*debug]]]
+ [Socket option to enable socket-level debugging. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_datagram_socket.do_not_route [*do_not_route]]]
+ [Socket option to prevent routing, use local interfaces only. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_datagram_socket.enable_connection_aborted [*enable_connection_aborted]]]
+ [Socket option to report aborted connections on accept. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_datagram_socket.endpoint_type [*endpoint_type]]]
+ [The endpoint type. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_datagram_socket.implementation_type [*implementation_type]]]
+ [The underlying implementation type of I/O object. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_datagram_socket.keep_alive [*keep_alive]]]
+ [Socket option to send keep-alives. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_datagram_socket.linger [*linger]]]
+ [Socket option to specify whether the socket lingers on close if unsent data is present. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_datagram_socket.lowest_layer_type [*lowest_layer_type]]]
+ [A basic_socket is always the lowest layer. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_datagram_socket.message_flags [*message_flags]]]
+ [Bitmask type for flags that can be passed to send and receive operations. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_datagram_socket.native_handle_type [*native_handle_type]]]
+ [The native representation of a socket. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_datagram_socket.native_type [*native_type]]]
+ [(Deprecated: Use native_handle_type.) The native representation of a socket. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_datagram_socket.non_blocking_io [*non_blocking_io]]]
+ [(Deprecated: Use non_blocking().) IO control command to set the blocking mode of the socket. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_datagram_socket.protocol_type [*protocol_type]]]
+ [The protocol type. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_datagram_socket.receive_buffer_size [*receive_buffer_size]]]
+ [Socket option for the receive buffer size of a socket. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_datagram_socket.receive_low_watermark [*receive_low_watermark]]]
+ [Socket option for the receive low watermark. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_datagram_socket.reuse_address [*reuse_address]]]
+ [Socket option to allow the socket to be bound to an address that is already in use. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_datagram_socket.send_buffer_size [*send_buffer_size]]]
+ [Socket option for the send buffer size of a socket. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_datagram_socket.send_low_watermark [*send_low_watermark]]]
+ [Socket option for the send low watermark. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_datagram_socket.service_type [*service_type]]]
+ [The type of the service that will be used to provide I/O operations. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_datagram_socket.shutdown_type [*shutdown_type]]]
+ [Different ways a socket may be shutdown. ]
+
+ ]
+
+]
+
+[heading Member Functions]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.assign [*assign]]]
+ [Assign an existing native socket to the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.async_connect [*async_connect]]]
+ [Start an asynchronous connect. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.async_receive [*async_receive]]]
+ [Start an asynchronous receive on a connected socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.async_receive_from [*async_receive_from]]]
+ [Start an asynchronous receive. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.async_send [*async_send]]]
+ [Start an asynchronous send on a connected socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.async_send_to [*async_send_to]]]
+ [Start an asynchronous send. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.at_mark [*at_mark]]]
+ [Determine whether the socket is at the out-of-band data mark. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.available [*available]]]
+ [Determine the number of bytes available for reading. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.basic_datagram_socket [*basic_datagram_socket]]]
+ [Construct a basic_datagram_socket without opening it.
+
+ Construct and open a basic_datagram_socket.
+
+ Construct a basic_datagram_socket, opening it and binding it to the given local endpoint.
+
+ Construct a basic_datagram_socket on an existing native socket.
+
+ Move-construct a basic_datagram_socket from another. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.bind [*bind]]]
+ [Bind the socket to the given local endpoint. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.cancel [*cancel]]]
+ [Cancel all asynchronous operations associated with the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.close [*close]]]
+ [Close the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.connect [*connect]]]
+ [Connect the socket to the specified endpoint. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.get_io_service [*get_io_service]]]
+ [Get the io_service associated with the object. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.get_option [*get_option]]]
+ [Get an option from the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.io_control [*io_control]]]
+ [Perform an IO control command on the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.is_open [*is_open]]]
+ [Determine whether the socket is open. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.local_endpoint [*local_endpoint]]]
+ [Get the local endpoint of the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.lowest_layer [*lowest_layer]]]
+ [Get a reference to the lowest layer.
+
+ Get a const reference to the lowest layer. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.native [*native]]]
+ [(Deprecated: Use native_handle().) Get the native socket representation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.native_handle [*native_handle]]]
+ [Get the native socket representation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.native_non_blocking [*native_non_blocking]]]
+ [Gets the non-blocking mode of the native socket implementation.
+
+ Sets the non-blocking mode of the native socket implementation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.non_blocking [*non_blocking]]]
+ [Gets the non-blocking mode of the socket.
+
+ Sets the non-blocking mode of the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.open [*open]]]
+ [Open the socket using the specified protocol. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.operator_eq_ [*operator=]]]
+ [Move-assign a basic_datagram_socket from another. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.receive [*receive]]]
+ [Receive some data on a connected socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.receive_from [*receive_from]]]
+ [Receive a datagram with the endpoint of the sender. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.remote_endpoint [*remote_endpoint]]]
+ [Get the remote endpoint of the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.send [*send]]]
+ [Send some data on a connected socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.send_to [*send_to]]]
+ [Send a datagram to the specified endpoint. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.set_option [*set_option]]]
+ [Set an option on the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.shutdown [*shutdown]]]
+ [Disable sends or receives on the socket. ]
+ ]
+
+]
+
+[heading Protected Member Functions]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.get_implementation [*get_implementation]]]
+ [Get the underlying implementation of the I/O object. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.get_service [*get_service]]]
+ [Get the service associated with the I/O object. ]
+ ]
+
+]
+
+[heading Data Members]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.max_connections [*max_connections]]]
+ [The maximum length of the queue of pending incoming connections. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.message_do_not_route [*message_do_not_route]]]
+ [Specify that the data should not be subject to routing. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.message_end_of_record [*message_end_of_record]]]
+ [Specifies that the data marks the end of a record. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.message_out_of_band [*message_out_of_band]]]
+ [Process out-of-band data. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.message_peek [*message_peek]]]
+ [Peek at incoming data without removing it from the input queue. ]
+ ]
+
+]
+
+[heading Protected Data Members]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.implementation [*implementation]]]
+ [(Deprecated: Use get_implementation().) The underlying implementation of the I/O object. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.service [*service]]]
+ [(Deprecated: Use get_service().) The service associated with the I/O object. ]
+ ]
+
+]
+
+The [link boost_asio.reference.basic_datagram_socket `basic_datagram_socket`] class template provides asynchronous and blocking datagram-oriented socket functionality.
+
+
+[heading Thread Safety]
+
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Unsafe.
+
+
+
+
+[heading Requirements]
+
+[*Header: ][^boost/asio/ip/udp.hpp]
+
+[*Convenience header: ][^boost/asio.hpp]
+
+
+[endsect]
+
+
+
+[section:type ip::udp::type]
+
+[indexterm2 type..ip::udp]
+Obtain an identifier for the type of the protocol.
+
+
+ int type() const;
+
+
+
+[endsect]
+
+
+
+[section:v4 ip::udp::v4]
+
+[indexterm2 v4..ip::udp]
+Construct to represent the IPv4 UDP protocol.
+
+
+ static udp v4();
+
+
+
+[endsect]
+
+
+
+[section:v6 ip::udp::v6]
+
+[indexterm2 v6..ip::udp]
+Construct to represent the IPv6 UDP protocol.
+
+
+ static udp v6();
+
+
+
+[endsect]
+
+
+
+[endsect]
+
+
+[section:ip__unicast__hops ip::unicast::hops]
+
+[indexterm1 ip::unicast::hops]
+Socket option for time-to-live associated with outgoing unicast packets.
+
+
+ typedef implementation_defined hops;
+
+
+
+Implements the IPPROTO\_IP/IP\_UNICAST\_TTL socket option.
+
+
+[heading Examples]
+
+Setting the option:
+
+ boost::asio::ip::udp::socket socket(io_service);
+ ...
+ boost::asio::ip::unicast::hops option(4);
+ socket.set_option(option);
+
+
+
+
+
+Getting the current option value:
+
+ boost::asio::ip::udp::socket socket(io_service);
+ ...
+ boost::asio::ip::unicast::hops option;
+ socket.get_option(option);
+ int ttl = option.value();
+
+
+
+
+
+
+
+[heading Requirements]
+
+[*Header: ][^boost/asio/ip/unicast.hpp]
+
+[*Convenience header: ][^boost/asio.hpp]
+
+
+[endsect]
+
+
+
+[section:ip__v6_only ip::v6_only]
+
+[indexterm1 ip::v6_only]
+Socket option for determining whether an IPv6 socket supports IPv6 communication only.
+
+
+ typedef implementation_defined v6_only;
+
+
+
+Implements the IPPROTO\_IPV6/IP\_V6ONLY socket option.
+
+
+[heading Examples]
+
+Setting the option:
+
+ boost::asio::ip::tcp::socket socket(io_service);
+ ...
+ boost::asio::ip::v6_only option(true);
+ socket.set_option(option);
+
+
+
+
+
+Getting the current option value:
+
+ boost::asio::ip::tcp::socket socket(io_service);
+ ...
+ boost::asio::ip::v6_only option;
+ socket.get_option(option);
+ bool v6_only = option.value();
+
+
+
+
+
+
+
+[heading Requirements]
+
+[*Header: ][^boost/asio/ip/v6_only.hpp]
+
+[*Convenience header: ][^boost/asio.hpp]
+
+
+[endsect]
+
+
+[section:is_match_condition is_match_condition]
+
+
+Type trait used to determine whether a type can be used as a match condition function with read\_until and async\_read\_until.
+
+
+ template<
+ typename T>
+ struct is_match_condition
+
+
+[heading Data Members]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.is_match_condition.value [*value]]]
+ [The value member is true if the type may be used as a match condition. ]
+ ]
+
+]
+
+[heading Requirements]
+
+[*Header: ][^boost/asio/read_until.hpp]
+
+[*Convenience header: ][^boost/asio.hpp]
+
+
+[section:value is_match_condition::value]
+
+[indexterm2 value..is_match_condition]
+The value member is true if the type may be used as a match condition.
+
+
+ static const bool value;
+
+
+
+[endsect]
+
+
+
+[endsect]
+
+[section:is_read_buffered is_read_buffered]
+
+
+The [link boost_asio.reference.is_read_buffered `is_read_buffered`] class is a traits class that may be used to determine whether a stream type supports buffering of read data.
+
+
+ template<
+ typename Stream>
+ class is_read_buffered
+
+
+[heading Data Members]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.is_read_buffered.value [*value]]]
+ [The value member is true only if the Stream type supports buffering of read data. ]
+ ]
+
+]
+
+[heading Requirements]
+
+[*Header: ][^boost/asio/is_read_buffered.hpp]
+
+[*Convenience header: ][^boost/asio.hpp]
+
+
+[section:value is_read_buffered::value]
+
+[indexterm2 value..is_read_buffered]
+The value member is true only if the Stream type supports buffering of read data.
+
+
+ static const bool value;
+
+
+
+[endsect]
+
+
+
+[endsect]
+
+[section:is_write_buffered is_write_buffered]
+
+
+The [link boost_asio.reference.is_write_buffered `is_write_buffered`] class is a traits class that may be used to determine whether a stream type supports buffering of written data.
+
+
+ template<
+ typename Stream>
+ class is_write_buffered
+
+
+[heading Data Members]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.is_write_buffered.value [*value]]]
+ [The value member is true only if the Stream type supports buffering of written data. ]
+ ]
+
+]
+
+[heading Requirements]
+
+[*Header: ][^boost/asio/is_write_buffered.hpp]
+
+[*Convenience header: ][^boost/asio.hpp]
+
+
+[section:value is_write_buffered::value]
+
+[indexterm2 value..is_write_buffered]
+The value member is true only if the Stream type supports buffering of written data.
+
+
+ static const bool value;
+
+
+
+[endsect]
+
+
+
+[endsect]
+
+[section:local__basic_endpoint local::basic_endpoint]
+
+
+Describes an endpoint for a UNIX socket.
+
+
+ template<
+ typename ``[link boost_asio.reference.Protocol Protocol]``>
+ class basic_endpoint
+
+
+[heading Types]
+[table
+ [[Name][Description]]
+
+ [
+
+ [[link boost_asio.reference.local__basic_endpoint.data_type [*data_type]]]
+ [The type of the endpoint structure. This type is dependent on the underlying implementation of the socket layer. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.local__basic_endpoint.protocol_type [*protocol_type]]]
+ [The protocol type associated with the endpoint. ]
+
+ ]
+
+]
+
+[heading Member Functions]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.local__basic_endpoint.basic_endpoint [*basic_endpoint]]]
+ [Default constructor.
+
+ Construct an endpoint using the specified path name.
+
+ Copy constructor. ]
+ ]
+
+ [
+ [[link boost_asio.reference.local__basic_endpoint.capacity [*capacity]]]
+ [Get the capacity of the endpoint in the native type. ]
+ ]
+
+ [
+ [[link boost_asio.reference.local__basic_endpoint.data [*data]]]
+ [Get the underlying endpoint in the native type. ]
+ ]
+
+ [
+ [[link boost_asio.reference.local__basic_endpoint.operator_eq_ [*operator=]]]
+ [Assign from another endpoint. ]
+ ]
+
+ [
+ [[link boost_asio.reference.local__basic_endpoint.path [*path]]]
+ [Get the path associated with the endpoint.
+
+ Set the path associated with the endpoint. ]
+ ]
+
+ [
+ [[link boost_asio.reference.local__basic_endpoint.protocol [*protocol]]]
+ [The protocol associated with the endpoint. ]
+ ]
+
+ [
+ [[link boost_asio.reference.local__basic_endpoint.resize [*resize]]]
+ [Set the underlying size of the endpoint in the native type. ]
+ ]
+
+ [
+ [[link boost_asio.reference.local__basic_endpoint.size [*size]]]
+ [Get the underlying size of the endpoint in the native type. ]
+ ]
+
+]
+
+[heading Friends]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.local__basic_endpoint.operator_not__eq_ [*operator!=]]]
+ [Compare two endpoints for inequality. ]
+ ]
+
+ [
+ [[link boost_asio.reference.local__basic_endpoint.operator_lt_ [*operator<]]]
+ [Compare endpoints for ordering. ]
+ ]
+
+ [
+ [[link boost_asio.reference.local__basic_endpoint.operator_lt__eq_ [*operator<=]]]
+ [Compare endpoints for ordering. ]
+ ]
+
+ [
+ [[link boost_asio.reference.local__basic_endpoint.operator_eq__eq_ [*operator==]]]
+ [Compare two endpoints for equality. ]
+ ]
+
+ [
+ [[link boost_asio.reference.local__basic_endpoint.operator_gt_ [*operator>]]]
+ [Compare endpoints for ordering. ]
+ ]
+
+ [
+ [[link boost_asio.reference.local__basic_endpoint.operator_gt__eq_ [*operator>=]]]
+ [Compare endpoints for ordering. ]
+ ]
+
+]
+
+[heading Related Functions]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.local__basic_endpoint.operator_lt__lt_ [*operator<<]]]
+ [Output an endpoint as a string. ]
+ ]
+
+]
+
+The [link boost_asio.reference.local__basic_endpoint `local::basic_endpoint`] class template describes an endpoint that may be associated with a particular UNIX socket.
+
+
+[heading Thread Safety]
+
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Unsafe.
+
+
+
+
+[heading Requirements]
+
+[*Header: ][^boost/asio/local/basic_endpoint.hpp]
+
+[*Convenience header: ][^boost/asio.hpp]
+
+[section:basic_endpoint local::basic_endpoint::basic_endpoint]
+
+[indexterm2 basic_endpoint..local::basic_endpoint]
+Default constructor.
+
+
+ ``[link boost_asio.reference.local__basic_endpoint.basic_endpoint.overload1 basic_endpoint]``();
+ `` [''''&raquo;''' [link boost_asio.reference.local__basic_endpoint.basic_endpoint.overload1 more...]]``
+
+
+Construct an endpoint using the specified path name.
+
+
+ ``[link boost_asio.reference.local__basic_endpoint.basic_endpoint.overload2 basic_endpoint]``(
+ const char * path_name);
+ `` [''''&raquo;''' [link boost_asio.reference.local__basic_endpoint.basic_endpoint.overload2 more...]]``
+
+ ``[link boost_asio.reference.local__basic_endpoint.basic_endpoint.overload3 basic_endpoint]``(
+ const std::string & path_name);
+ `` [''''&raquo;''' [link boost_asio.reference.local__basic_endpoint.basic_endpoint.overload3 more...]]``
+
+
+Copy constructor.
+
+
+ ``[link boost_asio.reference.local__basic_endpoint.basic_endpoint.overload4 basic_endpoint]``(
+ const basic_endpoint & other);
+ `` [''''&raquo;''' [link boost_asio.reference.local__basic_endpoint.basic_endpoint.overload4 more...]]``
+
+
+[section:overload1 local::basic_endpoint::basic_endpoint (1 of 4 overloads)]
+
+
+Default constructor.
+
+
+ basic_endpoint();
+
+
+
+[endsect]
+
+
+
+[section:overload2 local::basic_endpoint::basic_endpoint (2 of 4 overloads)]
+
+
+Construct an endpoint using the specified path name.
+
+
+ basic_endpoint(
+ const char * path_name);
+
+
+
+[endsect]
+
+
+
+[section:overload3 local::basic_endpoint::basic_endpoint (3 of 4 overloads)]
+
+
+Construct an endpoint using the specified path name.
+
+
+ basic_endpoint(
+ const std::string & path_name);
+
+
+
+[endsect]
+
+
+
+[section:overload4 local::basic_endpoint::basic_endpoint (4 of 4 overloads)]
+
+
+Copy constructor.
+
+
+ basic_endpoint(
+ const basic_endpoint & other);
+
+
+
+[endsect]
+
+
+[endsect]
+
+
+[section:capacity local::basic_endpoint::capacity]
+
+[indexterm2 capacity..local::basic_endpoint]
+Get the capacity of the endpoint in the native type.
+
+
+ std::size_t capacity() const;
+
+
+
+[endsect]
+
+
+[section:data local::basic_endpoint::data]
+
+[indexterm2 data..local::basic_endpoint]
+Get the underlying endpoint in the native type.
+
+
+ data_type * ``[link boost_asio.reference.local__basic_endpoint.data.overload1 data]``();
   `` [''''&raquo;''' [link boost_asio.reference.local__basic_endpoint.data.overload1 more...]]``
 
- const data_type * ``[link boost_asio.reference.local__basic_endpoint.data.overload2 data]``() const;
- `` [''''&raquo;''' [link boost_asio.reference.local__basic_endpoint.data.overload2 more...]]``
+ const data_type * ``[link boost_asio.reference.local__basic_endpoint.data.overload2 data]``() const;
+ `` [''''&raquo;''' [link boost_asio.reference.local__basic_endpoint.data.overload2 more...]]``
+
+
+[section:overload1 local::basic_endpoint::data (1 of 2 overloads)]
+
+
+Get the underlying endpoint in the native type.
+
+
+ data_type * data();
+
+
+
+[endsect]
+
+
+
+[section:overload2 local::basic_endpoint::data (2 of 2 overloads)]
+
+
+Get the underlying endpoint in the native type.
+
+
+ const data_type * data() const;
+
+
+
+[endsect]
+
+
+[endsect]
+
+
+[section:data_type local::basic_endpoint::data_type]
+
+[indexterm2 data_type..local::basic_endpoint]
+The type of the endpoint structure. This type is dependent on the underlying implementation of the socket layer.
+
+
+ typedef implementation_defined data_type;
+
+
+
+[heading Requirements]
+
+[*Header: ][^boost/asio/local/basic_endpoint.hpp]
+
+[*Convenience header: ][^boost/asio.hpp]
+
+
+[endsect]
+
+
+
+[section:operator_not__eq_ local::basic_endpoint::operator!=]
+
+[indexterm2 operator!=..local::basic_endpoint]
+Compare two endpoints for inequality.
+
+
+ friend bool operator!=(
+ const basic_endpoint< Protocol > & e1,
+ const basic_endpoint< Protocol > & e2);
+
+
+[heading Requirements]
+
+[*Header: ][^boost/asio/local/basic_endpoint.hpp]
+
+[*Convenience header: ][^boost/asio.hpp]
+
+
+[endsect]
+
+
+
+[section:operator_lt_ local::basic_endpoint::operator<]
+
+[indexterm2 operator<..local::basic_endpoint]
+Compare endpoints for ordering.
+
+
+ friend bool operator<(
+ const basic_endpoint< Protocol > & e1,
+ const basic_endpoint< Protocol > & e2);
+
+
+[heading Requirements]
+
+[*Header: ][^boost/asio/local/basic_endpoint.hpp]
+
+[*Convenience header: ][^boost/asio.hpp]
+
+
+[endsect]
+
+
+
+[section:operator_lt__lt_ local::basic_endpoint::operator<<]
+
+[indexterm2 operator<<..local::basic_endpoint]
+Output an endpoint as a string.
+
+
+ std::basic_ostream< Elem, Traits > & operator<<(
+ std::basic_ostream< Elem, Traits > & os,
+ const basic_endpoint< Protocol > & endpoint);
+
+
+Used to output a human-readable string for a specified endpoint.
+
+
+[heading Parameters]
+
+
+[variablelist
+
+[[os][The output stream to which the string will be written.]]
+
+[[endpoint][The endpoint to be written.]]
+
+]
+
+
+[heading Return Value]
+
+The output stream.
+
+
+
+
+[endsect]
+
+
+
+[section:operator_lt__eq_ local::basic_endpoint::operator<=]
+
+[indexterm2 operator<=..local::basic_endpoint]
+Compare endpoints for ordering.
+
+
+ friend bool operator<=(
+ const basic_endpoint< Protocol > & e1,
+ const basic_endpoint< Protocol > & e2);
+
+
+[heading Requirements]
+
+[*Header: ][^boost/asio/local/basic_endpoint.hpp]
+
+[*Convenience header: ][^boost/asio.hpp]
+
+
+[endsect]
+
+
+
+[section:operator_eq_ local::basic_endpoint::operator=]
+
+[indexterm2 operator=..local::basic_endpoint]
+Assign from another endpoint.
+
+
+ basic_endpoint & operator=(
+ const basic_endpoint & other);
+
+
+
+[endsect]
+
+
+
+[section:operator_eq__eq_ local::basic_endpoint::operator==]
+
+[indexterm2 operator==..local::basic_endpoint]
+Compare two endpoints for equality.
+
+
+ friend bool operator==(
+ const basic_endpoint< Protocol > & e1,
+ const basic_endpoint< Protocol > & e2);
+
+
+[heading Requirements]
+
+[*Header: ][^boost/asio/local/basic_endpoint.hpp]
+
+[*Convenience header: ][^boost/asio.hpp]
+
+
+[endsect]
+
+
+
+[section:operator_gt_ local::basic_endpoint::operator>]
+
+[indexterm2 operator>..local::basic_endpoint]
+Compare endpoints for ordering.
+
+
+ friend bool operator>(
+ const basic_endpoint< Protocol > & e1,
+ const basic_endpoint< Protocol > & e2);
+
+
+[heading Requirements]
+
+[*Header: ][^boost/asio/local/basic_endpoint.hpp]
+
+[*Convenience header: ][^boost/asio.hpp]
+
+
+[endsect]
+
+
+
+[section:operator_gt__eq_ local::basic_endpoint::operator>=]
+
+[indexterm2 operator>=..local::basic_endpoint]
+Compare endpoints for ordering.
+
+
+ friend bool operator>=(
+ const basic_endpoint< Protocol > & e1,
+ const basic_endpoint< Protocol > & e2);
+
+
+[heading Requirements]
+
+[*Header: ][^boost/asio/local/basic_endpoint.hpp]
+
+[*Convenience header: ][^boost/asio.hpp]
+
+
+[endsect]
+
+
+[section:path local::basic_endpoint::path]
+
+[indexterm2 path..local::basic_endpoint]
+Get the path associated with the endpoint.
+
+
+ std::string ``[link boost_asio.reference.local__basic_endpoint.path.overload1 path]``() const;
+ `` [''''&raquo;''' [link boost_asio.reference.local__basic_endpoint.path.overload1 more...]]``
+
+
+Set the path associated with the endpoint.
+
+
+ void ``[link boost_asio.reference.local__basic_endpoint.path.overload2 path]``(
+ const char * p);
+ `` [''''&raquo;''' [link boost_asio.reference.local__basic_endpoint.path.overload2 more...]]``
+
+ void ``[link boost_asio.reference.local__basic_endpoint.path.overload3 path]``(
+ const std::string & p);
+ `` [''''&raquo;''' [link boost_asio.reference.local__basic_endpoint.path.overload3 more...]]``
+
+
+[section:overload1 local::basic_endpoint::path (1 of 3 overloads)]
+
+
+Get the path associated with the endpoint.
+
+
+ std::string path() const;
+
+
+
+[endsect]
+
+
+
+[section:overload2 local::basic_endpoint::path (2 of 3 overloads)]
+
+
+Set the path associated with the endpoint.
+
+
+ void path(
+ const char * p);
+
+
+
+[endsect]
+
+
+
+[section:overload3 local::basic_endpoint::path (3 of 3 overloads)]
+
+
+Set the path associated with the endpoint.
+
+
+ void path(
+ const std::string & p);
+
+
+
+[endsect]
+
+
+[endsect]
+
+
+[section:protocol local::basic_endpoint::protocol]
+
+[indexterm2 protocol..local::basic_endpoint]
+The protocol associated with the endpoint.
+
+
+ protocol_type protocol() const;
+
+
+
+[endsect]
+
+
+
+[section:protocol_type local::basic_endpoint::protocol_type]
+
+[indexterm2 protocol_type..local::basic_endpoint]
+The protocol type associated with the endpoint.
+
+
+ typedef Protocol protocol_type;
+
+
+
+[heading Requirements]
+
+[*Header: ][^boost/asio/local/basic_endpoint.hpp]
+
+[*Convenience header: ][^boost/asio.hpp]
+
+
+[endsect]
+
+
+
+[section:resize local::basic_endpoint::resize]
+
+[indexterm2 resize..local::basic_endpoint]
+Set the underlying size of the endpoint in the native type.
+
+
+ void resize(
+ std::size_t new_size);
+
+
+
+[endsect]
+
+
+
+[section:size local::basic_endpoint::size]
+
+[indexterm2 size..local::basic_endpoint]
+Get the underlying size of the endpoint in the native type.
+
+
+ std::size_t size() const;
+
+
+
+[endsect]
+
+
+
+[endsect]
+
+[section:local__connect_pair local::connect_pair]
+
+[indexterm1 local::connect_pair]
+Create a pair of connected sockets.
+
+
+ template<
+ typename ``[link boost_asio.reference.Protocol Protocol]``,
+ typename ``[link boost_asio.reference.SocketService SocketService1]``,
+ typename ``[link boost_asio.reference.SocketService SocketService2]``>
+ void ``[link boost_asio.reference.local__connect_pair.overload1 connect_pair]``(
+ basic_socket< Protocol, SocketService1 > & socket1,
+ basic_socket< Protocol, SocketService2 > & socket2);
+ `` [''''&raquo;''' [link boost_asio.reference.local__connect_pair.overload1 more...]]``
+
+ template<
+ typename ``[link boost_asio.reference.Protocol Protocol]``,
+ typename ``[link boost_asio.reference.SocketService SocketService1]``,
+ typename ``[link boost_asio.reference.SocketService SocketService2]``>
+ boost::system::error_code ``[link boost_asio.reference.local__connect_pair.overload2 connect_pair]``(
+ basic_socket< Protocol, SocketService1 > & socket1,
+ basic_socket< Protocol, SocketService2 > & socket2,
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.local__connect_pair.overload2 more...]]``
+
+[heading Requirements]
+
+[*Header: ][^boost/asio/local/connect_pair.hpp]
+
+[*Convenience header: ][^boost/asio.hpp]
+
+
+[section:overload1 local::connect_pair (1 of 2 overloads)]
+
+
+Create a pair of connected sockets.
+
+
+ template<
+ typename ``[link boost_asio.reference.Protocol Protocol]``,
+ typename ``[link boost_asio.reference.SocketService SocketService1]``,
+ typename ``[link boost_asio.reference.SocketService SocketService2]``>
+ void connect_pair(
+ basic_socket< Protocol, SocketService1 > & socket1,
+ basic_socket< Protocol, SocketService2 > & socket2);
+
+
+
+[endsect]
+
+
+
+[section:overload2 local::connect_pair (2 of 2 overloads)]
+
+
+Create a pair of connected sockets.
+
+
+ template<
+ typename ``[link boost_asio.reference.Protocol Protocol]``,
+ typename ``[link boost_asio.reference.SocketService SocketService1]``,
+ typename ``[link boost_asio.reference.SocketService SocketService2]``>
+ boost::system::error_code connect_pair(
+ basic_socket< Protocol, SocketService1 > & socket1,
+ basic_socket< Protocol, SocketService2 > & socket2,
+ boost::system::error_code & ec);
+
+
+
+[endsect]
+
+
+[endsect]
+
+[section:local__datagram_protocol local::datagram_protocol]
+
+
+Encapsulates the flags needed for datagram-oriented UNIX sockets.
+
+
+ class datagram_protocol
+
+
+[heading Types]
+[table
+ [[Name][Description]]
+
+ [
+
+ [[link boost_asio.reference.local__datagram_protocol.endpoint [*endpoint]]]
+ [The type of a UNIX domain endpoint. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.local__datagram_protocol.socket [*socket]]]
+ [The UNIX domain socket type. ]
+
+ ]
+
+]
+
+[heading Member Functions]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.local__datagram_protocol.family [*family]]]
+ [Obtain an identifier for the protocol family. ]
+ ]
+
+ [
+ [[link boost_asio.reference.local__datagram_protocol.protocol [*protocol]]]
+ [Obtain an identifier for the protocol. ]
+ ]
+
+ [
+ [[link boost_asio.reference.local__datagram_protocol.type [*type]]]
+ [Obtain an identifier for the type of the protocol. ]
+ ]
+
+]
+
+The [link boost_asio.reference.local__datagram_protocol `local::datagram_protocol`] class contains flags necessary for datagram-oriented UNIX domain sockets.
+
+
+[heading Thread Safety]
+
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Safe.
+
+
+
+
+[heading Requirements]
+
+[*Header: ][^boost/asio/local/datagram_protocol.hpp]
+
+[*Convenience header: ][^boost/asio.hpp]
+
+
+[section:endpoint local::datagram_protocol::endpoint]
+
+[indexterm2 endpoint..local::datagram_protocol]
+The type of a UNIX domain endpoint.
+
+
+ typedef basic_endpoint< datagram_protocol > endpoint;
+
+
+[heading Types]
+[table
+ [[Name][Description]]
+
+ [
+
+ [[link boost_asio.reference.local__basic_endpoint.data_type [*data_type]]]
+ [The type of the endpoint structure. This type is dependent on the underlying implementation of the socket layer. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.local__basic_endpoint.protocol_type [*protocol_type]]]
+ [The protocol type associated with the endpoint. ]
+
+ ]
+
+]
+
+[heading Member Functions]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.local__basic_endpoint.basic_endpoint [*basic_endpoint]]]
+ [Default constructor.
+
+ Construct an endpoint using the specified path name.
+
+ Copy constructor. ]
+ ]
+
+ [
+ [[link boost_asio.reference.local__basic_endpoint.capacity [*capacity]]]
+ [Get the capacity of the endpoint in the native type. ]
+ ]
+
+ [
+ [[link boost_asio.reference.local__basic_endpoint.data [*data]]]
+ [Get the underlying endpoint in the native type. ]
+ ]
+
+ [
+ [[link boost_asio.reference.local__basic_endpoint.operator_eq_ [*operator=]]]
+ [Assign from another endpoint. ]
+ ]
+
+ [
+ [[link boost_asio.reference.local__basic_endpoint.path [*path]]]
+ [Get the path associated with the endpoint.
+
+ Set the path associated with the endpoint. ]
+ ]
+
+ [
+ [[link boost_asio.reference.local__basic_endpoint.protocol [*protocol]]]
+ [The protocol associated with the endpoint. ]
+ ]
+
+ [
+ [[link boost_asio.reference.local__basic_endpoint.resize [*resize]]]
+ [Set the underlying size of the endpoint in the native type. ]
+ ]
+
+ [
+ [[link boost_asio.reference.local__basic_endpoint.size [*size]]]
+ [Get the underlying size of the endpoint in the native type. ]
+ ]
+
+]
+
+[heading Friends]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.local__basic_endpoint.operator_not__eq_ [*operator!=]]]
+ [Compare two endpoints for inequality. ]
+ ]
+
+ [
+ [[link boost_asio.reference.local__basic_endpoint.operator_lt_ [*operator<]]]
+ [Compare endpoints for ordering. ]
+ ]
+
+ [
+ [[link boost_asio.reference.local__basic_endpoint.operator_lt__eq_ [*operator<=]]]
+ [Compare endpoints for ordering. ]
+ ]
+
+ [
+ [[link boost_asio.reference.local__basic_endpoint.operator_eq__eq_ [*operator==]]]
+ [Compare two endpoints for equality. ]
+ ]
+
+ [
+ [[link boost_asio.reference.local__basic_endpoint.operator_gt_ [*operator>]]]
+ [Compare endpoints for ordering. ]
+ ]
+
+ [
+ [[link boost_asio.reference.local__basic_endpoint.operator_gt__eq_ [*operator>=]]]
+ [Compare endpoints for ordering. ]
+ ]
+
+]
+
+[heading Related Functions]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.local__basic_endpoint.operator_lt__lt_ [*operator<<]]]
+ [Output an endpoint as a string. ]
+ ]
+
+]
+
+The [link boost_asio.reference.local__basic_endpoint `local::basic_endpoint`] class template describes an endpoint that may be associated with a particular UNIX socket.
+
+
+[heading Thread Safety]
+
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Unsafe.
+
+
+
+
+
+[heading Requirements]
+
+[*Header: ][^boost/asio/local/datagram_protocol.hpp]
+
+[*Convenience header: ][^boost/asio.hpp]
+
+
+[endsect]
+
+
+
+[section:family local::datagram_protocol::family]
+
+[indexterm2 family..local::datagram_protocol]
+Obtain an identifier for the protocol family.
+
+
+ int family() const;
+
+
+
+[endsect]
+
+
+
+[section:protocol local::datagram_protocol::protocol]
+
+[indexterm2 protocol..local::datagram_protocol]
+Obtain an identifier for the protocol.
+
+
+ int protocol() const;
+
+
+
+[endsect]
+
+
+
+[section:socket local::datagram_protocol::socket]
+
+[indexterm2 socket..local::datagram_protocol]
+The UNIX domain socket type.
+
+
+ typedef basic_datagram_socket< datagram_protocol > socket;
+
+
+[heading Types]
+[table
+ [[Name][Description]]
+
+ [
+
+ [[link boost_asio.reference.basic_datagram_socket.broadcast [*broadcast]]]
+ [Socket option to permit sending of broadcast messages. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_datagram_socket.bytes_readable [*bytes_readable]]]
+ [IO control command to get the amount of data that can be read without blocking. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_datagram_socket.debug [*debug]]]
+ [Socket option to enable socket-level debugging. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_datagram_socket.do_not_route [*do_not_route]]]
+ [Socket option to prevent routing, use local interfaces only. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_datagram_socket.enable_connection_aborted [*enable_connection_aborted]]]
+ [Socket option to report aborted connections on accept. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_datagram_socket.endpoint_type [*endpoint_type]]]
+ [The endpoint type. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_datagram_socket.implementation_type [*implementation_type]]]
+ [The underlying implementation type of I/O object. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_datagram_socket.keep_alive [*keep_alive]]]
+ [Socket option to send keep-alives. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_datagram_socket.linger [*linger]]]
+ [Socket option to specify whether the socket lingers on close if unsent data is present. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_datagram_socket.lowest_layer_type [*lowest_layer_type]]]
+ [A basic_socket is always the lowest layer. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_datagram_socket.message_flags [*message_flags]]]
+ [Bitmask type for flags that can be passed to send and receive operations. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_datagram_socket.native_handle_type [*native_handle_type]]]
+ [The native representation of a socket. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_datagram_socket.native_type [*native_type]]]
+ [(Deprecated: Use native_handle_type.) The native representation of a socket. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_datagram_socket.non_blocking_io [*non_blocking_io]]]
+ [(Deprecated: Use non_blocking().) IO control command to set the blocking mode of the socket. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_datagram_socket.protocol_type [*protocol_type]]]
+ [The protocol type. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_datagram_socket.receive_buffer_size [*receive_buffer_size]]]
+ [Socket option for the receive buffer size of a socket. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_datagram_socket.receive_low_watermark [*receive_low_watermark]]]
+ [Socket option for the receive low watermark. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_datagram_socket.reuse_address [*reuse_address]]]
+ [Socket option to allow the socket to be bound to an address that is already in use. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_datagram_socket.send_buffer_size [*send_buffer_size]]]
+ [Socket option for the send buffer size of a socket. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_datagram_socket.send_low_watermark [*send_low_watermark]]]
+ [Socket option for the send low watermark. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_datagram_socket.service_type [*service_type]]]
+ [The type of the service that will be used to provide I/O operations. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_datagram_socket.shutdown_type [*shutdown_type]]]
+ [Different ways a socket may be shutdown. ]
+
+ ]
+
+]
+
+[heading Member Functions]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.assign [*assign]]]
+ [Assign an existing native socket to the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.async_connect [*async_connect]]]
+ [Start an asynchronous connect. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.async_receive [*async_receive]]]
+ [Start an asynchronous receive on a connected socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.async_receive_from [*async_receive_from]]]
+ [Start an asynchronous receive. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.async_send [*async_send]]]
+ [Start an asynchronous send on a connected socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.async_send_to [*async_send_to]]]
+ [Start an asynchronous send. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.at_mark [*at_mark]]]
+ [Determine whether the socket is at the out-of-band data mark. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.available [*available]]]
+ [Determine the number of bytes available for reading. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.basic_datagram_socket [*basic_datagram_socket]]]
+ [Construct a basic_datagram_socket without opening it.
+
+ Construct and open a basic_datagram_socket.
+
+ Construct a basic_datagram_socket, opening it and binding it to the given local endpoint.
+
+ Construct a basic_datagram_socket on an existing native socket.
+
+ Move-construct a basic_datagram_socket from another. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.bind [*bind]]]
+ [Bind the socket to the given local endpoint. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.cancel [*cancel]]]
+ [Cancel all asynchronous operations associated with the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.close [*close]]]
+ [Close the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.connect [*connect]]]
+ [Connect the socket to the specified endpoint. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.get_io_service [*get_io_service]]]
+ [Get the io_service associated with the object. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.get_option [*get_option]]]
+ [Get an option from the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.io_control [*io_control]]]
+ [Perform an IO control command on the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.is_open [*is_open]]]
+ [Determine whether the socket is open. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.local_endpoint [*local_endpoint]]]
+ [Get the local endpoint of the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.lowest_layer [*lowest_layer]]]
+ [Get a reference to the lowest layer.
+
+ Get a const reference to the lowest layer. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.native [*native]]]
+ [(Deprecated: Use native_handle().) Get the native socket representation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.native_handle [*native_handle]]]
+ [Get the native socket representation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.native_non_blocking [*native_non_blocking]]]
+ [Gets the non-blocking mode of the native socket implementation.
+
+ Sets the non-blocking mode of the native socket implementation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.non_blocking [*non_blocking]]]
+ [Gets the non-blocking mode of the socket.
+
+ Sets the non-blocking mode of the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.open [*open]]]
+ [Open the socket using the specified protocol. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.operator_eq_ [*operator=]]]
+ [Move-assign a basic_datagram_socket from another. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.receive [*receive]]]
+ [Receive some data on a connected socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.receive_from [*receive_from]]]
+ [Receive a datagram with the endpoint of the sender. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.remote_endpoint [*remote_endpoint]]]
+ [Get the remote endpoint of the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.send [*send]]]
+ [Send some data on a connected socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.send_to [*send_to]]]
+ [Send a datagram to the specified endpoint. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.set_option [*set_option]]]
+ [Set an option on the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.shutdown [*shutdown]]]
+ [Disable sends or receives on the socket. ]
+ ]
+
+]
+
+[heading Protected Member Functions]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.get_implementation [*get_implementation]]]
+ [Get the underlying implementation of the I/O object. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.get_service [*get_service]]]
+ [Get the service associated with the I/O object. ]
+ ]
+
+]
+
+[heading Data Members]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.max_connections [*max_connections]]]
+ [The maximum length of the queue of pending incoming connections. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.message_do_not_route [*message_do_not_route]]]
+ [Specify that the data should not be subject to routing. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.message_end_of_record [*message_end_of_record]]]
+ [Specifies that the data marks the end of a record. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.message_out_of_band [*message_out_of_band]]]
+ [Process out-of-band data. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.message_peek [*message_peek]]]
+ [Peek at incoming data without removing it from the input queue. ]
+ ]
+
+]
+
+[heading Protected Data Members]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.implementation [*implementation]]]
+ [(Deprecated: Use get_implementation().) The underlying implementation of the I/O object. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_datagram_socket.service [*service]]]
+ [(Deprecated: Use get_service().) The service associated with the I/O object. ]
+ ]
+
+]
+
+The [link boost_asio.reference.basic_datagram_socket `basic_datagram_socket`] class template provides asynchronous and blocking datagram-oriented socket functionality.
+
+
+[heading Thread Safety]
+
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Unsafe.
+
+
+
+
+[heading Requirements]
+
+[*Header: ][^boost/asio/local/datagram_protocol.hpp]
+
+[*Convenience header: ][^boost/asio.hpp]
+
+
+[endsect]
+
+
+
+[section:type local::datagram_protocol::type]
+
+[indexterm2 type..local::datagram_protocol]
+Obtain an identifier for the type of the protocol.
+
+
+ int type() const;
+
+
+
+[endsect]
+
+
+
+[endsect]
+
+[section:local__stream_protocol local::stream_protocol]
+
+
+Encapsulates the flags needed for stream-oriented UNIX sockets.
+
+
+ class stream_protocol
+
+
+[heading Types]
+[table
+ [[Name][Description]]
+
+ [
+
+ [[link boost_asio.reference.local__stream_protocol.acceptor [*acceptor]]]
+ [The UNIX domain acceptor type. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.local__stream_protocol.endpoint [*endpoint]]]
+ [The type of a UNIX domain endpoint. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.local__stream_protocol.iostream [*iostream]]]
+ [The UNIX domain iostream type. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.local__stream_protocol.socket [*socket]]]
+ [The UNIX domain socket type. ]
+
+ ]
+
+]
+
+[heading Member Functions]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.local__stream_protocol.family [*family]]]
+ [Obtain an identifier for the protocol family. ]
+ ]
+
+ [
+ [[link boost_asio.reference.local__stream_protocol.protocol [*protocol]]]
+ [Obtain an identifier for the protocol. ]
+ ]
+
+ [
+ [[link boost_asio.reference.local__stream_protocol.type [*type]]]
+ [Obtain an identifier for the type of the protocol. ]
+ ]
+
+]
+
+The [link boost_asio.reference.local__stream_protocol `local::stream_protocol`] class contains flags necessary for stream-oriented UNIX domain sockets.
+
+
+[heading Thread Safety]
+
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Safe.
+
+
+
+
+[heading Requirements]
+
+[*Header: ][^boost/asio/local/stream_protocol.hpp]
+
+[*Convenience header: ][^boost/asio.hpp]
+
+
+[section:acceptor local::stream_protocol::acceptor]
+
+[indexterm2 acceptor..local::stream_protocol]
+The UNIX domain acceptor type.
+
+
+ typedef basic_socket_acceptor< stream_protocol > acceptor;
+
+
+[heading Types]
+[table
+ [[Name][Description]]
+
+ [
+
+ [[link boost_asio.reference.basic_socket_acceptor.broadcast [*broadcast]]]
+ [Socket option to permit sending of broadcast messages. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_socket_acceptor.bytes_readable [*bytes_readable]]]
+ [IO control command to get the amount of data that can be read without blocking. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_socket_acceptor.debug [*debug]]]
+ [Socket option to enable socket-level debugging. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_socket_acceptor.do_not_route [*do_not_route]]]
+ [Socket option to prevent routing, use local interfaces only. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_socket_acceptor.enable_connection_aborted [*enable_connection_aborted]]]
+ [Socket option to report aborted connections on accept. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_socket_acceptor.endpoint_type [*endpoint_type]]]
+ [The endpoint type. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_socket_acceptor.implementation_type [*implementation_type]]]
+ [The underlying implementation type of I/O object. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_socket_acceptor.keep_alive [*keep_alive]]]
+ [Socket option to send keep-alives. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_socket_acceptor.linger [*linger]]]
+ [Socket option to specify whether the socket lingers on close if unsent data is present. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_socket_acceptor.message_flags [*message_flags]]]
+ [Bitmask type for flags that can be passed to send and receive operations. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_socket_acceptor.native_handle_type [*native_handle_type]]]
+ [The native representation of an acceptor. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_socket_acceptor.native_type [*native_type]]]
+ [(Deprecated: Use native_handle_type.) The native representation of an acceptor. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_socket_acceptor.non_blocking_io [*non_blocking_io]]]
+ [(Deprecated: Use non_blocking().) IO control command to set the blocking mode of the socket. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_socket_acceptor.protocol_type [*protocol_type]]]
+ [The protocol type. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_socket_acceptor.receive_buffer_size [*receive_buffer_size]]]
+ [Socket option for the receive buffer size of a socket. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_socket_acceptor.receive_low_watermark [*receive_low_watermark]]]
+ [Socket option for the receive low watermark. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_socket_acceptor.reuse_address [*reuse_address]]]
+ [Socket option to allow the socket to be bound to an address that is already in use. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_socket_acceptor.send_buffer_size [*send_buffer_size]]]
+ [Socket option for the send buffer size of a socket. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_socket_acceptor.send_low_watermark [*send_low_watermark]]]
+ [Socket option for the send low watermark. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_socket_acceptor.service_type [*service_type]]]
+ [The type of the service that will be used to provide I/O operations. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.basic_socket_acceptor.shutdown_type [*shutdown_type]]]
+ [Different ways a socket may be shutdown. ]
+
+ ]
+
+]
+
+[heading Member Functions]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.basic_socket_acceptor.accept [*accept]]]
+ [Accept a new connection.
+
+ Accept a new connection and obtain the endpoint of the peer. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_socket_acceptor.assign [*assign]]]
+ [Assigns an existing native acceptor to the acceptor. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_socket_acceptor.async_accept [*async_accept]]]
+ [Start an asynchronous accept. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_socket_acceptor.basic_socket_acceptor [*basic_socket_acceptor]]]
+ [Construct an acceptor without opening it.
+
+ Construct an open acceptor.
+
+ Construct an acceptor opened on the given endpoint.
+
+ Construct a basic_socket_acceptor on an existing native acceptor.
+
+ Move-construct a basic_socket_acceptor from another. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_socket_acceptor.bind [*bind]]]
+ [Bind the acceptor to the given local endpoint. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_socket_acceptor.cancel [*cancel]]]
+ [Cancel all asynchronous operations associated with the acceptor. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_socket_acceptor.close [*close]]]
+ [Close the acceptor. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_socket_acceptor.get_io_service [*get_io_service]]]
+ [Get the io_service associated with the object. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_socket_acceptor.get_option [*get_option]]]
+ [Get an option from the acceptor. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_socket_acceptor.io_control [*io_control]]]
+ [Perform an IO control command on the acceptor. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_socket_acceptor.is_open [*is_open]]]
+ [Determine whether the acceptor is open. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_socket_acceptor.listen [*listen]]]
+ [Place the acceptor into the state where it will listen for new connections. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_socket_acceptor.local_endpoint [*local_endpoint]]]
+ [Get the local endpoint of the acceptor. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_socket_acceptor.native [*native]]]
+ [(Deprecated: Use native_handle().) Get the native acceptor representation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_socket_acceptor.native_handle [*native_handle]]]
+ [Get the native acceptor representation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_socket_acceptor.native_non_blocking [*native_non_blocking]]]
+ [Gets the non-blocking mode of the native acceptor implementation.
 
+ Sets the non-blocking mode of the native acceptor implementation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_socket_acceptor.non_blocking [*non_blocking]]]
+ [Gets the non-blocking mode of the acceptor.
 
-[section:overload1 local::basic_endpoint::data (1 of 2 overloads)]
+ Sets the non-blocking mode of the acceptor. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_socket_acceptor.open [*open]]]
+ [Open the acceptor using the specified protocol. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_socket_acceptor.operator_eq_ [*operator=]]]
+ [Move-assign a basic_socket_acceptor from another. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_socket_acceptor.set_option [*set_option]]]
+ [Set an option on the acceptor. ]
+ ]
+
+]
 
+[heading Protected Member Functions]
+[table
+ [[Name][Description]]
 
-Get the underlying endpoint in the native type.
+ [
+ [[link boost_asio.reference.basic_socket_acceptor.get_implementation [*get_implementation]]]
+ [Get the underlying implementation of the I/O object. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_socket_acceptor.get_service [*get_service]]]
+ [Get the service associated with the I/O object. ]
+ ]
+
+]
 
+[heading Data Members]
+[table
+ [[Name][Description]]
 
- data_type * data();
+ [
+ [[link boost_asio.reference.basic_socket_acceptor.max_connections [*max_connections]]]
+ [The maximum length of the queue of pending incoming connections. ]
+ ]
 
+ [
+ [[link boost_asio.reference.basic_socket_acceptor.message_do_not_route [*message_do_not_route]]]
+ [Specify that the data should not be subject to routing. ]
+ ]
 
+ [
+ [[link boost_asio.reference.basic_socket_acceptor.message_end_of_record [*message_end_of_record]]]
+ [Specifies that the data marks the end of a record. ]
+ ]
 
-[endsect]
+ [
+ [[link boost_asio.reference.basic_socket_acceptor.message_out_of_band [*message_out_of_band]]]
+ [Process out-of-band data. ]
+ ]
 
+ [
+ [[link boost_asio.reference.basic_socket_acceptor.message_peek [*message_peek]]]
+ [Peek at incoming data without removing it from the input queue. ]
+ ]
 
+]
 
-[section:overload2 local::basic_endpoint::data (2 of 2 overloads)]
+[heading Protected Data Members]
+[table
+ [[Name][Description]]
 
+ [
+ [[link boost_asio.reference.basic_socket_acceptor.implementation [*implementation]]]
+ [(Deprecated: Use get_implementation().) The underlying implementation of the I/O object. ]
+ ]
 
-Get the underlying endpoint in the native type.
+ [
+ [[link boost_asio.reference.basic_socket_acceptor.service [*service]]]
+ [(Deprecated: Use get_service().) The service associated with the I/O object. ]
+ ]
 
+]
 
- const data_type * data() const;
+The [link boost_asio.reference.basic_socket_acceptor `basic_socket_acceptor`] class template is used for accepting new socket connections.
 
 
+[heading Thread Safety]
+
+[*Distinct] [*objects:] Safe.
 
-[endsect]
+[*Shared] [*objects:] Unsafe.
 
 
-[endsect]
+[heading Example]
+
+Opening a socket acceptor with the SO\_REUSEADDR option enabled:
 
+ boost::asio::ip::tcp::acceptor acceptor(io_service);
+ boost::asio::ip::tcp::endpoint endpoint(boost::asio::ip::tcp::v4(), port);
+ acceptor.open(endpoint.protocol());
+ acceptor.set_option(boost::asio::ip::tcp::acceptor::reuse_address(true));
+ acceptor.bind(endpoint);
+ acceptor.listen();
 
-[section:data_type local::basic_endpoint::data_type]
 
-[indexterm2 data_type..local::basic_endpoint]
-The type of the endpoint structure. This type is dependent on the underlying implementation of the socket layer.
 
 
- typedef implementation_defined data_type;
 
 
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/local/basic_endpoint.hpp]
+[*Header: ][^boost/asio/local/stream_protocol.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
@@ -65267,42 +68381,150 @@
 
 
 
-[section:operator_not__eq_ local::basic_endpoint::operator!=]
+[section:endpoint local::stream_protocol::endpoint]
 
-[indexterm2 operator!=..local::basic_endpoint]
-Compare two endpoints for inequality.
+[indexterm2 endpoint..local::stream_protocol]
+The type of a UNIX domain endpoint.
 
 
- friend bool operator!=(
- const basic_endpoint< Protocol > & e1,
- const basic_endpoint< Protocol > & e2);
+ typedef basic_endpoint< stream_protocol > endpoint;
 
 
-[heading Requirements]
+[heading Types]
+[table
+ [[Name][Description]]
 
-[*Header: ][^boost/asio/local/basic_endpoint.hpp]
+ [
 
-[*Convenience header: ][^boost/asio.hpp]
+ [[link boost_asio.reference.local__basic_endpoint.data_type [*data_type]]]
+ [The type of the endpoint structure. This type is dependent on the underlying implementation of the socket layer. ]
+
+ ]
 
+ [
 
-[endsect]
+ [[link boost_asio.reference.local__basic_endpoint.protocol_type [*protocol_type]]]
+ [The protocol type associated with the endpoint. ]
+
+ ]
 
+]
+
+[heading Member Functions]
+[table
+ [[Name][Description]]
 
+ [
+ [[link boost_asio.reference.local__basic_endpoint.basic_endpoint [*basic_endpoint]]]
+ [Default constructor.
 
-[section:operator_lt_ local::basic_endpoint::operator<]
+ Construct an endpoint using the specified path name.
+
+ Copy constructor. ]
+ ]
+
+ [
+ [[link boost_asio.reference.local__basic_endpoint.capacity [*capacity]]]
+ [Get the capacity of the endpoint in the native type. ]
+ ]
+
+ [
+ [[link boost_asio.reference.local__basic_endpoint.data [*data]]]
+ [Get the underlying endpoint in the native type. ]
+ ]
+
+ [
+ [[link boost_asio.reference.local__basic_endpoint.operator_eq_ [*operator=]]]
+ [Assign from another endpoint. ]
+ ]
+
+ [
+ [[link boost_asio.reference.local__basic_endpoint.path [*path]]]
+ [Get the path associated with the endpoint.
+
+ Set the path associated with the endpoint. ]
+ ]
+
+ [
+ [[link boost_asio.reference.local__basic_endpoint.protocol [*protocol]]]
+ [The protocol associated with the endpoint. ]
+ ]
+
+ [
+ [[link boost_asio.reference.local__basic_endpoint.resize [*resize]]]
+ [Set the underlying size of the endpoint in the native type. ]
+ ]
+
+ [
+ [[link boost_asio.reference.local__basic_endpoint.size [*size]]]
+ [Get the underlying size of the endpoint in the native type. ]
+ ]
+
+]
+
+[heading Friends]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.local__basic_endpoint.operator_not__eq_ [*operator!=]]]
+ [Compare two endpoints for inequality. ]
+ ]
+
+ [
+ [[link boost_asio.reference.local__basic_endpoint.operator_lt_ [*operator<]]]
+ [Compare endpoints for ordering. ]
+ ]
+
+ [
+ [[link boost_asio.reference.local__basic_endpoint.operator_lt__eq_ [*operator<=]]]
+ [Compare endpoints for ordering. ]
+ ]
+
+ [
+ [[link boost_asio.reference.local__basic_endpoint.operator_eq__eq_ [*operator==]]]
+ [Compare two endpoints for equality. ]
+ ]
+
+ [
+ [[link boost_asio.reference.local__basic_endpoint.operator_gt_ [*operator>]]]
+ [Compare endpoints for ordering. ]
+ ]
+
+ [
+ [[link boost_asio.reference.local__basic_endpoint.operator_gt__eq_ [*operator>=]]]
+ [Compare endpoints for ordering. ]
+ ]
+
+]
+
+[heading Related Functions]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.local__basic_endpoint.operator_lt__lt_ [*operator<<]]]
+ [Output an endpoint as a string. ]
+ ]
+
+]
+
+The [link boost_asio.reference.local__basic_endpoint `local::basic_endpoint`] class template describes an endpoint that may be associated with a particular UNIX socket.
+
+
+[heading Thread Safety]
+
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Unsafe.
 
-[indexterm2 operator<..local::basic_endpoint]
-Compare endpoints for ordering.
 
 
- friend bool operator<(
- const basic_endpoint< Protocol > & e1,
- const basic_endpoint< Protocol > & e2);
 
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/local/basic_endpoint.hpp]
+[*Header: ][^boost/asio/local/stream_protocol.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
@@ -65311,57 +68533,107 @@
 
 
 
-[section:operator_lt__lt_ local::basic_endpoint::operator<<]
+[section:family local::stream_protocol::family]
 
-[indexterm2 operator<<..local::basic_endpoint]
-Output an endpoint as a string.
+[indexterm2 family..local::stream_protocol]
+Obtain an identifier for the protocol family.
 
 
- std::basic_ostream< Elem, Traits > & operator<<(
- std::basic_ostream< Elem, Traits > & os,
- const basic_endpoint< Protocol > & endpoint);
+ int family() const;
 
 
-Used to output a human-readable string for a specified endpoint.
 
+[endsect]
 
-[heading Parameters]
-
 
-[variablelist
-
-[[os][The output stream to which the string will be written.]]
 
-[[endpoint][The endpoint to be written.]]
+[section:iostream local::stream_protocol::iostream]
 
-]
+[indexterm2 iostream..local::stream_protocol]
+The UNIX domain iostream type.
 
 
-[heading Return Value]
-
-The output stream.
+ typedef basic_socket_iostream< stream_protocol > iostream;
 
 
+[heading Types]
+[table
+ [[Name][Description]]
 
+ [
 
-[endsect]
+ [[link boost_asio.reference.basic_socket_iostream.duration_type [*duration_type]]]
+ [The duration type. ]
+
+ ]
 
+ [
 
+ [[link boost_asio.reference.basic_socket_iostream.endpoint_type [*endpoint_type]]]
+ [The endpoint type. ]
+
+ ]
 
-[section:operator_lt__eq_ local::basic_endpoint::operator<=]
+ [
 
-[indexterm2 operator<=..local::basic_endpoint]
-Compare endpoints for ordering.
+ [[link boost_asio.reference.basic_socket_iostream.time_type [*time_type]]]
+ [The time type. ]
+
+ ]
+
+]
 
+[heading Member Functions]
+[table
+ [[Name][Description]]
 
- friend bool operator<=(
- const basic_endpoint< Protocol > & e1,
- const basic_endpoint< Protocol > & e2);
+ [
+ [[link boost_asio.reference.basic_socket_iostream.basic_socket_iostream [*basic_socket_iostream]]]
+ [Construct a basic_socket_iostream without establishing a connection.
+
+ Establish a connection to an endpoint corresponding to a resolver query. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_socket_iostream.close [*close]]]
+ [Close the connection. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_socket_iostream.connect [*connect]]]
+ [Establish a connection to an endpoint corresponding to a resolver query. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_socket_iostream.error [*error]]]
+ [Get the last error associated with the stream. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_socket_iostream.expires_at [*expires_at]]]
+ [Get the stream's expiry time as an absolute time.
+
+ Set the stream's expiry time as an absolute time. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_socket_iostream.expires_from_now [*expires_from_now]]]
+ [Get the timer's expiry time relative to now.
+
+ Set the stream's expiry time relative to now. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_socket_iostream.rdbuf [*rdbuf]]]
+ [Return a pointer to the underlying streambuf. ]
+ ]
+
+]
 
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/local/basic_endpoint.hpp]
+[*Header: ][^boost/asio/local/stream_protocol.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
@@ -65370,14 +68642,13 @@
 
 
 
-[section:operator_eq_ local::basic_endpoint::operator=]
+[section:protocol local::stream_protocol::protocol]
 
-[indexterm2 operator=..local::basic_endpoint]
-Assign from another endpoint.
+[indexterm2 protocol..local::stream_protocol]
+Obtain an identifier for the protocol.
 
 
- basic_endpoint & operator=(
- const basic_endpoint & other);
+ int protocol() const;
 
 
 
@@ -65385,461 +68656,671 @@
 
 
 
-[section:operator_eq__eq_ local::basic_endpoint::operator==]
+[section:socket local::stream_protocol::socket]
 
-[indexterm2 operator==..local::basic_endpoint]
-Compare two endpoints for equality.
+[indexterm2 socket..local::stream_protocol]
+The UNIX domain socket type.
 
 
- friend bool operator==(
- const basic_endpoint< Protocol > & e1,
- const basic_endpoint< Protocol > & e2);
+ typedef basic_stream_socket< stream_protocol > socket;
 
 
-[heading Requirements]
+[heading Types]
+[table
+ [[Name][Description]]
 
-[*Header: ][^boost/asio/local/basic_endpoint.hpp]
+ [
 
-[*Convenience header: ][^boost/asio.hpp]
+ [[link boost_asio.reference.basic_stream_socket.broadcast [*broadcast]]]
+ [Socket option to permit sending of broadcast messages. ]
+
+ ]
 
+ [
 
-[endsect]
+ [[link boost_asio.reference.basic_stream_socket.bytes_readable [*bytes_readable]]]
+ [IO control command to get the amount of data that can be read without blocking. ]
+
+ ]
 
+ [
 
+ [[link boost_asio.reference.basic_stream_socket.debug [*debug]]]
+ [Socket option to enable socket-level debugging. ]
+
+ ]
 
-[section:operator_gt_ local::basic_endpoint::operator>]
+ [
 
-[indexterm2 operator>..local::basic_endpoint]
-Compare endpoints for ordering.
+ [[link boost_asio.reference.basic_stream_socket.do_not_route [*do_not_route]]]
+ [Socket option to prevent routing, use local interfaces only. ]
+
+ ]
 
+ [
 
- friend bool operator>(
- const basic_endpoint< Protocol > & e1,
- const basic_endpoint< Protocol > & e2);
+ [[link boost_asio.reference.basic_stream_socket.enable_connection_aborted [*enable_connection_aborted]]]
+ [Socket option to report aborted connections on accept. ]
+
+ ]
 
+ [
 
-[heading Requirements]
+ [[link boost_asio.reference.basic_stream_socket.endpoint_type [*endpoint_type]]]
+ [The endpoint type. ]
+
+ ]
 
-[*Header: ][^boost/asio/local/basic_endpoint.hpp]
+ [
 
-[*Convenience header: ][^boost/asio.hpp]
+ [[link boost_asio.reference.basic_stream_socket.implementation_type [*implementation_type]]]
+ [The underlying implementation type of I/O object. ]
+
+ ]
 
+ [
 
-[endsect]
+ [[link boost_asio.reference.basic_stream_socket.keep_alive [*keep_alive]]]
+ [Socket option to send keep-alives. ]
+
+ ]
 
+ [
 
+ [[link boost_asio.reference.basic_stream_socket.linger [*linger]]]
+ [Socket option to specify whether the socket lingers on close if unsent data is present. ]
+
+ ]
 
-[section:operator_gt__eq_ local::basic_endpoint::operator>=]
+ [
 
-[indexterm2 operator>=..local::basic_endpoint]
-Compare endpoints for ordering.
+ [[link boost_asio.reference.basic_stream_socket.lowest_layer_type [*lowest_layer_type]]]
+ [A basic_socket is always the lowest layer. ]
+
+ ]
 
+ [
 
- friend bool operator>=(
- const basic_endpoint< Protocol > & e1,
- const basic_endpoint< Protocol > & e2);
+ [[link boost_asio.reference.basic_stream_socket.message_flags [*message_flags]]]
+ [Bitmask type for flags that can be passed to send and receive operations. ]
+
+ ]
 
+ [
 
-[heading Requirements]
+ [[link boost_asio.reference.basic_stream_socket.native_handle_type [*native_handle_type]]]
+ [The native representation of a socket. ]
+
+ ]
 
-[*Header: ][^boost/asio/local/basic_endpoint.hpp]
+ [
 
-[*Convenience header: ][^boost/asio.hpp]
+ [[link boost_asio.reference.basic_stream_socket.native_type [*native_type]]]
+ [(Deprecated: Use native_handle_type.) The native representation of a socket. ]
+
+ ]
 
+ [
 
-[endsect]
+ [[link boost_asio.reference.basic_stream_socket.non_blocking_io [*non_blocking_io]]]
+ [(Deprecated: Use non_blocking().) IO control command to set the blocking mode of the socket. ]
+
+ ]
 
+ [
 
-[section:path local::basic_endpoint::path]
+ [[link boost_asio.reference.basic_stream_socket.protocol_type [*protocol_type]]]
+ [The protocol type. ]
+
+ ]
 
-[indexterm2 path..local::basic_endpoint]
-Get the path associated with the endpoint.
+ [
 
+ [[link boost_asio.reference.basic_stream_socket.receive_buffer_size [*receive_buffer_size]]]
+ [Socket option for the receive buffer size of a socket. ]
+
+ ]
 
- std::string ``[link boost_asio.reference.local__basic_endpoint.path.overload1 path]``() const;
- `` [''''&raquo;''' [link boost_asio.reference.local__basic_endpoint.path.overload1 more...]]``
+ [
 
+ [[link boost_asio.reference.basic_stream_socket.receive_low_watermark [*receive_low_watermark]]]
+ [Socket option for the receive low watermark. ]
+
+ ]
 
-Set the path associated with the endpoint.
+ [
 
+ [[link boost_asio.reference.basic_stream_socket.reuse_address [*reuse_address]]]
+ [Socket option to allow the socket to be bound to an address that is already in use. ]
+
+ ]
 
- void ``[link boost_asio.reference.local__basic_endpoint.path.overload2 path]``(
- const char * p);
- `` [''''&raquo;''' [link boost_asio.reference.local__basic_endpoint.path.overload2 more...]]``
+ [
 
- void ``[link boost_asio.reference.local__basic_endpoint.path.overload3 path]``(
- const std::string & p);
- `` [''''&raquo;''' [link boost_asio.reference.local__basic_endpoint.path.overload3 more...]]``
+ [[link boost_asio.reference.basic_stream_socket.send_buffer_size [*send_buffer_size]]]
+ [Socket option for the send buffer size of a socket. ]
+
+ ]
 
+ [
 
-[section:overload1 local::basic_endpoint::path (1 of 3 overloads)]
+ [[link boost_asio.reference.basic_stream_socket.send_low_watermark [*send_low_watermark]]]
+ [Socket option for the send low watermark. ]
+
+ ]
 
+ [
 
-Get the path associated with the endpoint.
+ [[link boost_asio.reference.basic_stream_socket.service_type [*service_type]]]
+ [The type of the service that will be used to provide I/O operations. ]
+
+ ]
 
+ [
 
- std::string path() const;
+ [[link boost_asio.reference.basic_stream_socket.shutdown_type [*shutdown_type]]]
+ [Different ways a socket may be shutdown. ]
+
+ ]
 
+]
 
+[heading Member Functions]
+[table
+ [[Name][Description]]
 
-[endsect]
+ [
+ [[link boost_asio.reference.basic_stream_socket.assign [*assign]]]
+ [Assign an existing native socket to the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.async_connect [*async_connect]]]
+ [Start an asynchronous connect. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.async_read_some [*async_read_some]]]
+ [Start an asynchronous read. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.async_receive [*async_receive]]]
+ [Start an asynchronous receive. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.async_send [*async_send]]]
+ [Start an asynchronous send. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.async_write_some [*async_write_some]]]
+ [Start an asynchronous write. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.at_mark [*at_mark]]]
+ [Determine whether the socket is at the out-of-band data mark. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.available [*available]]]
+ [Determine the number of bytes available for reading. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.basic_stream_socket [*basic_stream_socket]]]
+ [Construct a basic_stream_socket without opening it.
 
+ Construct and open a basic_stream_socket.
 
+ Construct a basic_stream_socket, opening it and binding it to the given local endpoint.
 
-[section:overload2 local::basic_endpoint::path (2 of 3 overloads)]
+ Construct a basic_stream_socket on an existing native socket.
 
+ Move-construct a basic_stream_socket from another. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.bind [*bind]]]
+ [Bind the socket to the given local endpoint. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.cancel [*cancel]]]
+ [Cancel all asynchronous operations associated with the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.close [*close]]]
+ [Close the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.connect [*connect]]]
+ [Connect the socket to the specified endpoint. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.get_io_service [*get_io_service]]]
+ [Get the io_service associated with the object. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.get_option [*get_option]]]
+ [Get an option from the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.io_control [*io_control]]]
+ [Perform an IO control command on the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.is_open [*is_open]]]
+ [Determine whether the socket is open. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.local_endpoint [*local_endpoint]]]
+ [Get the local endpoint of the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.lowest_layer [*lowest_layer]]]
+ [Get a reference to the lowest layer.
 
-Set the path associated with the endpoint.
+ Get a const reference to the lowest layer. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.native [*native]]]
+ [(Deprecated: Use native_handle().) Get the native socket representation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.native_handle [*native_handle]]]
+ [Get the native socket representation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.native_non_blocking [*native_non_blocking]]]
+ [Gets the non-blocking mode of the native socket implementation.
 
+ Sets the non-blocking mode of the native socket implementation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.non_blocking [*non_blocking]]]
+ [Gets the non-blocking mode of the socket.
 
- void path(
- const char * p);
+ Sets the non-blocking mode of the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.open [*open]]]
+ [Open the socket using the specified protocol. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.operator_eq_ [*operator=]]]
+ [Move-assign a basic_stream_socket from another. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.read_some [*read_some]]]
+ [Read some data from the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.receive [*receive]]]
+ [Receive some data on the socket.
 
+ Receive some data on a connected socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.remote_endpoint [*remote_endpoint]]]
+ [Get the remote endpoint of the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.send [*send]]]
+ [Send some data on the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.set_option [*set_option]]]
+ [Set an option on the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.shutdown [*shutdown]]]
+ [Disable sends or receives on the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.write_some [*write_some]]]
+ [Write some data to the socket. ]
+ ]
+
+]
 
+[heading Protected Member Functions]
+[table
+ [[Name][Description]]
 
-[endsect]
+ [
+ [[link boost_asio.reference.basic_stream_socket.get_implementation [*get_implementation]]]
+ [Get the underlying implementation of the I/O object. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_stream_socket.get_service [*get_service]]]
+ [Get the service associated with the I/O object. ]
+ ]
+
+]
 
+[heading Data Members]
+[table
+ [[Name][Description]]
 
+ [
+ [[link boost_asio.reference.basic_stream_socket.max_connections [*max_connections]]]
+ [The maximum length of the queue of pending incoming connections. ]
+ ]
 
-[section:overload3 local::basic_endpoint::path (3 of 3 overloads)]
+ [
+ [[link boost_asio.reference.basic_stream_socket.message_do_not_route [*message_do_not_route]]]
+ [Specify that the data should not be subject to routing. ]
+ ]
 
+ [
+ [[link boost_asio.reference.basic_stream_socket.message_end_of_record [*message_end_of_record]]]
+ [Specifies that the data marks the end of a record. ]
+ ]
 
-Set the path associated with the endpoint.
+ [
+ [[link boost_asio.reference.basic_stream_socket.message_out_of_band [*message_out_of_band]]]
+ [Process out-of-band data. ]
+ ]
 
+ [
+ [[link boost_asio.reference.basic_stream_socket.message_peek [*message_peek]]]
+ [Peek at incoming data without removing it from the input queue. ]
+ ]
 
- void path(
- const std::string & p);
+]
 
+[heading Protected Data Members]
+[table
+ [[Name][Description]]
 
+ [
+ [[link boost_asio.reference.basic_stream_socket.implementation [*implementation]]]
+ [(Deprecated: Use get_implementation().) The underlying implementation of the I/O object. ]
+ ]
 
-[endsect]
+ [
+ [[link boost_asio.reference.basic_stream_socket.service [*service]]]
+ [(Deprecated: Use get_service().) The service associated with the I/O object. ]
+ ]
 
+]
 
-[endsect]
+The [link boost_asio.reference.basic_stream_socket `basic_stream_socket`] class template provides asynchronous and blocking stream-oriented socket functionality.
 
 
-[section:protocol local::basic_endpoint::protocol]
+[heading Thread Safety]
+
+[*Distinct] [*objects:] Safe.
 
-[indexterm2 protocol..local::basic_endpoint]
-The protocol associated with the endpoint.
+[*Shared] [*objects:] Unsafe.
 
 
- protocol_type protocol() const;
 
 
 
-[endsect]
+[heading Requirements]
 
+[*Header: ][^boost/asio/local/stream_protocol.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
-[section:protocol_type local::basic_endpoint::protocol_type]
 
-[indexterm2 protocol_type..local::basic_endpoint]
-The protocol type associated with the endpoint.
+[endsect]
 
 
- typedef Protocol protocol_type;
 
+[section:type local::stream_protocol::type]
 
+[indexterm2 type..local::stream_protocol]
+Obtain an identifier for the type of the protocol.
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/local/basic_endpoint.hpp]
+ int type() const;
 
-[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
 
-[section:resize local::basic_endpoint::resize]
+[endsect]
 
-[indexterm2 resize..local::basic_endpoint]
-Set the underlying size of the endpoint in the native type.
+[section:mutable_buffer mutable_buffer]
 
 
- void resize(
- std::size_t new_size);
+Holds a buffer that can be modified.
 
 
+ class mutable_buffer
 
-[endsect]
 
+[heading Member Functions]
+[table
+ [[Name][Description]]
 
+ [
+ [[link boost_asio.reference.mutable_buffer.mutable_buffer [*mutable_buffer]]]
+ [Construct an empty buffer.
 
-[section:size local::basic_endpoint::size]
+ Construct a buffer to represent a given memory range. ]
+ ]
+
+]
 
-[indexterm2 size..local::basic_endpoint]
-Get the underlying size of the endpoint in the native type.
+[heading Related Functions]
+[table
+ [[Name][Description]]
 
+ [
+ [[link boost_asio.reference.mutable_buffer.operator_plus_ [*operator+]]]
+ [Create a new modifiable buffer that is offset from the start of another. ]
+ ]
+
+]
 
- std::size_t size() const;
+The [link boost_asio.reference.mutable_buffer `mutable_buffer`] class provides a safe representation of a buffer that can be modified. It does not own the underlying data, and so is cheap to copy or assign.
 
 
+[heading Accessing Buffer Contents]
+
 
-[endsect]
 
+The contents of a buffer may be accessed using the [link boost_asio.reference.buffer_size `buffer_size`] and [link boost_asio.reference.buffer_cast `buffer_cast`] functions:
 
 
-[endsect]
 
-[section:local__connect_pair local::connect_pair]
+ boost::asio::mutable_buffer b1 = ...;
+ std::size_t s1 = boost::asio::buffer_size(b1);
+ unsigned char* p1 = boost::asio::buffer_cast<unsigned char*>(b1);
 
-[indexterm1 local::connect_pair]
-Create a pair of connected sockets.
 
-
- template<
- typename ``[link boost_asio.reference.Protocol Protocol]``,
- typename ``[link boost_asio.reference.SocketService SocketService1]``,
- typename ``[link boost_asio.reference.SocketService SocketService2]``>
- void ``[link boost_asio.reference.local__connect_pair.overload1 connect_pair]``(
- basic_socket< Protocol, SocketService1 > & socket1,
- basic_socket< Protocol, SocketService2 > & socket2);
- `` [''''&raquo;''' [link boost_asio.reference.local__connect_pair.overload1 more...]]``
 
- template<
- typename ``[link boost_asio.reference.Protocol Protocol]``,
- typename ``[link boost_asio.reference.SocketService SocketService1]``,
- typename ``[link boost_asio.reference.SocketService SocketService2]``>
- boost::system::error_code ``[link boost_asio.reference.local__connect_pair.overload2 connect_pair]``(
- basic_socket< Protocol, SocketService1 > & socket1,
- basic_socket< Protocol, SocketService2 > & socket2,
- boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.local__connect_pair.overload2 more...]]``
+
+The `boost::asio::buffer_cast` function permits violations of type safety, so uses of it in application code should be carefully considered.
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/local/connect_pair.hpp]
+[*Header: ][^boost/asio/buffer.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
+[section:mutable_buffer mutable_buffer::mutable_buffer]
 
-[section:overload1 local::connect_pair (1 of 2 overloads)]
-
-
-Create a pair of connected sockets.
+[indexterm2 mutable_buffer..mutable_buffer]
+Construct an empty buffer.
 
 
- template<
- typename ``[link boost_asio.reference.Protocol Protocol]``,
- typename ``[link boost_asio.reference.SocketService SocketService1]``,
- typename ``[link boost_asio.reference.SocketService SocketService2]``>
- void connect_pair(
- basic_socket< Protocol, SocketService1 > & socket1,
- basic_socket< Protocol, SocketService2 > & socket2);
+ ``[link boost_asio.reference.mutable_buffer.mutable_buffer.overload1 mutable_buffer]``();
+ `` [''''&raquo;''' [link boost_asio.reference.mutable_buffer.mutable_buffer.overload1 more...]]``
 
 
+Construct a buffer to represent a given memory range.
 
-[endsect]
 
+ ``[link boost_asio.reference.mutable_buffer.mutable_buffer.overload2 mutable_buffer]``(
+ void * data,
+ std::size_t size);
+ `` [''''&raquo;''' [link boost_asio.reference.mutable_buffer.mutable_buffer.overload2 more...]]``
 
 
-[section:overload2 local::connect_pair (2 of 2 overloads)]
+[section:overload1 mutable_buffer::mutable_buffer (1 of 2 overloads)]
 
 
-Create a pair of connected sockets.
+Construct an empty buffer.
 
 
- template<
- typename ``[link boost_asio.reference.Protocol Protocol]``,
- typename ``[link boost_asio.reference.SocketService SocketService1]``,
- typename ``[link boost_asio.reference.SocketService SocketService2]``>
- boost::system::error_code connect_pair(
- basic_socket< Protocol, SocketService1 > & socket1,
- basic_socket< Protocol, SocketService2 > & socket2,
- boost::system::error_code & ec);
+ mutable_buffer();
 
 
 
 [endsect]
 
 
-[endsect]
 
-[section:local__datagram_protocol local::datagram_protocol]
+[section:overload2 mutable_buffer::mutable_buffer (2 of 2 overloads)]
 
 
-Encapsulates the flags needed for datagram-oriented UNIX sockets.
+Construct a buffer to represent a given memory range.
 
 
- class datagram_protocol
+ mutable_buffer(
+ void * data,
+ std::size_t size);
 
 
-[heading Types]
-[table
- [[Name][Description]]
 
- [
+[endsect]
 
- [[link boost_asio.reference.local__datagram_protocol.endpoint [*endpoint]]]
- [The type of a UNIX domain endpoint. ]
-
- ]
 
- [
+[endsect]
 
- [[link boost_asio.reference.local__datagram_protocol.socket [*socket]]]
- [The UNIX domain socket type. ]
-
- ]
+[section:operator_plus_ mutable_buffer::operator+]
 
-]
+[indexterm2 operator+..mutable_buffer]
+Create a new modifiable buffer that is offset from the start of another.
 
-[heading Member Functions]
-[table
- [[Name][Description]]
 
- [
- [[link boost_asio.reference.local__datagram_protocol.family [*family]]]
- [Obtain an identifier for the protocol family. ]
- ]
-
- [
- [[link boost_asio.reference.local__datagram_protocol.protocol [*protocol]]]
- [Obtain an identifier for the protocol. ]
- ]
-
- [
- [[link boost_asio.reference.local__datagram_protocol.type [*type]]]
- [Obtain an identifier for the type of the protocol. ]
- ]
-
-]
+ mutable_buffer ``[link boost_asio.reference.mutable_buffer.operator_plus_.overload1 operator+]``(
+ const mutable_buffer & b,
+ std::size_t start);
+ `` [''''&raquo;''' [link boost_asio.reference.mutable_buffer.operator_plus_.overload1 more...]]``
 
-The [link boost_asio.reference.local__datagram_protocol `local::datagram_protocol`] class contains flags necessary for datagram-oriented UNIX domain sockets.
+ mutable_buffer ``[link boost_asio.reference.mutable_buffer.operator_plus_.overload2 operator+]``(
+ std::size_t start,
+ const mutable_buffer & b);
+ `` [''''&raquo;''' [link boost_asio.reference.mutable_buffer.operator_plus_.overload2 more...]]``
 
 
-[heading Thread Safety]
-
-[*Distinct] [*objects:] Safe.
+[section:overload1 mutable_buffer::operator+ (1 of 2 overloads)]
 
-[*Shared] [*objects:] Safe.
 
+Create a new modifiable buffer that is offset from the start of another.
 
 
+ mutable_buffer operator+(
+ const mutable_buffer & b,
+ std::size_t start);
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/local/datagram_protocol.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
+[endsect]
 
 
-[section:endpoint local::datagram_protocol::endpoint]
 
-[indexterm2 endpoint..local::datagram_protocol]
-The type of a UNIX domain endpoint.
+[section:overload2 mutable_buffer::operator+ (2 of 2 overloads)]
 
 
- typedef basic_endpoint< datagram_protocol > endpoint;
+Create a new modifiable buffer that is offset from the start of another.
 
 
-[heading Types]
-[table
- [[Name][Description]]
+ mutable_buffer operator+(
+ std::size_t start,
+ const mutable_buffer & b);
 
- [
 
- [[link boost_asio.reference.local__basic_endpoint.data_type [*data_type]]]
- [The type of the endpoint structure. This type is dependent on the underlying implementation of the socket layer. ]
-
- ]
 
- [
+[endsect]
 
- [[link boost_asio.reference.local__basic_endpoint.protocol_type [*protocol_type]]]
- [The protocol type associated with the endpoint. ]
-
- ]
 
-]
+[endsect]
 
-[heading Member Functions]
-[table
- [[Name][Description]]
 
- [
- [[link boost_asio.reference.local__basic_endpoint.basic_endpoint [*basic_endpoint]]]
- [Default constructor.
+[endsect]
 
- Construct an endpoint using the specified path name.
+[section:mutable_buffers_1 mutable_buffers_1]
 
- Copy constructor. ]
- ]
-
- [
- [[link boost_asio.reference.local__basic_endpoint.capacity [*capacity]]]
- [Get the capacity of the endpoint in the native type. ]
- ]
-
- [
- [[link boost_asio.reference.local__basic_endpoint.data [*data]]]
- [Get the underlying endpoint in the native type. ]
- ]
-
- [
- [[link boost_asio.reference.local__basic_endpoint.operator_eq_ [*operator=]]]
- [Assign from another endpoint. ]
- ]
-
- [
- [[link boost_asio.reference.local__basic_endpoint.path [*path]]]
- [Get the path associated with the endpoint.
 
- Set the path associated with the endpoint. ]
- ]
-
- [
- [[link boost_asio.reference.local__basic_endpoint.protocol [*protocol]]]
- [The protocol associated with the endpoint. ]
- ]
-
- [
- [[link boost_asio.reference.local__basic_endpoint.resize [*resize]]]
- [Set the underlying size of the endpoint in the native type. ]
- ]
-
- [
- [[link boost_asio.reference.local__basic_endpoint.size [*size]]]
- [Get the underlying size of the endpoint in the native type. ]
- ]
-
-]
+Adapts a single modifiable buffer so that it meets the requirements of the MutableBufferSequence concept.
 
-[heading Friends]
+
+ class mutable_buffers_1 :
+ public mutable_buffer
+
+
+[heading Types]
 [table
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.local__basic_endpoint.operator_not__eq_ [*operator!=]]]
- [Compare two endpoints for inequality. ]
- ]
+
+ [[link boost_asio.reference.mutable_buffers_1.const_iterator [*const_iterator]]]
+ [A random-access iterator type that may be used to read elements. ]
   
- [
- [[link boost_asio.reference.local__basic_endpoint.operator_lt_ [*operator<]]]
- [Compare endpoints for ordering. ]
   ]
-
+
   [
- [[link boost_asio.reference.local__basic_endpoint.operator_lt__eq_ [*operator<=]]]
- [Compare endpoints for ordering. ]
- ]
+
+ [[link boost_asio.reference.mutable_buffers_1.value_type [*value_type]]]
+ [The type for each element in the list of buffers. ]
   
+ ]
+
+]
+
+[heading Member Functions]
+[table
+ [[Name][Description]]
+
   [
- [[link boost_asio.reference.local__basic_endpoint.operator_eq__eq_ [*operator==]]]
- [Compare two endpoints for equality. ]
+ [[link boost_asio.reference.mutable_buffers_1.begin [*begin]]]
+ [Get a random-access iterator to the first element. ]
   ]
   
   [
- [[link boost_asio.reference.local__basic_endpoint.operator_gt_ [*operator>]]]
- [Compare endpoints for ordering. ]
+ [[link boost_asio.reference.mutable_buffers_1.end [*end]]]
+ [Get a random-access iterator for one past the last element. ]
   ]
   
   [
- [[link boost_asio.reference.local__basic_endpoint.operator_gt__eq_ [*operator>=]]]
- [Compare endpoints for ordering. ]
+ [[link boost_asio.reference.mutable_buffers_1.mutable_buffers_1 [*mutable_buffers_1]]]
+ [Construct to represent a given memory range.
+
+ Construct to represent a single modifiable buffer. ]
   ]
   
 ]
@@ -65849,28 +69330,46 @@
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.local__basic_endpoint.operator_lt__lt_ [*operator<<]]]
- [Output an endpoint as a string. ]
+ [[link boost_asio.reference.mutable_buffers_1.operator_plus_ [*operator+]]]
+ [Create a new modifiable buffer that is offset from the start of another. ]
   ]
   
 ]
 
-The [link boost_asio.reference.local__basic_endpoint `local::basic_endpoint`] class template describes an endpoint that may be associated with a particular UNIX socket.
+[heading Requirements]
 
+[*Header: ][^boost/asio/buffer.hpp]
 
-[heading Thread Safety]
-
-[*Distinct] [*objects:] Safe.
+[*Convenience header: ][^boost/asio.hpp]
+
+
+[section:begin mutable_buffers_1::begin]
+
+[indexterm2 begin..mutable_buffers_1]
+Get a random-access iterator to the first element.
 
-[*Shared] [*objects:] Unsafe.
 
+ const_iterator begin() const;
+
+
+
+[endsect]
+
+
+
+[section:const_iterator mutable_buffers_1::const_iterator]
+
+[indexterm2 const_iterator..mutable_buffers_1]
+A random-access iterator type that may be used to read elements.
 
 
+ typedef const mutable_buffer * const_iterator;
+
 
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/local/datagram_protocol.hpp]
+[*Header: ][^boost/asio/buffer.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
@@ -65879,725 +69378,506 @@
 
 
 
-[section:family local::datagram_protocol::family]
+[section:end mutable_buffers_1::end]
 
-[indexterm2 family..local::datagram_protocol]
-Obtain an identifier for the protocol family.
+[indexterm2 end..mutable_buffers_1]
+Get a random-access iterator for one past the last element.
 
 
- int family() const;
+ const_iterator end() const;
 
 
 
 [endsect]
 
 
+[section:mutable_buffers_1 mutable_buffers_1::mutable_buffers_1]
 
-[section:protocol local::datagram_protocol::protocol]
+[indexterm2 mutable_buffers_1..mutable_buffers_1]
+Construct to represent a given memory range.
 
-[indexterm2 protocol..local::datagram_protocol]
-Obtain an identifier for the protocol.
 
+ ``[link boost_asio.reference.mutable_buffers_1.mutable_buffers_1.overload1 mutable_buffers_1]``(
+ void * data,
+ std::size_t size);
+ `` [''''&raquo;''' [link boost_asio.reference.mutable_buffers_1.mutable_buffers_1.overload1 more...]]``
 
- int protocol() const;
 
+Construct to represent a single modifiable buffer.
 
 
-[endsect]
+ explicit ``[link boost_asio.reference.mutable_buffers_1.mutable_buffers_1.overload2 mutable_buffers_1]``(
+ const mutable_buffer & b);
+ `` [''''&raquo;''' [link boost_asio.reference.mutable_buffers_1.mutable_buffers_1.overload2 more...]]``
 
 
+[section:overload1 mutable_buffers_1::mutable_buffers_1 (1 of 2 overloads)]
 
-[section:socket local::datagram_protocol::socket]
 
-[indexterm2 socket..local::datagram_protocol]
-The UNIX domain socket type.
+Construct to represent a given memory range.
 
 
- typedef basic_datagram_socket< datagram_protocol > socket;
+ mutable_buffers_1(
+ void * data,
+ std::size_t size);
 
 
-[heading Types]
-[table
- [[Name][Description]]
 
- [
+[endsect]
 
- [[link boost_asio.reference.basic_datagram_socket.broadcast [*broadcast]]]
- [Socket option to permit sending of broadcast messages. ]
-
- ]
 
- [
 
- [[link boost_asio.reference.basic_datagram_socket.bytes_readable [*bytes_readable]]]
- [IO control command to get the amount of data that can be read without blocking. ]
-
- ]
+[section:overload2 mutable_buffers_1::mutable_buffers_1 (2 of 2 overloads)]
 
- [
 
- [[link boost_asio.reference.basic_datagram_socket.debug [*debug]]]
- [Socket option to enable socket-level debugging. ]
-
- ]
+Construct to represent a single modifiable buffer.
 
- [
 
- [[link boost_asio.reference.basic_datagram_socket.do_not_route [*do_not_route]]]
- [Socket option to prevent routing, use local interfaces only. ]
-
- ]
+ mutable_buffers_1(
+ const mutable_buffer & b);
 
- [
 
- [[link boost_asio.reference.basic_datagram_socket.enable_connection_aborted [*enable_connection_aborted]]]
- [Socket option to report aborted connections on accept. ]
-
- ]
 
- [
+[endsect]
 
- [[link boost_asio.reference.basic_datagram_socket.endpoint_type [*endpoint_type]]]
- [The endpoint type. ]
-
- ]
 
- [
+[endsect]
 
- [[link boost_asio.reference.basic_datagram_socket.implementation_type [*implementation_type]]]
- [The underlying implementation type of I/O object. ]
-
- ]
+[section:operator_plus_ mutable_buffers_1::operator+]
 
- [
+[indexterm2 operator+..mutable_buffers_1]
+Create a new modifiable buffer that is offset from the start of another.
 
- [[link boost_asio.reference.basic_datagram_socket.keep_alive [*keep_alive]]]
- [Socket option to send keep-alives. ]
-
- ]
 
- [
+ mutable_buffer ``[link boost_asio.reference.mutable_buffers_1.operator_plus_.overload1 operator+]``(
+ const mutable_buffer & b,
+ std::size_t start);
+ `` [''''&raquo;''' [link boost_asio.reference.mutable_buffers_1.operator_plus_.overload1 more...]]``
 
- [[link boost_asio.reference.basic_datagram_socket.linger [*linger]]]
- [Socket option to specify whether the socket lingers on close if unsent data is present. ]
-
- ]
+ mutable_buffer ``[link boost_asio.reference.mutable_buffers_1.operator_plus_.overload2 operator+]``(
+ std::size_t start,
+ const mutable_buffer & b);
+ `` [''''&raquo;''' [link boost_asio.reference.mutable_buffers_1.operator_plus_.overload2 more...]]``
 
- [
 
- [[link boost_asio.reference.basic_datagram_socket.lowest_layer_type [*lowest_layer_type]]]
- [A basic_socket is always the lowest layer. ]
-
- ]
+[section:overload1 mutable_buffers_1::operator+ (1 of 2 overloads)]
 
- [
 
- [[link boost_asio.reference.basic_datagram_socket.message_flags [*message_flags]]]
- [Bitmask type for flags that can be passed to send and receive operations. ]
-
- ]
+['Inherited from mutable_buffer.]
 
- [
 
- [[link boost_asio.reference.basic_datagram_socket.native_handle_type [*native_handle_type]]]
- [The native representation of a socket. ]
-
- ]
+Create a new modifiable buffer that is offset from the start of another.
 
- [
 
- [[link boost_asio.reference.basic_datagram_socket.native_type [*native_type]]]
- [(Deprecated: Use native_handle_type.) The native representation of a socket. ]
-
- ]
+ mutable_buffer operator+(
+ const mutable_buffer & b,
+ std::size_t start);
 
- [
 
- [[link boost_asio.reference.basic_datagram_socket.non_blocking_io [*non_blocking_io]]]
- [(Deprecated: Use non_blocking().) IO control command to set the blocking mode of the socket. ]
-
- ]
 
- [
+[endsect]
 
- [[link boost_asio.reference.basic_datagram_socket.protocol_type [*protocol_type]]]
- [The protocol type. ]
-
- ]
 
- [
 
- [[link boost_asio.reference.basic_datagram_socket.receive_buffer_size [*receive_buffer_size]]]
- [Socket option for the receive buffer size of a socket. ]
-
- ]
+[section:overload2 mutable_buffers_1::operator+ (2 of 2 overloads)]
 
- [
 
- [[link boost_asio.reference.basic_datagram_socket.receive_low_watermark [*receive_low_watermark]]]
- [Socket option for the receive low watermark. ]
-
- ]
+['Inherited from mutable_buffer.]
 
- [
 
- [[link boost_asio.reference.basic_datagram_socket.reuse_address [*reuse_address]]]
- [Socket option to allow the socket to be bound to an address that is already in use. ]
-
- ]
+Create a new modifiable buffer that is offset from the start of another.
 
- [
 
- [[link boost_asio.reference.basic_datagram_socket.send_buffer_size [*send_buffer_size]]]
- [Socket option for the send buffer size of a socket. ]
-
- ]
+ mutable_buffer operator+(
+ std::size_t start,
+ const mutable_buffer & b);
 
- [
 
- [[link boost_asio.reference.basic_datagram_socket.send_low_watermark [*send_low_watermark]]]
- [Socket option for the send low watermark. ]
-
- ]
 
- [
+[endsect]
 
- [[link boost_asio.reference.basic_datagram_socket.service_type [*service_type]]]
- [The type of the service that will be used to provide I/O operations. ]
-
- ]
 
- [
+[endsect]
 
- [[link boost_asio.reference.basic_datagram_socket.shutdown_type [*shutdown_type]]]
- [Different ways a socket may be shutdown. ]
-
- ]
 
-]
+[section:value_type mutable_buffers_1::value_type]
+
+[indexterm2 value_type..mutable_buffers_1]
+The type for each element in the list of buffers.
+
+
+ typedef mutable_buffer value_type;
+
 
 [heading Member Functions]
 [table
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.basic_datagram_socket.assign [*assign]]]
- [Assign an existing native socket to the socket. ]
- ]
-
- [
- [[link boost_asio.reference.basic_datagram_socket.async_connect [*async_connect]]]
- [Start an asynchronous connect. ]
- ]
-
- [
- [[link boost_asio.reference.basic_datagram_socket.async_receive [*async_receive]]]
- [Start an asynchronous receive on a connected socket. ]
- ]
-
- [
- [[link boost_asio.reference.basic_datagram_socket.async_receive_from [*async_receive_from]]]
- [Start an asynchronous receive. ]
- ]
-
- [
- [[link boost_asio.reference.basic_datagram_socket.async_send [*async_send]]]
- [Start an asynchronous send on a connected socket. ]
- ]
-
- [
- [[link boost_asio.reference.basic_datagram_socket.async_send_to [*async_send_to]]]
- [Start an asynchronous send. ]
+ [[link boost_asio.reference.mutable_buffer.mutable_buffer [*mutable_buffer]]]
+ [Construct an empty buffer.
+
+ Construct a buffer to represent a given memory range. ]
   ]
   
+]
+
+[heading Related Functions]
+[table
+ [[Name][Description]]
+
   [
- [[link boost_asio.reference.basic_datagram_socket.at_mark [*at_mark]]]
- [Determine whether the socket is at the out-of-band data mark. ]
+ [[link boost_asio.reference.mutable_buffer.operator_plus_ [*operator+]]]
+ [Create a new modifiable buffer that is offset from the start of another. ]
   ]
   
- [
- [[link boost_asio.reference.basic_datagram_socket.available [*available]]]
- [Determine the number of bytes available for reading. ]
- ]
+]
+
+The [link boost_asio.reference.mutable_buffer `mutable_buffer`] class provides a safe representation of a buffer that can be modified. It does not own the underlying data, and so is cheap to copy or assign.
+
+
+[heading Accessing Buffer Contents]
   
- [
- [[link boost_asio.reference.basic_datagram_socket.basic_datagram_socket [*basic_datagram_socket]]]
- [Construct a basic_datagram_socket without opening it.
 
- Construct and open a basic_datagram_socket.
 
- Construct a basic_datagram_socket, opening it and binding it to the given local endpoint.
+The contents of a buffer may be accessed using the [link boost_asio.reference.buffer_size `buffer_size`] and [link boost_asio.reference.buffer_cast `buffer_cast`] functions:
 
- Construct a basic_datagram_socket on an existing native socket.
 
- Move-construct a basic_datagram_socket from another. ]
- ]
-
- [
- [[link boost_asio.reference.basic_datagram_socket.bind [*bind]]]
- [Bind the socket to the given local endpoint. ]
- ]
-
- [
- [[link boost_asio.reference.basic_datagram_socket.cancel [*cancel]]]
- [Cancel all asynchronous operations associated with the socket. ]
- ]
-
- [
- [[link boost_asio.reference.basic_datagram_socket.close [*close]]]
- [Close the socket. ]
- ]
-
- [
- [[link boost_asio.reference.basic_datagram_socket.connect [*connect]]]
- [Connect the socket to the specified endpoint. ]
- ]
-
- [
- [[link boost_asio.reference.basic_datagram_socket.get_io_service [*get_io_service]]]
- [Get the io_service associated with the object. ]
- ]
-
- [
- [[link boost_asio.reference.basic_datagram_socket.get_option [*get_option]]]
- [Get an option from the socket. ]
- ]
-
- [
- [[link boost_asio.reference.basic_datagram_socket.io_control [*io_control]]]
- [Perform an IO control command on the socket. ]
- ]
-
- [
- [[link boost_asio.reference.basic_datagram_socket.is_open [*is_open]]]
- [Determine whether the socket is open. ]
- ]
-
- [
- [[link boost_asio.reference.basic_datagram_socket.local_endpoint [*local_endpoint]]]
- [Get the local endpoint of the socket. ]
- ]
-
- [
- [[link boost_asio.reference.basic_datagram_socket.lowest_layer [*lowest_layer]]]
- [Get a reference to the lowest layer.
 
- Get a const reference to the lowest layer. ]
- ]
-
- [
- [[link boost_asio.reference.basic_datagram_socket.native [*native]]]
- [(Deprecated: Use native_handle().) Get the native socket representation. ]
- ]
-
- [
- [[link boost_asio.reference.basic_datagram_socket.native_handle [*native_handle]]]
- [Get the native socket representation. ]
- ]
-
- [
- [[link boost_asio.reference.basic_datagram_socket.native_non_blocking [*native_non_blocking]]]
- [Gets the non-blocking mode of the native socket implementation.
+ boost::asio::mutable_buffer b1 = ...;
+ std::size_t s1 = boost::asio::buffer_size(b1);
+ unsigned char* p1 = boost::asio::buffer_cast<unsigned char*>(b1);
 
- Sets the non-blocking mode of the native socket implementation. ]
- ]
-
- [
- [[link boost_asio.reference.basic_datagram_socket.non_blocking [*non_blocking]]]
- [Gets the non-blocking mode of the socket.
 
- Sets the non-blocking mode of the socket. ]
- ]
-
- [
- [[link boost_asio.reference.basic_datagram_socket.open [*open]]]
- [Open the socket using the specified protocol. ]
- ]
-
- [
- [[link boost_asio.reference.basic_datagram_socket.operator_eq_ [*operator=]]]
- [Move-assign a basic_datagram_socket from another. ]
- ]
-
- [
- [[link boost_asio.reference.basic_datagram_socket.receive [*receive]]]
- [Receive some data on a connected socket. ]
- ]
-
- [
- [[link boost_asio.reference.basic_datagram_socket.receive_from [*receive_from]]]
- [Receive a datagram with the endpoint of the sender. ]
- ]
-
- [
- [[link boost_asio.reference.basic_datagram_socket.remote_endpoint [*remote_endpoint]]]
- [Get the remote endpoint of the socket. ]
- ]
-
- [
- [[link boost_asio.reference.basic_datagram_socket.send [*send]]]
- [Send some data on a connected socket. ]
- ]
-
- [
- [[link boost_asio.reference.basic_datagram_socket.send_to [*send_to]]]
- [Send a datagram to the specified endpoint. ]
- ]
-
- [
- [[link boost_asio.reference.basic_datagram_socket.set_option [*set_option]]]
- [Set an option on the socket. ]
- ]
-
- [
- [[link boost_asio.reference.basic_datagram_socket.shutdown [*shutdown]]]
- [Disable sends or receives on the socket. ]
- ]
-
-]
 
-[heading Protected Member Functions]
-[table
- [[Name][Description]]
 
- [
- [[link boost_asio.reference.basic_datagram_socket.get_implementation [*get_implementation]]]
- [Get the underlying implementation of the I/O object. ]
- ]
-
- [
- [[link boost_asio.reference.basic_datagram_socket.get_service [*get_service]]]
- [Get the service associated with the I/O object. ]
- ]
-
-]
+The `boost::asio::buffer_cast` function permits violations of type safety, so uses of it in application code should be carefully considered.
 
-[heading Data Members]
+
+[heading Requirements]
+
+[*Header: ][^boost/asio/buffer.hpp]
+
+[*Convenience header: ][^boost/asio.hpp]
+
+
+[endsect]
+
+
+
+[endsect]
+
+[section:null_buffers null_buffers]
+
+
+An implementation of both the ConstBufferSequence and MutableBufferSequence concepts to represent a null buffer sequence.
+
+
+ class null_buffers
+
+
+[heading Types]
 [table
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.basic_datagram_socket.max_connections [*max_connections]]]
- [The maximum length of the queue of pending incoming connections. ]
- ]
-
- [
- [[link boost_asio.reference.basic_datagram_socket.message_do_not_route [*message_do_not_route]]]
- [Specify that the data should not be subject to routing. ]
- ]
 
- [
- [[link boost_asio.reference.basic_datagram_socket.message_end_of_record [*message_end_of_record]]]
- [Specifies that the data marks the end of a record. ]
+ [[link boost_asio.reference.null_buffers.const_iterator [*const_iterator]]]
+ [A random-access iterator type that may be used to read elements. ]
+
   ]
 
   [
- [[link boost_asio.reference.basic_datagram_socket.message_out_of_band [*message_out_of_band]]]
- [Process out-of-band data. ]
- ]
 
- [
- [[link boost_asio.reference.basic_datagram_socket.message_peek [*message_peek]]]
- [Peek at incoming data without removing it from the input queue. ]
+ [[link boost_asio.reference.null_buffers.value_type [*value_type]]]
+ [The type for each element in the list of buffers. ]
+
   ]
 
 ]
 
-[heading Protected Data Members]
+[heading Member Functions]
 [table
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.basic_datagram_socket.implementation [*implementation]]]
- [(Deprecated: Use get_implementation().) The underlying implementation of the I/O object. ]
+ [[link boost_asio.reference.null_buffers.begin [*begin]]]
+ [Get a random-access iterator to the first element. ]
   ]
-
+
   [
- [[link boost_asio.reference.basic_datagram_socket.service [*service]]]
- [(Deprecated: Use get_service().) The service associated with the I/O object. ]
+ [[link boost_asio.reference.null_buffers.end [*end]]]
+ [Get a random-access iterator for one past the last element. ]
   ]
-
+
 ]
 
-The [link boost_asio.reference.basic_datagram_socket `basic_datagram_socket`] class template provides asynchronous and blocking datagram-oriented socket functionality.
-
+[heading Requirements]
 
-[heading Thread Safety]
-
-[*Distinct] [*objects:] Safe.
+[*Header: ][^boost/asio/buffer.hpp]
 
-[*Shared] [*objects:] Unsafe.
+[*Convenience header: ][^boost/asio.hpp]
 
 
+[section:begin null_buffers::begin]
 
+[indexterm2 begin..null_buffers]
+Get a random-access iterator to the first element.
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/local/datagram_protocol.hpp]
+ const_iterator begin() const;
 
-[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
 
-[section:type local::datagram_protocol::type]
+[section:const_iterator null_buffers::const_iterator]
 
-[indexterm2 type..local::datagram_protocol]
-Obtain an identifier for the type of the protocol.
+[indexterm2 const_iterator..null_buffers]
+A random-access iterator type that may be used to read elements.
 
 
- int type() const;
+ typedef const mutable_buffer * const_iterator;
 
 
 
-[endsect]
+[heading Requirements]
+
+[*Header: ][^boost/asio/buffer.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
-[section:local__stream_protocol local::stream_protocol]
 
 
-Encapsulates the flags needed for stream-oriented UNIX sockets.
+[section:end null_buffers::end]
 
+[indexterm2 end..null_buffers]
+Get a random-access iterator for one past the last element.
 
- class stream_protocol
 
+ const_iterator end() const;
 
-[heading Types]
-[table
- [[Name][Description]]
 
- [
 
- [[link boost_asio.reference.local__stream_protocol.acceptor [*acceptor]]]
- [The UNIX domain acceptor type. ]
-
- ]
+[endsect]
 
- [
 
- [[link boost_asio.reference.local__stream_protocol.endpoint [*endpoint]]]
- [The type of a UNIX domain endpoint. ]
-
- ]
 
- [
+[section:value_type null_buffers::value_type]
 
- [[link boost_asio.reference.local__stream_protocol.iostream [*iostream]]]
- [The UNIX domain iostream type. ]
-
- ]
+[indexterm2 value_type..null_buffers]
+The type for each element in the list of buffers.
 
- [
 
- [[link boost_asio.reference.local__stream_protocol.socket [*socket]]]
- [The UNIX domain socket type. ]
-
- ]
+ typedef mutable_buffer value_type;
 
-]
 
 [heading Member Functions]
 [table
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.local__stream_protocol.family [*family]]]
- [Obtain an identifier for the protocol family. ]
- ]
-
- [
- [[link boost_asio.reference.local__stream_protocol.protocol [*protocol]]]
- [Obtain an identifier for the protocol. ]
+ [[link boost_asio.reference.mutable_buffer.mutable_buffer [*mutable_buffer]]]
+ [Construct an empty buffer.
+
+ Construct a buffer to represent a given memory range. ]
   ]
   
+]
+
+[heading Related Functions]
+[table
+ [[Name][Description]]
+
   [
- [[link boost_asio.reference.local__stream_protocol.type [*type]]]
- [Obtain an identifier for the type of the protocol. ]
+ [[link boost_asio.reference.mutable_buffer.operator_plus_ [*operator+]]]
+ [Create a new modifiable buffer that is offset from the start of another. ]
   ]
   
 ]
 
-The [link boost_asio.reference.local__stream_protocol `local::stream_protocol`] class contains flags necessary for stream-oriented UNIX domain sockets.
+The [link boost_asio.reference.mutable_buffer `mutable_buffer`] class provides a safe representation of a buffer that can be modified. It does not own the underlying data, and so is cheap to copy or assign.
 
 
-[heading Thread Safety]
+[heading Accessing Buffer Contents]
   
-[*Distinct] [*objects:] Safe.
 
-[*Shared] [*objects:] Safe.
+
+The contents of a buffer may be accessed using the [link boost_asio.reference.buffer_size `buffer_size`] and [link boost_asio.reference.buffer_cast `buffer_cast`] functions:
+
+
+
+ boost::asio::mutable_buffer b1 = ...;
+ std::size_t s1 = boost::asio::buffer_size(b1);
+ unsigned char* p1 = boost::asio::buffer_cast<unsigned char*>(b1);
 
 
 
 
+The `boost::asio::buffer_cast` function permits violations of type safety, so uses of it in application code should be carefully considered.
+
+
 [heading Requirements]
 
-[*Header: ][^boost/asio/local/stream_protocol.hpp]
+[*Header: ][^boost/asio/buffer.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
 
-[section:acceptor local::stream_protocol::acceptor]
+[endsect]
 
-[indexterm2 acceptor..local::stream_protocol]
-The UNIX domain acceptor type.
 
 
- typedef basic_socket_acceptor< stream_protocol > acceptor;
+[endsect]
 
 
-[heading Types]
-[table
- [[Name][Description]]
+[section:placeholders__bytes_transferred placeholders::bytes_transferred]
 
- [
+[indexterm1 placeholders::bytes_transferred]
+An argument placeholder, for use with boost::bind(), that corresponds to the bytes\_transferred argument of a handler for asynchronous functions such as `boost::asio::basic_stream_socket::async_write_some` or `boost::asio::async_write`.
 
- [[link boost_asio.reference.basic_socket_acceptor.broadcast [*broadcast]]]
- [Socket option to permit sending of broadcast messages. ]
-
- ]
 
- [
+ unspecified bytes_transferred;
 
- [[link boost_asio.reference.basic_socket_acceptor.bytes_readable [*bytes_readable]]]
- [IO control command to get the amount of data that can be read without blocking. ]
-
- ]
 
- [
+[heading Requirements]
 
- [[link boost_asio.reference.basic_socket_acceptor.debug [*debug]]]
- [Socket option to enable socket-level debugging. ]
-
- ]
+[*Header: ][^boost/asio/placeholders.hpp]
 
- [
+[*Convenience header: ][^boost/asio.hpp]
 
- [[link boost_asio.reference.basic_socket_acceptor.do_not_route [*do_not_route]]]
- [Socket option to prevent routing, use local interfaces only. ]
-
- ]
 
- [
+[endsect]
 
- [[link boost_asio.reference.basic_socket_acceptor.enable_connection_aborted [*enable_connection_aborted]]]
- [Socket option to report aborted connections on accept. ]
-
- ]
 
- [
 
- [[link boost_asio.reference.basic_socket_acceptor.endpoint_type [*endpoint_type]]]
- [The endpoint type. ]
-
- ]
+[section:placeholders__error placeholders::error]
 
- [
+[indexterm1 placeholders::error]
+An argument placeholder, for use with boost::bind(), that corresponds to the error argument of a handler for any of the asynchronous functions.
 
- [[link boost_asio.reference.basic_socket_acceptor.implementation_type [*implementation_type]]]
- [The underlying implementation type of I/O object. ]
-
- ]
 
- [
+ unspecified error;
 
- [[link boost_asio.reference.basic_socket_acceptor.keep_alive [*keep_alive]]]
- [Socket option to send keep-alives. ]
-
- ]
 
- [
+[heading Requirements]
 
- [[link boost_asio.reference.basic_socket_acceptor.linger [*linger]]]
- [Socket option to specify whether the socket lingers on close if unsent data is present. ]
-
- ]
+[*Header: ][^boost/asio/placeholders.hpp]
 
- [
+[*Convenience header: ][^boost/asio.hpp]
 
- [[link boost_asio.reference.basic_socket_acceptor.message_flags [*message_flags]]]
- [Bitmask type for flags that can be passed to send and receive operations. ]
-
- ]
 
- [
+[endsect]
 
- [[link boost_asio.reference.basic_socket_acceptor.native_handle_type [*native_handle_type]]]
- [The native representation of an acceptor. ]
-
- ]
 
- [
 
- [[link boost_asio.reference.basic_socket_acceptor.native_type [*native_type]]]
- [(Deprecated: Use native_handle_type.) The native representation of an acceptor. ]
-
- ]
+[section:placeholders__iterator placeholders::iterator]
 
- [
+[indexterm1 placeholders::iterator]
+An argument placeholder, for use with boost::bind(), that corresponds to the iterator argument of a handler for asynchronous functions such as boost::asio::basic\_resolver::async\_resolve.
 
- [[link boost_asio.reference.basic_socket_acceptor.non_blocking_io [*non_blocking_io]]]
- [(Deprecated: Use non_blocking().) IO control command to set the blocking mode of the socket. ]
-
- ]
 
- [
+ unspecified iterator;
+
+
+[heading Requirements]
+
+[*Header: ][^boost/asio/placeholders.hpp]
+
+[*Convenience header: ][^boost/asio.hpp]
+
+
+[endsect]
+
+
+
+[section:placeholders__signal_number placeholders::signal_number]
+
+[indexterm1 placeholders::signal_number]
+An argument placeholder, for use with boost::bind(), that corresponds to the signal\_number argument of a handler for asynchronous functions such as `boost::asio::signal_set::async_wait`.
+
+
+ unspecified signal_number;
+
+
+[heading Requirements]
+
+[*Header: ][^boost/asio/placeholders.hpp]
+
+[*Convenience header: ][^boost/asio.hpp]
+
+
+[endsect]
+
+
+[section:posix__basic_descriptor posix::basic_descriptor]
+
+
+Provides POSIX descriptor functionality.
 
- [[link boost_asio.reference.basic_socket_acceptor.protocol_type [*protocol_type]]]
- [The protocol type. ]
-
- ]
+
+ template<
+ typename ``[link boost_asio.reference.DescriptorService DescriptorService]``>
+ class basic_descriptor :
+ public basic_io_object< DescriptorService >,
+ public posix::descriptor_base
+
+
+[heading Types]
+[table
+ [[Name][Description]]
 
   [
 
- [[link boost_asio.reference.basic_socket_acceptor.receive_buffer_size [*receive_buffer_size]]]
- [Socket option for the receive buffer size of a socket. ]
+ [[link boost_asio.reference.posix__basic_descriptor.bytes_readable [*bytes_readable]]]
+ [IO control command to get the amount of data that can be read without blocking. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.basic_socket_acceptor.receive_low_watermark [*receive_low_watermark]]]
- [Socket option for the receive low watermark. ]
+ [[link boost_asio.reference.posix__basic_descriptor.implementation_type [*implementation_type]]]
+ [The underlying implementation type of I/O object. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.basic_socket_acceptor.reuse_address [*reuse_address]]]
- [Socket option to allow the socket to be bound to an address that is already in use. ]
+ [[link boost_asio.reference.posix__basic_descriptor.lowest_layer_type [*lowest_layer_type]]]
+ [A basic_descriptor is always the lowest layer. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.basic_socket_acceptor.send_buffer_size [*send_buffer_size]]]
- [Socket option for the send buffer size of a socket. ]
+ [[link boost_asio.reference.posix__basic_descriptor.native_handle_type [*native_handle_type]]]
+ [The native representation of a descriptor. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.basic_socket_acceptor.send_low_watermark [*send_low_watermark]]]
- [Socket option for the send low watermark. ]
+ [[link boost_asio.reference.posix__basic_descriptor.native_type [*native_type]]]
+ [(Deprecated: Use native_handle_type.) The native representation of a descriptor. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.basic_socket_acceptor.service_type [*service_type]]]
- [The type of the service that will be used to provide I/O operations. ]
+ [[link boost_asio.reference.posix__basic_descriptor.non_blocking_io [*non_blocking_io]]]
+ [(Deprecated: Use non_blocking().) IO control command to set the blocking mode of the descriptor. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.basic_socket_acceptor.shutdown_type [*shutdown_type]]]
- [Different ways a socket may be shutdown. ]
+ [[link boost_asio.reference.posix__basic_descriptor.service_type [*service_type]]]
+ [The type of the service that will be used to provide I/O operations. ]
   
   ]
 
@@ -66608,204 +69888,349 @@
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.basic_socket_acceptor.accept [*accept]]]
- [Accept a new connection.
+ [[link boost_asio.reference.posix__basic_descriptor.assign [*assign]]]
+ [Assign an existing native descriptor to the descriptor. ]
+ ]
+
+ [
+ [[link boost_asio.reference.posix__basic_descriptor.basic_descriptor [*basic_descriptor]]]
+ [Construct a basic_descriptor without opening it.
 
- Accept a new connection and obtain the endpoint of the peer. ]
+ Construct a basic_descriptor on an existing native descriptor.
+
+ Move-construct a basic_descriptor from another. ]
   ]
   
   [
- [[link boost_asio.reference.basic_socket_acceptor.assign [*assign]]]
- [Assigns an existing native acceptor to the acceptor. ]
+ [[link boost_asio.reference.posix__basic_descriptor.cancel [*cancel]]]
+ [Cancel all asynchronous operations associated with the descriptor. ]
   ]
   
   [
- [[link boost_asio.reference.basic_socket_acceptor.async_accept [*async_accept]]]
- [Start an asynchronous accept. ]
+ [[link boost_asio.reference.posix__basic_descriptor.close [*close]]]
+ [Close the descriptor. ]
   ]
   
   [
- [[link boost_asio.reference.basic_socket_acceptor.basic_socket_acceptor [*basic_socket_acceptor]]]
- [Construct an acceptor without opening it.
-
- Construct an open acceptor.
-
- Construct an acceptor opened on the given endpoint.
-
- Construct a basic_socket_acceptor on an existing native acceptor.
-
- Move-construct a basic_socket_acceptor from another. ]
+ [[link boost_asio.reference.posix__basic_descriptor.get_io_service [*get_io_service]]]
+ [Get the io_service associated with the object. ]
   ]
   
   [
- [[link boost_asio.reference.basic_socket_acceptor.bind [*bind]]]
- [Bind the acceptor to the given local endpoint. ]
+ [[link boost_asio.reference.posix__basic_descriptor.io_control [*io_control]]]
+ [Perform an IO control command on the descriptor. ]
   ]
   
   [
- [[link boost_asio.reference.basic_socket_acceptor.cancel [*cancel]]]
- [Cancel all asynchronous operations associated with the acceptor. ]
+ [[link boost_asio.reference.posix__basic_descriptor.is_open [*is_open]]]
+ [Determine whether the descriptor is open. ]
   ]
   
   [
- [[link boost_asio.reference.basic_socket_acceptor.close [*close]]]
- [Close the acceptor. ]
+ [[link boost_asio.reference.posix__basic_descriptor.lowest_layer [*lowest_layer]]]
+ [Get a reference to the lowest layer.
+
+ Get a const reference to the lowest layer. ]
   ]
   
   [
- [[link boost_asio.reference.basic_socket_acceptor.get_io_service [*get_io_service]]]
- [Get the io_service associated with the object. ]
+ [[link boost_asio.reference.posix__basic_descriptor.native [*native]]]
+ [(Deprecated: Use native_handle().) Get the native descriptor representation. ]
   ]
   
   [
- [[link boost_asio.reference.basic_socket_acceptor.get_option [*get_option]]]
- [Get an option from the acceptor. ]
+ [[link boost_asio.reference.posix__basic_descriptor.native_handle [*native_handle]]]
+ [Get the native descriptor representation. ]
   ]
   
   [
- [[link boost_asio.reference.basic_socket_acceptor.io_control [*io_control]]]
- [Perform an IO control command on the acceptor. ]
+ [[link boost_asio.reference.posix__basic_descriptor.native_non_blocking [*native_non_blocking]]]
+ [Gets the non-blocking mode of the native descriptor implementation.
+
+ Sets the non-blocking mode of the native descriptor implementation. ]
   ]
   
   [
- [[link boost_asio.reference.basic_socket_acceptor.is_open [*is_open]]]
- [Determine whether the acceptor is open. ]
+ [[link boost_asio.reference.posix__basic_descriptor.non_blocking [*non_blocking]]]
+ [Gets the non-blocking mode of the descriptor.
+
+ Sets the non-blocking mode of the descriptor. ]
   ]
   
   [
- [[link boost_asio.reference.basic_socket_acceptor.listen [*listen]]]
- [Place the acceptor into the state where it will listen for new connections. ]
+ [[link boost_asio.reference.posix__basic_descriptor.operator_eq_ [*operator=]]]
+ [Move-assign a basic_descriptor from another. ]
   ]
   
   [
- [[link boost_asio.reference.basic_socket_acceptor.local_endpoint [*local_endpoint]]]
- [Get the local endpoint of the acceptor. ]
+ [[link boost_asio.reference.posix__basic_descriptor.release [*release]]]
+ [Release ownership of the native descriptor implementation. ]
   ]
   
+]
+
+[heading Protected Member Functions]
+[table
+ [[Name][Description]]
+
   [
- [[link boost_asio.reference.basic_socket_acceptor.native [*native]]]
- [(Deprecated: Use native_handle().) Get the native acceptor representation. ]
+ [[link boost_asio.reference.posix__basic_descriptor.get_implementation [*get_implementation]]]
+ [Get the underlying implementation of the I/O object. ]
   ]
   
   [
- [[link boost_asio.reference.basic_socket_acceptor.native_handle [*native_handle]]]
- [Get the native acceptor representation. ]
+ [[link boost_asio.reference.posix__basic_descriptor.get_service [*get_service]]]
+ [Get the service associated with the I/O object. ]
   ]
   
   [
- [[link boost_asio.reference.basic_socket_acceptor.native_non_blocking [*native_non_blocking]]]
- [Gets the non-blocking mode of the native acceptor implementation.
+ [[link boost_asio.reference.posix__basic_descriptor._basic_descriptor [*~basic_descriptor]]]
+ [Protected destructor to prevent deletion through this type. ]
+ ]
+
+]
+
+[heading Protected Data Members]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.posix__basic_descriptor.implementation [*implementation]]]
+ [(Deprecated: Use get_implementation().) The underlying implementation of the I/O object. ]
+ ]
+
+ [
+ [[link boost_asio.reference.posix__basic_descriptor.service [*service]]]
+ [(Deprecated: Use get_service().) The service associated with the I/O object. ]
+ ]
+
+]
+
+The [link boost_asio.reference.posix__basic_descriptor `posix::basic_descriptor`] class template provides the ability to wrap a POSIX descriptor.
+
+
+[heading Thread Safety]
+
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Unsafe.
+
+
+
+[heading Requirements]
+
+[*Header: ][^boost/asio/posix/basic_descriptor.hpp]
+
+[*Convenience header: ][^boost/asio.hpp]
+
+[section:assign posix::basic_descriptor::assign]
+
+[indexterm2 assign..posix::basic_descriptor]
+Assign an existing native descriptor to the descriptor.
+
+
+ void ``[link boost_asio.reference.posix__basic_descriptor.assign.overload1 assign]``(
+ const native_handle_type & native_descriptor);
+ `` [''''&raquo;''' [link boost_asio.reference.posix__basic_descriptor.assign.overload1 more...]]``
+
+ boost::system::error_code ``[link boost_asio.reference.posix__basic_descriptor.assign.overload2 assign]``(
+ const native_handle_type & native_descriptor,
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.posix__basic_descriptor.assign.overload2 more...]]``
+
+
+[section:overload1 posix::basic_descriptor::assign (1 of 2 overloads)]
+
+
+Assign an existing native descriptor to the descriptor.
+
+
+ void assign(
+ const native_handle_type & native_descriptor);
+
+
+
+[endsect]
+
+
+
+[section:overload2 posix::basic_descriptor::assign (2 of 2 overloads)]
+
+
+Assign an existing native descriptor to the descriptor.
+
+
+ boost::system::error_code assign(
+ const native_handle_type & native_descriptor,
+ boost::system::error_code & ec);
+
+
+
+[endsect]
+
+
+[endsect]
+
+[section:basic_descriptor posix::basic_descriptor::basic_descriptor]
+
+[indexterm2 basic_descriptor..posix::basic_descriptor]
+Construct a [link boost_asio.reference.posix__basic_descriptor `posix::basic_descriptor`] without opening it.
+
+
+ explicit ``[link boost_asio.reference.posix__basic_descriptor.basic_descriptor.overload1 basic_descriptor]``(
+ boost::asio::io_service & io_service);
+ `` [''''&raquo;''' [link boost_asio.reference.posix__basic_descriptor.basic_descriptor.overload1 more...]]``
+
+
+Construct a [link boost_asio.reference.posix__basic_descriptor `posix::basic_descriptor`] on an existing native descriptor.
+
+
+ ``[link boost_asio.reference.posix__basic_descriptor.basic_descriptor.overload2 basic_descriptor]``(
+ boost::asio::io_service & io_service,
+ const native_handle_type & native_descriptor);
+ `` [''''&raquo;''' [link boost_asio.reference.posix__basic_descriptor.basic_descriptor.overload2 more...]]``
+
+
+Move-construct a [link boost_asio.reference.posix__basic_descriptor `posix::basic_descriptor`] from another.
+
+
+ ``[link boost_asio.reference.posix__basic_descriptor.basic_descriptor.overload3 basic_descriptor]``(
+ basic_descriptor && other);
+ `` [''''&raquo;''' [link boost_asio.reference.posix__basic_descriptor.basic_descriptor.overload3 more...]]``
+
+
+[section:overload1 posix::basic_descriptor::basic_descriptor (1 of 3 overloads)]
+
+
+Construct a [link boost_asio.reference.posix__basic_descriptor `posix::basic_descriptor`] without opening it.
+
+
+ basic_descriptor(
+ boost::asio::io_service & io_service);
+
+
+This constructor creates a descriptor without opening it.
 
- Sets the non-blocking mode of the native acceptor implementation. ]
- ]
-
- [
- [[link boost_asio.reference.basic_socket_acceptor.non_blocking [*non_blocking]]]
- [Gets the non-blocking mode of the acceptor.
 
- Sets the non-blocking mode of the acceptor. ]
- ]
-
- [
- [[link boost_asio.reference.basic_socket_acceptor.open [*open]]]
- [Open the acceptor using the specified protocol. ]
- ]
-
- [
- [[link boost_asio.reference.basic_socket_acceptor.operator_eq_ [*operator=]]]
- [Move-assign a basic_socket_acceptor from another. ]
- ]
-
- [
- [[link boost_asio.reference.basic_socket_acceptor.set_option [*set_option]]]
- [Set an option on the acceptor. ]
- ]
+[heading Parameters]
+
+
+[variablelist
   
+[[io_service][The [link boost_asio.reference.io_service `io_service`] object that the descriptor will use to dispatch handlers for any asynchronous operations performed on the descriptor. ]]
+
 ]
 
-[heading Protected Member Functions]
-[table
- [[Name][Description]]
 
- [
- [[link boost_asio.reference.basic_socket_acceptor.get_implementation [*get_implementation]]]
- [Get the underlying implementation of the I/O object. ]
- ]
+
+
+[endsect]
+
+
+
+[section:overload2 posix::basic_descriptor::basic_descriptor (2 of 3 overloads)]
+
+
+Construct a [link boost_asio.reference.posix__basic_descriptor `posix::basic_descriptor`] on an existing native descriptor.
+
+
+ basic_descriptor(
+ boost::asio::io_service & io_service,
+ const native_handle_type & native_descriptor);
+
+
+This constructor creates a descriptor object to hold an existing native descriptor.
+
+
+[heading Parameters]
+
+
+[variablelist
   
- [
- [[link boost_asio.reference.basic_socket_acceptor.get_service [*get_service]]]
- [Get the service associated with the I/O object. ]
- ]
+[[io_service][The [link boost_asio.reference.io_service `io_service`] object that the descriptor will use to dispatch handlers for any asynchronous operations performed on the descriptor.]]
+
+[[native_descriptor][A native descriptor.]]
+
+]
+
+
+[heading Exceptions]
+
+
+[variablelist
   
+[[boost::system::system_error][Thrown on failure. ]]
+
 ]
 
-[heading Data Members]
-[table
- [[Name][Description]]
 
- [
- [[link boost_asio.reference.basic_socket_acceptor.max_connections [*max_connections]]]
- [The maximum length of the queue of pending incoming connections. ]
- ]
 
- [
- [[link boost_asio.reference.basic_socket_acceptor.message_do_not_route [*message_do_not_route]]]
- [Specify that the data should not be subject to routing. ]
- ]
 
- [
- [[link boost_asio.reference.basic_socket_acceptor.message_end_of_record [*message_end_of_record]]]
- [Specifies that the data marks the end of a record. ]
- ]
+[endsect]
 
- [
- [[link boost_asio.reference.basic_socket_acceptor.message_out_of_band [*message_out_of_band]]]
- [Process out-of-band data. ]
- ]
 
- [
- [[link boost_asio.reference.basic_socket_acceptor.message_peek [*message_peek]]]
- [Peek at incoming data without removing it from the input queue. ]
- ]
 
-]
+[section:overload3 posix::basic_descriptor::basic_descriptor (3 of 3 overloads)]
 
-[heading Protected Data Members]
-[table
- [[Name][Description]]
 
- [
- [[link boost_asio.reference.basic_socket_acceptor.implementation [*implementation]]]
- [(Deprecated: Use get_implementation().) The underlying implementation of the I/O object. ]
- ]
+Move-construct a [link boost_asio.reference.posix__basic_descriptor `posix::basic_descriptor`] from another.
 
- [
- [[link boost_asio.reference.basic_socket_acceptor.service [*service]]]
- [(Deprecated: Use get_service().) The service associated with the I/O object. ]
- ]
 
-]
+ basic_descriptor(
+ basic_descriptor && other);
 
-The [link boost_asio.reference.basic_socket_acceptor `basic_socket_acceptor`] class template is used for accepting new socket connections.
+
+This constructor moves a descriptor from one object to another.
 
 
-[heading Thread Safety]
+[heading Parameters]
+
+
+[variablelist
   
-[*Distinct] [*objects:] Safe.
+[[other][The other [link boost_asio.reference.posix__basic_descriptor `posix::basic_descriptor`] object from which the move will occur.]]
+
+]
+
+
+[heading Remarks]
+
+Following the move, the moved-from object is in the same state as if constructed using the `basic_descriptor(io_service&) constructor`.
+
+
+
+
+[endsect]
+
+
+[endsect]
 
-[*Shared] [*objects:] Unsafe.
+
+[section:bytes_readable posix::basic_descriptor::bytes_readable]
+
+
+['Inherited from posix::descriptor_base.]
+
+[indexterm2 bytes_readable..posix::basic_descriptor]
+IO control command to get the amount of data that can be read without blocking.
+
+
+ typedef implementation_defined bytes_readable;
+
+
+
+Implements the FIONREAD IO control command.
 
 
 [heading Example]
   
-Opening a socket acceptor with the SO\_REUSEADDR option enabled:
 
- boost::asio::ip::tcp::acceptor acceptor(io_service);
- boost::asio::ip::tcp::endpoint endpoint(boost::asio::ip::tcp::v4(), port);
- acceptor.open(endpoint.protocol());
- acceptor.set_option(boost::asio::ip::tcp::acceptor::reuse_address(true));
- acceptor.bind(endpoint);
- acceptor.listen();
+
+ boost::asio::posix::stream_descriptor descriptor(io_service);
+ ...
+ boost::asio::descriptor_base::bytes_readable command(true);
+ descriptor.io_control(command);
+ std::size_t bytes_readable = command.get();
 
 
 
@@ -66815,7 +70240,7 @@
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/local/stream_protocol.hpp]
+[*Header: ][^boost/asio/posix/basic_descriptor.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
@@ -66823,712 +70248,306 @@
 [endsect]
 
 
+[section:cancel posix::basic_descriptor::cancel]
 
-[section:endpoint local::stream_protocol::endpoint]
+[indexterm2 cancel..posix::basic_descriptor]
+Cancel all asynchronous operations associated with the descriptor.
 
-[indexterm2 endpoint..local::stream_protocol]
-The type of a UNIX domain endpoint.
 
+ void ``[link boost_asio.reference.posix__basic_descriptor.cancel.overload1 cancel]``();
+ `` [''''&raquo;''' [link boost_asio.reference.posix__basic_descriptor.cancel.overload1 more...]]``
 
- typedef basic_endpoint< stream_protocol > endpoint;
+ boost::system::error_code ``[link boost_asio.reference.posix__basic_descriptor.cancel.overload2 cancel]``(
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.posix__basic_descriptor.cancel.overload2 more...]]``
 
 
-[heading Types]
-[table
- [[Name][Description]]
+[section:overload1 posix::basic_descriptor::cancel (1 of 2 overloads)]
 
- [
 
- [[link boost_asio.reference.local__basic_endpoint.data_type [*data_type]]]
- [The type of the endpoint structure. This type is dependent on the underlying implementation of the socket layer. ]
-
- ]
+Cancel all asynchronous operations associated with the descriptor.
 
- [
 
- [[link boost_asio.reference.local__basic_endpoint.protocol_type [*protocol_type]]]
- [The protocol type associated with the endpoint. ]
-
- ]
+ void cancel();
 
-]
 
-[heading Member Functions]
-[table
- [[Name][Description]]
+This function causes all outstanding asynchronous read or write operations to finish immediately, and the handlers for cancelled operations will be passed the `boost::asio::error::operation_aborted` error.
 
- [
- [[link boost_asio.reference.local__basic_endpoint.basic_endpoint [*basic_endpoint]]]
- [Default constructor.
 
- Construct an endpoint using the specified path name.
+[heading Exceptions]
+
 
- Copy constructor. ]
- ]
-
- [
- [[link boost_asio.reference.local__basic_endpoint.capacity [*capacity]]]
- [Get the capacity of the endpoint in the native type. ]
- ]
-
- [
- [[link boost_asio.reference.local__basic_endpoint.data [*data]]]
- [Get the underlying endpoint in the native type. ]
- ]
-
- [
- [[link boost_asio.reference.local__basic_endpoint.operator_eq_ [*operator=]]]
- [Assign from another endpoint. ]
- ]
+[variablelist
   
- [
- [[link boost_asio.reference.local__basic_endpoint.path [*path]]]
- [Get the path associated with the endpoint.
+[[boost::system::system_error][Thrown on failure. ]]
 
- Set the path associated with the endpoint. ]
- ]
-
- [
- [[link boost_asio.reference.local__basic_endpoint.protocol [*protocol]]]
- [The protocol associated with the endpoint. ]
- ]
-
- [
- [[link boost_asio.reference.local__basic_endpoint.resize [*resize]]]
- [Set the underlying size of the endpoint in the native type. ]
- ]
-
- [
- [[link boost_asio.reference.local__basic_endpoint.size [*size]]]
- [Get the underlying size of the endpoint in the native type. ]
- ]
-
 ]
 
-[heading Friends]
-[table
- [[Name][Description]]
-
- [
- [[link boost_asio.reference.local__basic_endpoint.operator_not__eq_ [*operator!=]]]
- [Compare two endpoints for inequality. ]
- ]
-
- [
- [[link boost_asio.reference.local__basic_endpoint.operator_lt_ [*operator<]]]
- [Compare endpoints for ordering. ]
- ]
-
- [
- [[link boost_asio.reference.local__basic_endpoint.operator_lt__eq_ [*operator<=]]]
- [Compare endpoints for ordering. ]
- ]
-
- [
- [[link boost_asio.reference.local__basic_endpoint.operator_eq__eq_ [*operator==]]]
- [Compare two endpoints for equality. ]
- ]
-
- [
- [[link boost_asio.reference.local__basic_endpoint.operator_gt_ [*operator>]]]
- [Compare endpoints for ordering. ]
- ]
-
- [
- [[link boost_asio.reference.local__basic_endpoint.operator_gt__eq_ [*operator>=]]]
- [Compare endpoints for ordering. ]
- ]
-
-]
 
-[heading Related Functions]
-[table
- [[Name][Description]]
 
- [
- [[link boost_asio.reference.local__basic_endpoint.operator_lt__lt_ [*operator<<]]]
- [Output an endpoint as a string. ]
- ]
-
-]
 
-The [link boost_asio.reference.local__basic_endpoint `local::basic_endpoint`] class template describes an endpoint that may be associated with a particular UNIX socket.
+[endsect]
 
 
-[heading Thread Safety]
-
-[*Distinct] [*objects:] Safe.
 
-[*Shared] [*objects:] Unsafe.
+[section:overload2 posix::basic_descriptor::cancel (2 of 2 overloads)]
 
 
+Cancel all asynchronous operations associated with the descriptor.
 
 
+ boost::system::error_code cancel(
+ boost::system::error_code & ec);
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/local/stream_protocol.hpp]
+This function causes all outstanding asynchronous read or write operations to finish immediately, and the handlers for cancelled operations will be passed the `boost::asio::error::operation_aborted` error.
 
-[*Convenience header: ][^boost/asio.hpp]
 
+[heading Parameters]
+
 
-[endsect]
+[variablelist
+
+[[ec][Set to indicate what error occurred, if any. ]]
 
+]
 
 
-[section:family local::stream_protocol::family]
 
-[indexterm2 family..local::stream_protocol]
-Obtain an identifier for the protocol family.
 
+[endsect]
 
- int family() const;
 
+[endsect]
 
+[section:close posix::basic_descriptor::close]
 
-[endsect]
+[indexterm2 close..posix::basic_descriptor]
+Close the descriptor.
 
 
+ void ``[link boost_asio.reference.posix__basic_descriptor.close.overload1 close]``();
+ `` [''''&raquo;''' [link boost_asio.reference.posix__basic_descriptor.close.overload1 more...]]``
 
-[section:iostream local::stream_protocol::iostream]
+ boost::system::error_code ``[link boost_asio.reference.posix__basic_descriptor.close.overload2 close]``(
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.posix__basic_descriptor.close.overload2 more...]]``
 
-[indexterm2 iostream..local::stream_protocol]
-The UNIX domain iostream type.
 
+[section:overload1 posix::basic_descriptor::close (1 of 2 overloads)]
 
- typedef basic_socket_iostream< stream_protocol > iostream;
 
+Close the descriptor.
 
-[heading Types]
-[table
- [[Name][Description]]
 
- [
+ void close();
 
- [[link boost_asio.reference.basic_socket_iostream.duration_type [*duration_type]]]
- [The duration type. ]
-
- ]
 
- [
+This function is used to close the descriptor. Any asynchronous read or write operations will be cancelled immediately, and will complete with the `boost::asio::error::operation_aborted` error.
 
- [[link boost_asio.reference.basic_socket_iostream.endpoint_type [*endpoint_type]]]
- [The endpoint type. ]
-
- ]
 
- [
+[heading Exceptions]
+
 
- [[link boost_asio.reference.basic_socket_iostream.time_type [*time_type]]]
- [The time type. ]
+[variablelist
   
- ]
+[[boost::system::system_error][Thrown on failure. Note that, even if the function indicates an error, the underlying descriptor is closed. ]]
 
 ]
 
-[heading Member Functions]
-[table
- [[Name][Description]]
 
- [
- [[link boost_asio.reference.basic_socket_iostream.basic_socket_iostream [*basic_socket_iostream]]]
- [Construct a basic_socket_iostream without establishing a connection.
 
- Establish a connection to an endpoint corresponding to a resolver query. ]
- ]
-
- [
- [[link boost_asio.reference.basic_socket_iostream.close [*close]]]
- [Close the connection. ]
- ]
-
- [
- [[link boost_asio.reference.basic_socket_iostream.connect [*connect]]]
- [Establish a connection to an endpoint corresponding to a resolver query. ]
- ]
-
- [
- [[link boost_asio.reference.basic_socket_iostream.error [*error]]]
- [Get the last error associated with the stream. ]
- ]
-
- [
- [[link boost_asio.reference.basic_socket_iostream.expires_at [*expires_at]]]
- [Get the stream's expiry time as an absolute time.
 
- Set the stream's expiry time as an absolute time. ]
- ]
-
- [
- [[link boost_asio.reference.basic_socket_iostream.expires_from_now [*expires_from_now]]]
- [Get the timer's expiry time relative to now.
+[endsect]
 
- Set the stream's expiry time relative to now. ]
- ]
-
- [
- [[link boost_asio.reference.basic_socket_iostream.rdbuf [*rdbuf]]]
- [Return a pointer to the underlying streambuf. ]
- ]
+
+
+[section:overload2 posix::basic_descriptor::close (2 of 2 overloads)]
+
+
+Close the descriptor.
+
+
+ boost::system::error_code close(
+ boost::system::error_code & ec);
+
+
+This function is used to close the descriptor. Any asynchronous read or write operations will be cancelled immediately, and will complete with the `boost::asio::error::operation_aborted` error.
+
+
+[heading Parameters]
+
+
+[variablelist
   
+[[ec][Set to indicate what error occurred, if any. Note that, even if the function indicates an error, the underlying descriptor is closed. ]]
+
 ]
 
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/local/stream_protocol.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
+[endsect]
 
 
 [endsect]
 
+[section:get_implementation posix::basic_descriptor::get_implementation]
 
+[indexterm2 get_implementation..posix::basic_descriptor]
+Get the underlying implementation of the I/O object.
 
-[section:protocol local::stream_protocol::protocol]
 
-[indexterm2 protocol..local::stream_protocol]
-Obtain an identifier for the protocol.
+ implementation_type & ``[link boost_asio.reference.posix__basic_descriptor.get_implementation.overload1 get_implementation]``();
+ `` [''''&raquo;''' [link boost_asio.reference.posix__basic_descriptor.get_implementation.overload1 more...]]``
 
+ const implementation_type & ``[link boost_asio.reference.posix__basic_descriptor.get_implementation.overload2 get_implementation]``() const;
+ `` [''''&raquo;''' [link boost_asio.reference.posix__basic_descriptor.get_implementation.overload2 more...]]``
 
- int protocol() const;
 
+[section:overload1 posix::basic_descriptor::get_implementation (1 of 2 overloads)]
 
 
-[endsect]
+['Inherited from basic_io_object.]
 
 
+Get the underlying implementation of the I/O object.
 
-[section:socket local::stream_protocol::socket]
 
-[indexterm2 socket..local::stream_protocol]
-The UNIX domain socket type.
+ implementation_type & get_implementation();
 
 
- typedef basic_stream_socket< stream_protocol > socket;
 
+[endsect]
 
-[heading Types]
-[table
- [[Name][Description]]
 
- [
 
- [[link boost_asio.reference.basic_stream_socket.broadcast [*broadcast]]]
- [Socket option to permit sending of broadcast messages. ]
-
- ]
+[section:overload2 posix::basic_descriptor::get_implementation (2 of 2 overloads)]
 
- [
 
- [[link boost_asio.reference.basic_stream_socket.bytes_readable [*bytes_readable]]]
- [IO control command to get the amount of data that can be read without blocking. ]
-
- ]
+['Inherited from basic_io_object.]
 
- [
 
- [[link boost_asio.reference.basic_stream_socket.debug [*debug]]]
- [Socket option to enable socket-level debugging. ]
-
- ]
+Get the underlying implementation of the I/O object.
 
- [
 
- [[link boost_asio.reference.basic_stream_socket.do_not_route [*do_not_route]]]
- [Socket option to prevent routing, use local interfaces only. ]
-
- ]
+ const implementation_type & get_implementation() const;
 
- [
 
- [[link boost_asio.reference.basic_stream_socket.enable_connection_aborted [*enable_connection_aborted]]]
- [Socket option to report aborted connections on accept. ]
-
- ]
 
- [
+[endsect]
 
- [[link boost_asio.reference.basic_stream_socket.endpoint_type [*endpoint_type]]]
- [The endpoint type. ]
-
- ]
 
- [
+[endsect]
 
- [[link boost_asio.reference.basic_stream_socket.implementation_type [*implementation_type]]]
- [The underlying implementation type of I/O object. ]
-
- ]
 
- [
+[section:get_io_service posix::basic_descriptor::get_io_service]
 
- [[link boost_asio.reference.basic_stream_socket.keep_alive [*keep_alive]]]
- [Socket option to send keep-alives. ]
-
- ]
 
- [
+['Inherited from basic_io_object.]
 
- [[link boost_asio.reference.basic_stream_socket.linger [*linger]]]
- [Socket option to specify whether the socket lingers on close if unsent data is present. ]
-
- ]
+[indexterm2 get_io_service..posix::basic_descriptor]
+Get the [link boost_asio.reference.io_service `io_service`] associated with the object.
 
- [
 
- [[link boost_asio.reference.basic_stream_socket.lowest_layer_type [*lowest_layer_type]]]
- [A basic_socket is always the lowest layer. ]
-
- ]
+ boost::asio::io_service & get_io_service();
+
+
+This function may be used to obtain the [link boost_asio.reference.io_service `io_service`] object that the I/O object uses to dispatch handlers for asynchronous operations.
+
 
- [
+[heading Return Value]
+
+A reference to the [link boost_asio.reference.io_service `io_service`] object that the I/O object will use to dispatch handlers. Ownership is not transferred to the caller.
 
- [[link boost_asio.reference.basic_stream_socket.message_flags [*message_flags]]]
- [Bitmask type for flags that can be passed to send and receive operations. ]
-
- ]
 
- [
 
- [[link boost_asio.reference.basic_stream_socket.native_handle_type [*native_handle_type]]]
- [The native representation of a socket. ]
-
- ]
 
- [
+[endsect]
 
- [[link boost_asio.reference.basic_stream_socket.native_type [*native_type]]]
- [(Deprecated: Use native_handle_type.) The native representation of a socket. ]
-
- ]
 
- [
+[section:get_service posix::basic_descriptor::get_service]
 
- [[link boost_asio.reference.basic_stream_socket.non_blocking_io [*non_blocking_io]]]
- [(Deprecated: Use non_blocking().) IO control command to set the blocking mode of the socket. ]
-
- ]
+[indexterm2 get_service..posix::basic_descriptor]
+Get the service associated with the I/O object.
 
- [
 
- [[link boost_asio.reference.basic_stream_socket.protocol_type [*protocol_type]]]
- [The protocol type. ]
-
- ]
+ service_type & ``[link boost_asio.reference.posix__basic_descriptor.get_service.overload1 get_service]``();
+ `` [''''&raquo;''' [link boost_asio.reference.posix__basic_descriptor.get_service.overload1 more...]]``
 
- [
+ const service_type & ``[link boost_asio.reference.posix__basic_descriptor.get_service.overload2 get_service]``() const;
+ `` [''''&raquo;''' [link boost_asio.reference.posix__basic_descriptor.get_service.overload2 more...]]``
 
- [[link boost_asio.reference.basic_stream_socket.receive_buffer_size [*receive_buffer_size]]]
- [Socket option for the receive buffer size of a socket. ]
-
- ]
 
- [
+[section:overload1 posix::basic_descriptor::get_service (1 of 2 overloads)]
 
- [[link boost_asio.reference.basic_stream_socket.receive_low_watermark [*receive_low_watermark]]]
- [Socket option for the receive low watermark. ]
-
- ]
 
- [
+['Inherited from basic_io_object.]
 
- [[link boost_asio.reference.basic_stream_socket.reuse_address [*reuse_address]]]
- [Socket option to allow the socket to be bound to an address that is already in use. ]
-
- ]
 
- [
+Get the service associated with the I/O object.
 
- [[link boost_asio.reference.basic_stream_socket.send_buffer_size [*send_buffer_size]]]
- [Socket option for the send buffer size of a socket. ]
-
- ]
 
- [
+ service_type & get_service();
 
- [[link boost_asio.reference.basic_stream_socket.send_low_watermark [*send_low_watermark]]]
- [Socket option for the send low watermark. ]
-
- ]
 
- [
 
- [[link boost_asio.reference.basic_stream_socket.service_type [*service_type]]]
- [The type of the service that will be used to provide I/O operations. ]
-
- ]
+[endsect]
 
- [
 
- [[link boost_asio.reference.basic_stream_socket.shutdown_type [*shutdown_type]]]
- [Different ways a socket may be shutdown. ]
-
- ]
 
-]
+[section:overload2 posix::basic_descriptor::get_service (2 of 2 overloads)]
 
-[heading Member Functions]
-[table
- [[Name][Description]]
 
- [
- [[link boost_asio.reference.basic_stream_socket.assign [*assign]]]
- [Assign an existing native socket to the socket. ]
- ]
-
- [
- [[link boost_asio.reference.basic_stream_socket.async_connect [*async_connect]]]
- [Start an asynchronous connect. ]
- ]
-
- [
- [[link boost_asio.reference.basic_stream_socket.async_read_some [*async_read_some]]]
- [Start an asynchronous read. ]
- ]
-
- [
- [[link boost_asio.reference.basic_stream_socket.async_receive [*async_receive]]]
- [Start an asynchronous receive. ]
- ]
-
- [
- [[link boost_asio.reference.basic_stream_socket.async_send [*async_send]]]
- [Start an asynchronous send. ]
- ]
-
- [
- [[link boost_asio.reference.basic_stream_socket.async_write_some [*async_write_some]]]
- [Start an asynchronous write. ]
- ]
-
- [
- [[link boost_asio.reference.basic_stream_socket.at_mark [*at_mark]]]
- [Determine whether the socket is at the out-of-band data mark. ]
- ]
-
- [
- [[link boost_asio.reference.basic_stream_socket.available [*available]]]
- [Determine the number of bytes available for reading. ]
- ]
-
- [
- [[link boost_asio.reference.basic_stream_socket.basic_stream_socket [*basic_stream_socket]]]
- [Construct a basic_stream_socket without opening it.
+['Inherited from basic_io_object.]
 
- Construct and open a basic_stream_socket.
 
- Construct a basic_stream_socket, opening it and binding it to the given local endpoint.
+Get the service associated with the I/O object.
 
- Construct a basic_stream_socket on an existing native socket.
 
- Move-construct a basic_stream_socket from another. ]
- ]
-
- [
- [[link boost_asio.reference.basic_stream_socket.bind [*bind]]]
- [Bind the socket to the given local endpoint. ]
- ]
-
- [
- [[link boost_asio.reference.basic_stream_socket.cancel [*cancel]]]
- [Cancel all asynchronous operations associated with the socket. ]
- ]
-
- [
- [[link boost_asio.reference.basic_stream_socket.close [*close]]]
- [Close the socket. ]
- ]
-
- [
- [[link boost_asio.reference.basic_stream_socket.connect [*connect]]]
- [Connect the socket to the specified endpoint. ]
- ]
-
- [
- [[link boost_asio.reference.basic_stream_socket.get_io_service [*get_io_service]]]
- [Get the io_service associated with the object. ]
- ]
-
- [
- [[link boost_asio.reference.basic_stream_socket.get_option [*get_option]]]
- [Get an option from the socket. ]
- ]
-
- [
- [[link boost_asio.reference.basic_stream_socket.io_control [*io_control]]]
- [Perform an IO control command on the socket. ]
- ]
-
- [
- [[link boost_asio.reference.basic_stream_socket.is_open [*is_open]]]
- [Determine whether the socket is open. ]
- ]
-
- [
- [[link boost_asio.reference.basic_stream_socket.local_endpoint [*local_endpoint]]]
- [Get the local endpoint of the socket. ]
- ]
-
- [
- [[link boost_asio.reference.basic_stream_socket.lowest_layer [*lowest_layer]]]
- [Get a reference to the lowest layer.
+ const service_type & get_service() const;
 
- Get a const reference to the lowest layer. ]
- ]
-
- [
- [[link boost_asio.reference.basic_stream_socket.native [*native]]]
- [(Deprecated: Use native_handle().) Get the native socket representation. ]
- ]
-
- [
- [[link boost_asio.reference.basic_stream_socket.native_handle [*native_handle]]]
- [Get the native socket representation. ]
- ]
-
- [
- [[link boost_asio.reference.basic_stream_socket.native_non_blocking [*native_non_blocking]]]
- [Gets the non-blocking mode of the native socket implementation.
 
- Sets the non-blocking mode of the native socket implementation. ]
- ]
-
- [
- [[link boost_asio.reference.basic_stream_socket.non_blocking [*non_blocking]]]
- [Gets the non-blocking mode of the socket.
 
- Sets the non-blocking mode of the socket. ]
- ]
-
- [
- [[link boost_asio.reference.basic_stream_socket.open [*open]]]
- [Open the socket using the specified protocol. ]
- ]
-
- [
- [[link boost_asio.reference.basic_stream_socket.operator_eq_ [*operator=]]]
- [Move-assign a basic_stream_socket from another. ]
- ]
-
- [
- [[link boost_asio.reference.basic_stream_socket.read_some [*read_some]]]
- [Read some data from the socket. ]
- ]
-
- [
- [[link boost_asio.reference.basic_stream_socket.receive [*receive]]]
- [Receive some data on the socket.
+[endsect]
 
- Receive some data on a connected socket. ]
- ]
-
- [
- [[link boost_asio.reference.basic_stream_socket.remote_endpoint [*remote_endpoint]]]
- [Get the remote endpoint of the socket. ]
- ]
-
- [
- [[link boost_asio.reference.basic_stream_socket.send [*send]]]
- [Send some data on the socket. ]
- ]
-
- [
- [[link boost_asio.reference.basic_stream_socket.set_option [*set_option]]]
- [Set an option on the socket. ]
- ]
-
- [
- [[link boost_asio.reference.basic_stream_socket.shutdown [*shutdown]]]
- [Disable sends or receives on the socket. ]
- ]
-
- [
- [[link boost_asio.reference.basic_stream_socket.write_some [*write_some]]]
- [Write some data to the socket. ]
- ]
-
-]
 
-[heading Protected Member Functions]
-[table
- [[Name][Description]]
+[endsect]
 
- [
- [[link boost_asio.reference.basic_stream_socket.get_implementation [*get_implementation]]]
- [Get the underlying implementation of the I/O object. ]
- ]
-
- [
- [[link boost_asio.reference.basic_stream_socket.get_service [*get_service]]]
- [Get the service associated with the I/O object. ]
- ]
-
-]
 
-[heading Data Members]
-[table
- [[Name][Description]]
+[section:implementation posix::basic_descriptor::implementation]
 
- [
- [[link boost_asio.reference.basic_stream_socket.max_connections [*max_connections]]]
- [The maximum length of the queue of pending incoming connections. ]
- ]
 
- [
- [[link boost_asio.reference.basic_stream_socket.message_do_not_route [*message_do_not_route]]]
- [Specify that the data should not be subject to routing. ]
- ]
+['Inherited from basic_io_object.]
 
- [
- [[link boost_asio.reference.basic_stream_socket.message_end_of_record [*message_end_of_record]]]
- [Specifies that the data marks the end of a record. ]
- ]
+[indexterm2 implementation..posix::basic_descriptor]
+(Deprecated: Use `get_implementation()`.) The underlying implementation of the I/O object.
 
- [
- [[link boost_asio.reference.basic_stream_socket.message_out_of_band [*message_out_of_band]]]
- [Process out-of-band data. ]
- ]
 
- [
- [[link boost_asio.reference.basic_stream_socket.message_peek [*message_peek]]]
- [Peek at incoming data without removing it from the input queue. ]
- ]
+ implementation_type implementation;
 
-]
 
-[heading Protected Data Members]
-[table
- [[Name][Description]]
 
- [
- [[link boost_asio.reference.basic_stream_socket.implementation [*implementation]]]
- [(Deprecated: Use get_implementation().) The underlying implementation of the I/O object. ]
- ]
+[endsect]
 
- [
- [[link boost_asio.reference.basic_stream_socket.service [*service]]]
- [(Deprecated: Use get_service().) The service associated with the I/O object. ]
- ]
 
-]
 
-The [link boost_asio.reference.basic_stream_socket `basic_stream_socket`] class template provides asynchronous and blocking stream-oriented socket functionality.
+[section:implementation_type posix::basic_descriptor::implementation_type]
 
 
-[heading Thread Safety]
-
-[*Distinct] [*objects:] Safe.
+['Inherited from basic_io_object.]
 
-[*Shared] [*objects:] Unsafe.
+[indexterm2 implementation_type..posix::basic_descriptor]
+The underlying implementation type of I/O object.
 
 
+ typedef service_type::implementation_type implementation_type;
 
 
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/local/stream_protocol.hpp]
+[*Header: ][^boost/asio/posix/basic_descriptor.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
@@ -67536,158 +70555,184 @@
 [endsect]
 
 
+[section:io_control posix::basic_descriptor::io_control]
 
-[section:type local::stream_protocol::type]
+[indexterm2 io_control..posix::basic_descriptor]
+Perform an IO control command on the descriptor.
 
-[indexterm2 type..local::stream_protocol]
-Obtain an identifier for the type of the protocol.
 
+ template<
+ typename ``[link boost_asio.reference.IoControlCommand IoControlCommand]``>
+ void ``[link boost_asio.reference.posix__basic_descriptor.io_control.overload1 io_control]``(
+ IoControlCommand & command);
+ `` [''''&raquo;''' [link boost_asio.reference.posix__basic_descriptor.io_control.overload1 more...]]``
 
- int type() const;
+ template<
+ typename ``[link boost_asio.reference.IoControlCommand IoControlCommand]``>
+ boost::system::error_code ``[link boost_asio.reference.posix__basic_descriptor.io_control.overload2 io_control]``(
+ IoControlCommand & command,
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.posix__basic_descriptor.io_control.overload2 more...]]``
 
 
+[section:overload1 posix::basic_descriptor::io_control (1 of 2 overloads)]
 
-[endsect]
 
+Perform an IO control command on the descriptor.
 
 
-[endsect]
+ template<
+ typename ``[link boost_asio.reference.IoControlCommand IoControlCommand]``>
+ void io_control(
+ IoControlCommand & command);
 
-[section:mutable_buffer mutable_buffer]
 
+This function is used to execute an IO control command on the descriptor.
 
-Holds a buffer that can be modified.
 
+[heading Parameters]
+
 
- class mutable_buffer
+[variablelist
+
+[[command][The IO control command to be performed on the descriptor.]]
 
+]
 
-[heading Member Functions]
-[table
- [[Name][Description]]
 
- [
- [[link boost_asio.reference.mutable_buffer.mutable_buffer [*mutable_buffer]]]
- [Construct an empty buffer.
+[heading Exceptions]
+
 
- Construct a buffer to represent a given memory range. ]
- ]
+[variablelist
   
+[[boost::system::system_error][Thrown on failure.]]
+
 ]
 
-[heading Related Functions]
-[table
- [[Name][Description]]
 
- [
- [[link boost_asio.reference.mutable_buffer.operator_plus_ [*operator+]]]
- [Create a new modifiable buffer that is offset from the start of another. ]
- ]
+
+[heading Example]
   
-]
+Getting the number of bytes ready to read:
 
-The [link boost_asio.reference.mutable_buffer `mutable_buffer`] class provides a safe representation of a buffer that can be modified. It does not own the underlying data, and so is cheap to copy or assign.
+ boost::asio::posix::stream_descriptor descriptor(io_service);
+ ...
+ boost::asio::posix::stream_descriptor::bytes_readable command;
+ descriptor.io_control(command);
+ std::size_t bytes_readable = command.get();
 
 
-[heading Accessing Buffer Contents]
-
 
 
-The contents of a buffer may be accessed using the [link boost_asio.reference.buffer_size `buffer_size`] and [link boost_asio.reference.buffer_cast `buffer_cast`] functions:
 
 
 
- boost::asio::mutable_buffer b1 = ...;
- std::size_t s1 = boost::asio::buffer_size(b1);
- unsigned char* p1 = boost::asio::buffer_cast<unsigned char*>(b1);
+[endsect]
 
 
 
+[section:overload2 posix::basic_descriptor::io_control (2 of 2 overloads)]
 
-The `boost::asio::buffer_cast` function permits violations of type safety, so uses of it in application code should be carefully considered.
 
-[heading Requirements]
+Perform an IO control command on the descriptor.
 
-[*Header: ][^boost/asio/buffer.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
+ template<
+ typename ``[link boost_asio.reference.IoControlCommand IoControlCommand]``>
+ boost::system::error_code io_control(
+ IoControlCommand & command,
+ boost::system::error_code & ec);
 
-[section:mutable_buffer mutable_buffer::mutable_buffer]
 
-[indexterm2 mutable_buffer..mutable_buffer]
-Construct an empty buffer.
+This function is used to execute an IO control command on the descriptor.
 
 
- ``[link boost_asio.reference.mutable_buffer.mutable_buffer.overload1 mutable_buffer]``();
- `` [''''&raquo;''' [link boost_asio.reference.mutable_buffer.mutable_buffer.overload1 more...]]``
+[heading Parameters]
+
 
+[variablelist
+
+[[command][The IO control command to be performed on the descriptor.]]
 
-Construct a buffer to represent a given memory range.
+[[ec][Set to indicate what error occurred, if any.]]
 
+]
 
- ``[link boost_asio.reference.mutable_buffer.mutable_buffer.overload2 mutable_buffer]``(
- void * data,
- std::size_t size);
- `` [''''&raquo;''' [link boost_asio.reference.mutable_buffer.mutable_buffer.overload2 more...]]``
 
 
-[section:overload1 mutable_buffer::mutable_buffer (1 of 2 overloads)]
+[heading Example]
+
+Getting the number of bytes ready to read:
+
+ boost::asio::posix::stream_descriptor descriptor(io_service);
+ ...
+ boost::asio::posix::stream_descriptor::bytes_readable command;
+ boost::system::error_code ec;
+ descriptor.io_control(command, ec);
+ if (ec)
+ {
+ // An error occurred.
+ }
+ std::size_t bytes_readable = command.get();
 
 
-Construct an empty buffer.
 
 
- mutable_buffer();
 
 
 
 [endsect]
 
 
+[endsect]
 
-[section:overload2 mutable_buffer::mutable_buffer (2 of 2 overloads)]
 
+[section:is_open posix::basic_descriptor::is_open]
 
-Construct a buffer to represent a given memory range.
+[indexterm2 is_open..posix::basic_descriptor]
+Determine whether the descriptor is open.
 
 
- mutable_buffer(
- void * data,
- std::size_t size);
+ bool is_open() const;
 
 
 
 [endsect]
 
 
-[endsect]
+[section:lowest_layer posix::basic_descriptor::lowest_layer]
 
-[section:operator_plus_ mutable_buffer::operator+]
+[indexterm2 lowest_layer..posix::basic_descriptor]
+Get a reference to the lowest layer.
 
-[indexterm2 operator+..mutable_buffer]
-Create a new modifiable buffer that is offset from the start of another.
 
+ lowest_layer_type & ``[link boost_asio.reference.posix__basic_descriptor.lowest_layer.overload1 lowest_layer]``();
+ `` [''''&raquo;''' [link boost_asio.reference.posix__basic_descriptor.lowest_layer.overload1 more...]]``
 
- mutable_buffer ``[link boost_asio.reference.mutable_buffer.operator_plus_.overload1 operator+]``(
- const mutable_buffer & b,
- std::size_t start);
- `` [''''&raquo;''' [link boost_asio.reference.mutable_buffer.operator_plus_.overload1 more...]]``
 
- mutable_buffer ``[link boost_asio.reference.mutable_buffer.operator_plus_.overload2 operator+]``(
- std::size_t start,
- const mutable_buffer & b);
- `` [''''&raquo;''' [link boost_asio.reference.mutable_buffer.operator_plus_.overload2 more...]]``
+Get a const reference to the lowest layer.
 
 
-[section:overload1 mutable_buffer::operator+ (1 of 2 overloads)]
+ const lowest_layer_type & ``[link boost_asio.reference.posix__basic_descriptor.lowest_layer.overload2 lowest_layer]``() const;
+ `` [''''&raquo;''' [link boost_asio.reference.posix__basic_descriptor.lowest_layer.overload2 more...]]``
 
 
-Create a new modifiable buffer that is offset from the start of another.
+[section:overload1 posix::basic_descriptor::lowest_layer (1 of 2 overloads)]
 
 
- mutable_buffer operator+(
- const mutable_buffer & b,
- std::size_t start);
+Get a reference to the lowest layer.
+
+
+ lowest_layer_type & lowest_layer();
+
+
+This function returns a reference to the lowest layer in a stack of layers. Since a [link boost_asio.reference.posix__basic_descriptor `posix::basic_descriptor`] cannot contain any further layers, it simply returns a reference to itself.
+
+
+[heading Return Value]
+
+A reference to the lowest layer in the stack of layers. Ownership is not transferred to the caller.
+
 
 
 
@@ -67695,19 +70740,23 @@
 
 
 
-[section:overload2 mutable_buffer::operator+ (2 of 2 overloads)]
+[section:overload2 posix::basic_descriptor::lowest_layer (2 of 2 overloads)]
 
 
-Create a new modifiable buffer that is offset from the start of another.
+Get a const reference to the lowest layer.
 
 
- mutable_buffer operator+(
- std::size_t start,
- const mutable_buffer & b);
+ const lowest_layer_type & lowest_layer() const;
 
 
+This function returns a const reference to the lowest layer in a stack of layers. Since a [link boost_asio.reference.posix__basic_descriptor `posix::basic_descriptor`] cannot contain any further layers, it simply returns a reference to itself.
+
+
+[heading Return Value]
+
+A const reference to the lowest layer in the stack of layers. Ownership is not transferred to the caller.
+
 
-[endsect]
 
 
 [endsect]
@@ -67715,14 +70764,14 @@
 
 [endsect]
 
-[section:mutable_buffers_1 mutable_buffers_1]
 
+[section:lowest_layer_type posix::basic_descriptor::lowest_layer_type]
 
-Adapts a single modifiable buffer so that it meets the requirements of the MutableBufferSequence concept.
+[indexterm2 lowest_layer_type..posix::basic_descriptor]
+A [link boost_asio.reference.posix__basic_descriptor `posix::basic_descriptor`] is always the lowest layer.
 
 
- class mutable_buffers_1 :
- public mutable_buffer
+ typedef basic_descriptor< DescriptorService > lowest_layer_type;
 
 
 [heading Types]
@@ -67731,15 +70780,50 @@
 
   [
 
- [[link boost_asio.reference.mutable_buffers_1.const_iterator [*const_iterator]]]
- [A random-access iterator type that may be used to read elements. ]
+ [[link boost_asio.reference.posix__basic_descriptor.bytes_readable [*bytes_readable]]]
+ [IO control command to get the amount of data that can be read without blocking. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.mutable_buffers_1.value_type [*value_type]]]
- [The type for each element in the list of buffers. ]
+ [[link boost_asio.reference.posix__basic_descriptor.implementation_type [*implementation_type]]]
+ [The underlying implementation type of I/O object. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.posix__basic_descriptor.lowest_layer_type [*lowest_layer_type]]]
+ [A basic_descriptor is always the lowest layer. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.posix__basic_descriptor.native_handle_type [*native_handle_type]]]
+ [The native representation of a descriptor. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.posix__basic_descriptor.native_type [*native_type]]]
+ [(Deprecated: Use native_handle_type.) The native representation of a descriptor. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.posix__basic_descriptor.non_blocking_io [*non_blocking_io]]]
+ [(Deprecated: Use non_blocking().) IO control command to set the blocking mode of the descriptor. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.posix__basic_descriptor.service_type [*service_type]]]
+ [The type of the service that will be used to provide I/O operations. ]
   
   ]
 
@@ -67750,256 +70834,336 @@
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.mutable_buffers_1.begin [*begin]]]
- [Get a random-access iterator to the first element. ]
+ [[link boost_asio.reference.posix__basic_descriptor.assign [*assign]]]
+ [Assign an existing native descriptor to the descriptor. ]
   ]
   
   [
- [[link boost_asio.reference.mutable_buffers_1.end [*end]]]
- [Get a random-access iterator for one past the last element. ]
+ [[link boost_asio.reference.posix__basic_descriptor.basic_descriptor [*basic_descriptor]]]
+ [Construct a basic_descriptor without opening it.
+
+ Construct a basic_descriptor on an existing native descriptor.
+
+ Move-construct a basic_descriptor from another. ]
   ]
   
   [
- [[link boost_asio.reference.mutable_buffers_1.mutable_buffers_1 [*mutable_buffers_1]]]
- [Construct to represent a given memory range.
+ [[link boost_asio.reference.posix__basic_descriptor.cancel [*cancel]]]
+ [Cancel all asynchronous operations associated with the descriptor. ]
+ ]
+
+ [
+ [[link boost_asio.reference.posix__basic_descriptor.close [*close]]]
+ [Close the descriptor. ]
+ ]
+
+ [
+ [[link boost_asio.reference.posix__basic_descriptor.get_io_service [*get_io_service]]]
+ [Get the io_service associated with the object. ]
+ ]
+
+ [
+ [[link boost_asio.reference.posix__basic_descriptor.io_control [*io_control]]]
+ [Perform an IO control command on the descriptor. ]
+ ]
+
+ [
+ [[link boost_asio.reference.posix__basic_descriptor.is_open [*is_open]]]
+ [Determine whether the descriptor is open. ]
+ ]
+
+ [
+ [[link boost_asio.reference.posix__basic_descriptor.lowest_layer [*lowest_layer]]]
+ [Get a reference to the lowest layer.
 
- Construct to represent a single modifiable buffer. ]
+ Get a const reference to the lowest layer. ]
+ ]
+
+ [
+ [[link boost_asio.reference.posix__basic_descriptor.native [*native]]]
+ [(Deprecated: Use native_handle().) Get the native descriptor representation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.posix__basic_descriptor.native_handle [*native_handle]]]
+ [Get the native descriptor representation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.posix__basic_descriptor.native_non_blocking [*native_non_blocking]]]
+ [Gets the non-blocking mode of the native descriptor implementation.
+
+ Sets the non-blocking mode of the native descriptor implementation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.posix__basic_descriptor.non_blocking [*non_blocking]]]
+ [Gets the non-blocking mode of the descriptor.
+
+ Sets the non-blocking mode of the descriptor. ]
+ ]
+
+ [
+ [[link boost_asio.reference.posix__basic_descriptor.operator_eq_ [*operator=]]]
+ [Move-assign a basic_descriptor from another. ]
+ ]
+
+ [
+ [[link boost_asio.reference.posix__basic_descriptor.release [*release]]]
+ [Release ownership of the native descriptor implementation. ]
   ]
   
 ]
 
-[heading Related Functions]
+[heading Protected Member Functions]
 [table
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.mutable_buffers_1.operator_plus_ [*operator+]]]
- [Create a new modifiable buffer that is offset from the start of another. ]
+ [[link boost_asio.reference.posix__basic_descriptor.get_implementation [*get_implementation]]]
+ [Get the underlying implementation of the I/O object. ]
+ ]
+
+ [
+ [[link boost_asio.reference.posix__basic_descriptor.get_service [*get_service]]]
+ [Get the service associated with the I/O object. ]
+ ]
+
+ [
+ [[link boost_asio.reference.posix__basic_descriptor._basic_descriptor [*~basic_descriptor]]]
+ [Protected destructor to prevent deletion through this type. ]
   ]
   
 ]
 
-[heading Requirements]
+[heading Protected Data Members]
+[table
+ [[Name][Description]]
 
-[*Header: ][^boost/asio/buffer.hpp]
+ [
+ [[link boost_asio.reference.posix__basic_descriptor.implementation [*implementation]]]
+ [(Deprecated: Use get_implementation().) The underlying implementation of the I/O object. ]
+ ]
 
-[*Convenience header: ][^boost/asio.hpp]
+ [
+ [[link boost_asio.reference.posix__basic_descriptor.service [*service]]]
+ [(Deprecated: Use get_service().) The service associated with the I/O object. ]
+ ]
 
+]
 
-[section:begin mutable_buffers_1::begin]
+The [link boost_asio.reference.posix__basic_descriptor `posix::basic_descriptor`] class template provides the ability to wrap a POSIX descriptor.
 
-[indexterm2 begin..mutable_buffers_1]
-Get a random-access iterator to the first element.
 
+[heading Thread Safety]
+
+[*Distinct] [*objects:] Safe.
 
- const_iterator begin() const;
+[*Shared] [*objects:] Unsafe.
 
 
 
-[endsect]
 
+[heading Requirements]
 
+[*Header: ][^boost/asio/posix/basic_descriptor.hpp]
 
-[section:const_iterator mutable_buffers_1::const_iterator]
+[*Convenience header: ][^boost/asio.hpp]
 
-[indexterm2 const_iterator..mutable_buffers_1]
-A random-access iterator type that may be used to read elements.
+
+[endsect]
 
 
- typedef const mutable_buffer * const_iterator;
 
+[section:native posix::basic_descriptor::native]
 
+[indexterm2 native..posix::basic_descriptor]
+(Deprecated: Use `native_handle()`.) Get the native descriptor representation.
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/buffer.hpp]
+ native_type native();
 
-[*Convenience header: ][^boost/asio.hpp]
+
+This function may be used to obtain the underlying representation of the descriptor. This is intended to allow access to native descriptor functionality that is not otherwise provided.
 
 
 [endsect]
 
 
 
-[section:end mutable_buffers_1::end]
+[section:native_handle posix::basic_descriptor::native_handle]
 
-[indexterm2 end..mutable_buffers_1]
-Get a random-access iterator for one past the last element.
+[indexterm2 native_handle..posix::basic_descriptor]
+Get the native descriptor representation.
 
 
- const_iterator end() const;
+ native_handle_type native_handle();
+
 
+This function may be used to obtain the underlying representation of the descriptor. This is intended to allow access to native descriptor functionality that is not otherwise provided.
 
 
 [endsect]
 
 
-[section:mutable_buffers_1 mutable_buffers_1::mutable_buffers_1]
 
-[indexterm2 mutable_buffers_1..mutable_buffers_1]
-Construct to represent a given memory range.
+[section:native_handle_type posix::basic_descriptor::native_handle_type]
 
+[indexterm2 native_handle_type..posix::basic_descriptor]
+The native representation of a descriptor.
 
- ``[link boost_asio.reference.mutable_buffers_1.mutable_buffers_1.overload1 mutable_buffers_1]``(
- void * data,
- std::size_t size);
- `` [''''&raquo;''' [link boost_asio.reference.mutable_buffers_1.mutable_buffers_1.overload1 more...]]``
 
+ typedef DescriptorService::native_handle_type native_handle_type;
 
-Construct to represent a single modifiable buffer.
 
 
- explicit ``[link boost_asio.reference.mutable_buffers_1.mutable_buffers_1.overload2 mutable_buffers_1]``(
- const mutable_buffer & b);
- `` [''''&raquo;''' [link boost_asio.reference.mutable_buffers_1.mutable_buffers_1.overload2 more...]]``
+[heading Requirements]
 
+[*Header: ][^boost/asio/posix/basic_descriptor.hpp]
 
-[section:overload1 mutable_buffers_1::mutable_buffers_1 (1 of 2 overloads)]
+[*Convenience header: ][^boost/asio.hpp]
 
 
-Construct to represent a given memory range.
+[endsect]
 
 
- mutable_buffers_1(
- void * data,
- std::size_t size);
+[section:native_non_blocking posix::basic_descriptor::native_non_blocking]
 
+[indexterm2 native_non_blocking..posix::basic_descriptor]
+Gets the non-blocking mode of the native descriptor implementation.
 
 
-[endsect]
+ bool ``[link boost_asio.reference.posix__basic_descriptor.native_non_blocking.overload1 native_non_blocking]``() const;
+ `` [''''&raquo;''' [link boost_asio.reference.posix__basic_descriptor.native_non_blocking.overload1 more...]]``
 
 
+Sets the non-blocking mode of the native descriptor implementation.
 
-[section:overload2 mutable_buffers_1::mutable_buffers_1 (2 of 2 overloads)]
 
+ void ``[link boost_asio.reference.posix__basic_descriptor.native_non_blocking.overload2 native_non_blocking]``(
+ bool mode);
+ `` [''''&raquo;''' [link boost_asio.reference.posix__basic_descriptor.native_non_blocking.overload2 more...]]``
 
-Construct to represent a single modifiable buffer.
+ boost::system::error_code ``[link boost_asio.reference.posix__basic_descriptor.native_non_blocking.overload3 native_non_blocking]``(
+ bool mode,
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.posix__basic_descriptor.native_non_blocking.overload3 more...]]``
 
 
- mutable_buffers_1(
- const mutable_buffer & b);
+[section:overload1 posix::basic_descriptor::native_non_blocking (1 of 3 overloads)]
 
 
+Gets the non-blocking mode of the native descriptor implementation.
 
-[endsect]
 
+ bool native_non_blocking() const;
 
-[endsect]
 
-[section:operator_plus_ mutable_buffers_1::operator+]
+This function is used to retrieve the non-blocking mode of the underlying native descriptor. This mode has no effect on the behaviour of the descriptor object's synchronous operations.
 
-[indexterm2 operator+..mutable_buffers_1]
-Create a new modifiable buffer that is offset from the start of another.
 
+[heading Return Value]
+
+`true` if the underlying descriptor is in non-blocking mode and direct system calls may fail with `boost::asio::error::would_block` (or the equivalent system error).
 
- mutable_buffer ``[link boost_asio.reference.mutable_buffers_1.operator_plus_.overload1 operator+]``(
- const mutable_buffer & b,
- std::size_t start);
- `` [''''&raquo;''' [link boost_asio.reference.mutable_buffers_1.operator_plus_.overload1 more...]]``
 
- mutable_buffer ``[link boost_asio.reference.mutable_buffers_1.operator_plus_.overload2 operator+]``(
- std::size_t start,
- const mutable_buffer & b);
- `` [''''&raquo;''' [link boost_asio.reference.mutable_buffers_1.operator_plus_.overload2 more...]]``
+[heading Remarks]
+
+The current non-blocking mode is cached by the descriptor object. Consequently, the return value may be incorrect if the non-blocking mode was set directly on the native descriptor.
 
 
-[section:overload1 mutable_buffers_1::operator+ (1 of 2 overloads)]
 
 
-['Inherited from mutable_buffer.]
+[endsect]
 
 
-Create a new modifiable buffer that is offset from the start of another.
 
+[section:overload2 posix::basic_descriptor::native_non_blocking (2 of 3 overloads)]
 
- mutable_buffer operator+(
- const mutable_buffer & b,
- std::size_t start);
 
+Sets the non-blocking mode of the native descriptor implementation.
 
 
-[endsect]
+ void native_non_blocking(
+ bool mode);
 
 
+This function is used to modify the non-blocking mode of the underlying native descriptor. It has no effect on the behaviour of the descriptor object's synchronous operations.
 
-[section:overload2 mutable_buffers_1::operator+ (2 of 2 overloads)]
 
+[heading Parameters]
+
 
-['Inherited from mutable_buffer.]
+[variablelist
+
+[[mode][If `true`, the underlying descriptor is put into non-blocking mode and direct system calls may fail with `boost::asio::error::would_block` (or the equivalent system error).]]
 
+]
 
-Create a new modifiable buffer that is offset from the start of another.
 
+[heading Exceptions]
+
 
- mutable_buffer operator+(
- std::size_t start,
- const mutable_buffer & b);
+[variablelist
+
+[[boost::system::system_error][Thrown on failure. If the `mode` is `false`, but the current value of `non_blocking()` is `true`, this function fails with `boost::asio::error::invalid_argument`, as the combination does not make sense. ]]
 
+]
 
 
-[endsect]
 
 
 [endsect]
 
 
-[section:value_type mutable_buffers_1::value_type]
 
-[indexterm2 value_type..mutable_buffers_1]
-The type for each element in the list of buffers.
+[section:overload3 posix::basic_descriptor::native_non_blocking (3 of 3 overloads)]
 
 
- typedef mutable_buffer value_type;
+Sets the non-blocking mode of the native descriptor implementation.
 
 
-[heading Member Functions]
-[table
- [[Name][Description]]
+ boost::system::error_code native_non_blocking(
+ bool mode,
+ boost::system::error_code & ec);
 
- [
- [[link boost_asio.reference.mutable_buffer.mutable_buffer [*mutable_buffer]]]
- [Construct an empty buffer.
 
- Construct a buffer to represent a given memory range. ]
- ]
-
-]
+This function is used to modify the non-blocking mode of the underlying native descriptor. It has no effect on the behaviour of the descriptor object's synchronous operations.
 
-[heading Related Functions]
-[table
- [[Name][Description]]
 
- [
- [[link boost_asio.reference.mutable_buffer.operator_plus_ [*operator+]]]
- [Create a new modifiable buffer that is offset from the start of another. ]
- ]
+[heading Parameters]
+
+
+[variablelist
   
+[[mode][If `true`, the underlying descriptor is put into non-blocking mode and direct system calls may fail with `boost::asio::error::would_block` (or the equivalent system error).]]
+
+[[ec][Set to indicate what error occurred, if any. If the `mode` is `false`, but the current value of `non_blocking()` is `true`, this function fails with `boost::asio::error::invalid_argument`, as the combination does not make sense. ]]
+
 ]
 
-The [link boost_asio.reference.mutable_buffer `mutable_buffer`] class provides a safe representation of a buffer that can be modified. It does not own the underlying data, and so is cheap to copy or assign.
 
 
-[heading Accessing Buffer Contents]
-
 
+[endsect]
 
-The contents of a buffer may be accessed using the [link boost_asio.reference.buffer_size `buffer_size`] and [link boost_asio.reference.buffer_cast `buffer_cast`] functions:
 
+[endsect]
 
 
- boost::asio::mutable_buffer b1 = ...;
- std::size_t s1 = boost::asio::buffer_size(b1);
- unsigned char* p1 = boost::asio::buffer_cast<unsigned char*>(b1);
+[section:native_type posix::basic_descriptor::native_type]
 
+[indexterm2 native_type..posix::basic_descriptor]
+(Deprecated: Use native\_handle\_type.) The native representation of a descriptor.
 
 
+ typedef DescriptorService::native_handle_type native_type;
 
-The `boost::asio::buffer_cast` function permits violations of type safety, so uses of it in application code should be carefully considered.
 
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/buffer.hpp]
+[*Header: ][^boost/asio/posix/basic_descriptor.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
@@ -68007,230 +71171,268 @@
 [endsect]
 
 
+[section:non_blocking posix::basic_descriptor::non_blocking]
+
+[indexterm2 non_blocking..posix::basic_descriptor]
+Gets the non-blocking mode of the descriptor.
+
+
+ bool ``[link boost_asio.reference.posix__basic_descriptor.non_blocking.overload1 non_blocking]``() const;
+ `` [''''&raquo;''' [link boost_asio.reference.posix__basic_descriptor.non_blocking.overload1 more...]]``
+
+
+Sets the non-blocking mode of the descriptor.
+
+
+ void ``[link boost_asio.reference.posix__basic_descriptor.non_blocking.overload2 non_blocking]``(
+ bool mode);
+ `` [''''&raquo;''' [link boost_asio.reference.posix__basic_descriptor.non_blocking.overload2 more...]]``
+
+ boost::system::error_code ``[link boost_asio.reference.posix__basic_descriptor.non_blocking.overload3 non_blocking]``(
+ bool mode,
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.posix__basic_descriptor.non_blocking.overload3 more...]]``
+
+
+[section:overload1 posix::basic_descriptor::non_blocking (1 of 3 overloads)]
+
+
+Gets the non-blocking mode of the descriptor.
+
+
+ bool non_blocking() const;
+
+
+
+[heading Return Value]
+
+`true` if the descriptor's synchronous operations will fail with `boost::asio::error::would_block` if they are unable to perform the requested operation immediately. If `false`, synchronous operations will block until complete.
+
+
+[heading Remarks]
+
+The non-blocking mode has no effect on the behaviour of asynchronous operations. Asynchronous operations will never fail with the error `boost::asio::error::would_block`.
+
+
+
 
 [endsect]
 
-[section:null_buffers null_buffers]
 
 
-An implementation of both the ConstBufferSequence and MutableBufferSequence concepts to represent a null buffer sequence.
+[section:overload2 posix::basic_descriptor::non_blocking (2 of 3 overloads)]
 
 
- class null_buffers
+Sets the non-blocking mode of the descriptor.
 
 
-[heading Types]
-[table
- [[Name][Description]]
+ void non_blocking(
+ bool mode);
 
- [
 
- [[link boost_asio.reference.null_buffers.const_iterator [*const_iterator]]]
- [A random-access iterator type that may be used to read elements. ]
-
- ]
 
- [
+[heading Parameters]
+
 
- [[link boost_asio.reference.null_buffers.value_type [*value_type]]]
- [The type for each element in the list of buffers. ]
+[variablelist
   
- ]
+[[mode][If `true`, the descriptor's synchronous operations will fail with `boost::asio::error::would_block` if they are unable to perform the requested operation immediately. If `false`, synchronous operations will block until complete.]]
 
 ]
 
-[heading Member Functions]
-[table
- [[Name][Description]]
 
- [
- [[link boost_asio.reference.null_buffers.begin [*begin]]]
- [Get a random-access iterator to the first element. ]
- ]
-
- [
- [[link boost_asio.reference.null_buffers.end [*end]]]
- [Get a random-access iterator for one past the last element. ]
- ]
+[heading Exceptions]
+
+
+[variablelist
   
+[[boost::system::system_error][Thrown on failure.]]
+
 ]
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/buffer.hpp]
+[heading Remarks]
+
+The non-blocking mode has no effect on the behaviour of asynchronous operations. Asynchronous operations will never fail with the error `boost::asio::error::would_block`.
 
-[*Convenience header: ][^boost/asio.hpp]
 
 
-[section:begin null_buffers::begin]
 
-[indexterm2 begin..null_buffers]
-Get a random-access iterator to the first element.
+[endsect]
 
 
- const_iterator begin() const;
 
+[section:overload3 posix::basic_descriptor::non_blocking (3 of 3 overloads)]
 
 
-[endsect]
+Sets the non-blocking mode of the descriptor.
 
 
+ boost::system::error_code non_blocking(
+ bool mode,
+ boost::system::error_code & ec);
 
-[section:const_iterator null_buffers::const_iterator]
 
-[indexterm2 const_iterator..null_buffers]
-A random-access iterator type that may be used to read elements.
 
+[heading Parameters]
+
 
- typedef const mutable_buffer * const_iterator;
+[variablelist
+
+[[mode][If `true`, the descriptor's synchronous operations will fail with `boost::asio::error::would_block` if they are unable to perform the requested operation immediately. If `false`, synchronous operations will block until complete.]]
 
+[[ec][Set to indicate what error occurred, if any.]]
 
+]
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/buffer.hpp]
+[heading Remarks]
+
+The non-blocking mode has no effect on the behaviour of asynchronous operations. Asynchronous operations will never fail with the error `boost::asio::error::would_block`.
+
 
-[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
+[endsect]
 
-[section:end null_buffers::end]
 
-[indexterm2 end..null_buffers]
-Get a random-access iterator for one past the last element.
+[section:non_blocking_io posix::basic_descriptor::non_blocking_io]
 
 
- const_iterator end() const;
+['Inherited from posix::descriptor_base.]
 
+[indexterm2 non_blocking_io..posix::basic_descriptor]
+(Deprecated: Use non\_blocking().) IO control command to set the blocking mode of the descriptor.
 
 
-[endsect]
+ typedef implementation_defined non_blocking_io;
 
 
 
-[section:value_type null_buffers::value_type]
+Implements the FIONBIO IO control command.
 
-[indexterm2 value_type..null_buffers]
-The type for each element in the list of buffers.
 
+[heading Example]
+
 
- typedef mutable_buffer value_type;
 
+ boost::asio::posix::stream_descriptor descriptor(io_service);
+ ...
+ boost::asio::descriptor_base::non_blocking_io command(true);
+ descriptor.io_control(command);
 
-[heading Member Functions]
-[table
- [[Name][Description]]
 
- [
- [[link boost_asio.reference.mutable_buffer.mutable_buffer [*mutable_buffer]]]
- [Construct an empty buffer.
 
- Construct a buffer to represent a given memory range. ]
- ]
-
-]
 
-[heading Related Functions]
-[table
- [[Name][Description]]
 
- [
- [[link boost_asio.reference.mutable_buffer.operator_plus_ [*operator+]]]
- [Create a new modifiable buffer that is offset from the start of another. ]
- ]
-
-]
 
-The [link boost_asio.reference.mutable_buffer `mutable_buffer`] class provides a safe representation of a buffer that can be modified. It does not own the underlying data, and so is cheap to copy or assign.
+
+[heading Requirements]
+
+[*Header: ][^boost/asio/posix/basic_descriptor.hpp]
+
+[*Convenience header: ][^boost/asio.hpp]
 
 
-[heading Accessing Buffer Contents]
-
+[endsect]
 
 
-The contents of a buffer may be accessed using the [link boost_asio.reference.buffer_size `buffer_size`] and [link boost_asio.reference.buffer_cast `buffer_cast`] functions:
 
+[section:operator_eq_ posix::basic_descriptor::operator=]
 
+[indexterm2 operator=..posix::basic_descriptor]
+Move-assign a [link boost_asio.reference.posix__basic_descriptor `posix::basic_descriptor`] from another.
 
- boost::asio::mutable_buffer b1 = ...;
- std::size_t s1 = boost::asio::buffer_size(b1);
- unsigned char* p1 = boost::asio::buffer_cast<unsigned char*>(b1);
 
+ basic_descriptor & operator=(
+ basic_descriptor && other);
 
 
+This assignment operator moves a descriptor from one object to another.
 
-The `boost::asio::buffer_cast` function permits violations of type safety, so uses of it in application code should be carefully considered.
 
+[heading Parameters]
+
 
-[heading Requirements]
+[variablelist
+
+[[other][The other [link boost_asio.reference.posix__basic_descriptor `posix::basic_descriptor`] object from which the move will occur.]]
 
-[*Header: ][^boost/asio/buffer.hpp]
+]
 
-[*Convenience header: ][^boost/asio.hpp]
 
+[heading Remarks]
+
+Following the move, the moved-from object is in the same state as if constructed using the `basic_descriptor(io_service&) constructor`.
 
-[endsect]
 
 
 
 [endsect]
 
 
-[section:placeholders__bytes_transferred placeholders::bytes_transferred]
 
-[indexterm1 placeholders::bytes_transferred]
-An argument placeholder, for use with boost::bind(), that corresponds to the bytes\_transferred argument of a handler for asynchronous functions such as `boost::asio::basic_stream_socket::async_write_some` or `boost::asio::async_write`.
+[section:release posix::basic_descriptor::release]
 
+[indexterm2 release..posix::basic_descriptor]
+Release ownership of the native descriptor implementation.
 
- unspecified bytes_transferred;
 
+ native_handle_type release();
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/placeholders.hpp]
+This function may be used to obtain the underlying representation of the descriptor. After calling this function, `is_open()` returns false. The caller is responsible for closing the descriptor.
 
-[*Convenience header: ][^boost/asio.hpp]
+All outstanding asynchronous read or write operations will finish immediately, and the handlers for cancelled operations will be passed the `boost::asio::error::operation_aborted` error.
 
 
 [endsect]
 
 
 
-[section:placeholders__error placeholders::error]
+[section:service posix::basic_descriptor::service]
 
-[indexterm1 placeholders::error]
-An argument placeholder, for use with boost::bind(), that corresponds to the error argument of a handler for any of the asynchronous functions.
 
+['Inherited from basic_io_object.]
 
- unspecified error;
+[indexterm2 service..posix::basic_descriptor]
+(Deprecated: Use `get_service()`.) The service associated with the I/O object.
 
 
-[heading Requirements]
+ service_type & service;
+
+
+
+[heading Remarks]
+
+Available only for services that do not support movability.
 
-[*Header: ][^boost/asio/placeholders.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
 
-[section:placeholders__iterator placeholders::iterator]
+[section:service_type posix::basic_descriptor::service_type]
 
-[indexterm1 placeholders::iterator]
-An argument placeholder, for use with boost::bind(), that corresponds to the iterator argument of a handler for asynchronous functions such as boost::asio::basic\_resolver::async\_resolve.
 
+['Inherited from basic_io_object.]
+
+[indexterm2 service_type..posix::basic_descriptor]
+The type of the service that will be used to provide I/O operations.
+
+
+ typedef DescriptorService service_type;
 
- unspecified iterator;
 
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/placeholders.hpp]
+[*Header: ][^boost/asio/posix/basic_descriptor.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
@@ -68239,36 +71441,32 @@
 
 
 
-[section:placeholders__signal_number placeholders::signal_number]
+[section:_basic_descriptor posix::basic_descriptor::~basic_descriptor]
 
-[indexterm1 placeholders::signal_number]
-An argument placeholder, for use with boost::bind(), that corresponds to the signal\_number argument of a handler for asynchronous functions such as `boost::asio::signal_set::async_wait`.
+[indexterm2 ~basic_descriptor..posix::basic_descriptor]
+Protected destructor to prevent deletion through this type.
 
 
- unspecified signal_number;
+ ~basic_descriptor();
 
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/placeholders.hpp]
+[endsect]
 
-[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
-
-[section:posix__basic_descriptor posix::basic_descriptor]
+[section:posix__basic_stream_descriptor posix::basic_stream_descriptor]
 
 
-Provides POSIX descriptor functionality.
+Provides stream-oriented descriptor functionality.
 
 
   template<
- typename ``[link boost_asio.reference.DescriptorService DescriptorService]``>
- class basic_descriptor :
- public basic_io_object< DescriptorService >,
- public posix::descriptor_base
+ typename ``[link boost_asio.reference.StreamDescriptorService StreamDescriptorService]`` = stream_descriptor_service>
+ class basic_stream_descriptor :
+ public posix::basic_descriptor< StreamDescriptorService >
 
 
 [heading Types]
@@ -68277,49 +71475,49 @@
 
   [
 
- [[link boost_asio.reference.posix__basic_descriptor.bytes_readable [*bytes_readable]]]
+ [[link boost_asio.reference.posix__basic_stream_descriptor.bytes_readable [*bytes_readable]]]
     [IO control command to get the amount of data that can be read without blocking. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.posix__basic_descriptor.implementation_type [*implementation_type]]]
+ [[link boost_asio.reference.posix__basic_stream_descriptor.implementation_type [*implementation_type]]]
     [The underlying implementation type of I/O object. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.posix__basic_descriptor.lowest_layer_type [*lowest_layer_type]]]
+ [[link boost_asio.reference.posix__basic_stream_descriptor.lowest_layer_type [*lowest_layer_type]]]
     [A basic_descriptor is always the lowest layer. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.posix__basic_descriptor.native_handle_type [*native_handle_type]]]
+ [[link boost_asio.reference.posix__basic_stream_descriptor.native_handle_type [*native_handle_type]]]
     [The native representation of a descriptor. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.posix__basic_descriptor.native_type [*native_type]]]
+ [[link boost_asio.reference.posix__basic_stream_descriptor.native_type [*native_type]]]
     [(Deprecated: Use native_handle_type.) The native representation of a descriptor. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.posix__basic_descriptor.non_blocking_io [*non_blocking_io]]]
+ [[link boost_asio.reference.posix__basic_stream_descriptor.non_blocking_io [*non_blocking_io]]]
     [(Deprecated: Use non_blocking().) IO control command to set the blocking mode of the descriptor. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.posix__basic_descriptor.service_type [*service_type]]]
+ [[link boost_asio.reference.posix__basic_stream_descriptor.service_type [*service_type]]]
     [The type of the service that will be used to provide I/O operations. ]
   
   ]
@@ -68331,85 +71529,105 @@
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.posix__basic_descriptor.assign [*assign]]]
+ [[link boost_asio.reference.posix__basic_stream_descriptor.assign [*assign]]]
     [Assign an existing native descriptor to the descriptor. ]
   ]
   
   [
- [[link boost_asio.reference.posix__basic_descriptor.basic_descriptor [*basic_descriptor]]]
- [Construct a basic_descriptor without opening it.
+ [[link boost_asio.reference.posix__basic_stream_descriptor.async_read_some [*async_read_some]]]
+ [Start an asynchronous read. ]
+ ]
+
+ [
+ [[link boost_asio.reference.posix__basic_stream_descriptor.async_write_some [*async_write_some]]]
+ [Start an asynchronous write. ]
+ ]
+
+ [
+ [[link boost_asio.reference.posix__basic_stream_descriptor.basic_stream_descriptor [*basic_stream_descriptor]]]
+ [Construct a basic_stream_descriptor without opening it.
 
- Construct a basic_descriptor on an existing native descriptor.
+ Construct a basic_stream_descriptor on an existing native descriptor.
 
- Move-construct a basic_descriptor from another. ]
+ Move-construct a basic_stream_descriptor from another. ]
   ]
   
   [
- [[link boost_asio.reference.posix__basic_descriptor.cancel [*cancel]]]
+ [[link boost_asio.reference.posix__basic_stream_descriptor.cancel [*cancel]]]
     [Cancel all asynchronous operations associated with the descriptor. ]
   ]
   
   [
- [[link boost_asio.reference.posix__basic_descriptor.close [*close]]]
+ [[link boost_asio.reference.posix__basic_stream_descriptor.close [*close]]]
     [Close the descriptor. ]
   ]
   
   [
- [[link boost_asio.reference.posix__basic_descriptor.get_io_service [*get_io_service]]]
+ [[link boost_asio.reference.posix__basic_stream_descriptor.get_io_service [*get_io_service]]]
     [Get the io_service associated with the object. ]
   ]
   
   [
- [[link boost_asio.reference.posix__basic_descriptor.io_control [*io_control]]]
+ [[link boost_asio.reference.posix__basic_stream_descriptor.io_control [*io_control]]]
     [Perform an IO control command on the descriptor. ]
   ]
   
   [
- [[link boost_asio.reference.posix__basic_descriptor.is_open [*is_open]]]
+ [[link boost_asio.reference.posix__basic_stream_descriptor.is_open [*is_open]]]
     [Determine whether the descriptor is open. ]
   ]
   
   [
- [[link boost_asio.reference.posix__basic_descriptor.lowest_layer [*lowest_layer]]]
+ [[link boost_asio.reference.posix__basic_stream_descriptor.lowest_layer [*lowest_layer]]]
     [Get a reference to the lowest layer.
 
      Get a const reference to the lowest layer. ]
   ]
   
   [
- [[link boost_asio.reference.posix__basic_descriptor.native [*native]]]
+ [[link boost_asio.reference.posix__basic_stream_descriptor.native [*native]]]
     [(Deprecated: Use native_handle().) Get the native descriptor representation. ]
   ]
   
   [
- [[link boost_asio.reference.posix__basic_descriptor.native_handle [*native_handle]]]
+ [[link boost_asio.reference.posix__basic_stream_descriptor.native_handle [*native_handle]]]
     [Get the native descriptor representation. ]
   ]
   
   [
- [[link boost_asio.reference.posix__basic_descriptor.native_non_blocking [*native_non_blocking]]]
+ [[link boost_asio.reference.posix__basic_stream_descriptor.native_non_blocking [*native_non_blocking]]]
     [Gets the non-blocking mode of the native descriptor implementation.
 
      Sets the non-blocking mode of the native descriptor implementation. ]
   ]
   
   [
- [[link boost_asio.reference.posix__basic_descriptor.non_blocking [*non_blocking]]]
+ [[link boost_asio.reference.posix__basic_stream_descriptor.non_blocking [*non_blocking]]]
     [Gets the non-blocking mode of the descriptor.
 
      Sets the non-blocking mode of the descriptor. ]
   ]
   
   [
- [[link boost_asio.reference.posix__basic_descriptor.operator_eq_ [*operator=]]]
- [Move-assign a basic_descriptor from another. ]
+ [[link boost_asio.reference.posix__basic_stream_descriptor.operator_eq_ [*operator=]]]
+ [Move-assign a basic_stream_descriptor from another. ]
   ]
   
   [
- [[link boost_asio.reference.posix__basic_descriptor.release [*release]]]
+ [[link boost_asio.reference.posix__basic_stream_descriptor.read_some [*read_some]]]
+ [Read some data from the descriptor. ]
+ ]
+
+ [
+ [[link boost_asio.reference.posix__basic_stream_descriptor.release [*release]]]
     [Release ownership of the native descriptor implementation. ]
   ]
   
+ [
+ [[link boost_asio.reference.posix__basic_stream_descriptor.write_some [*write_some]]]
+ [Write some data to the descriptor. ]
+ ]
+
 ]
 
 [heading Protected Member Functions]
@@ -68417,20 +71635,15 @@
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.posix__basic_descriptor.get_implementation [*get_implementation]]]
+ [[link boost_asio.reference.posix__basic_stream_descriptor.get_implementation [*get_implementation]]]
     [Get the underlying implementation of the I/O object. ]
   ]
   
   [
- [[link boost_asio.reference.posix__basic_descriptor.get_service [*get_service]]]
+ [[link boost_asio.reference.posix__basic_stream_descriptor.get_service [*get_service]]]
     [Get the service associated with the I/O object. ]
   ]
   
- [
- [[link boost_asio.reference.posix__basic_descriptor._basic_descriptor [*~basic_descriptor]]]
- [Protected destructor to prevent deletion through this type. ]
- ]
-
 ]
 
 [heading Protected Data Members]
@@ -68438,51 +71651,55 @@
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.posix__basic_descriptor.implementation [*implementation]]]
+ [[link boost_asio.reference.posix__basic_stream_descriptor.implementation [*implementation]]]
     [(Deprecated: Use get_implementation().) The underlying implementation of the I/O object. ]
   ]
 
   [
- [[link boost_asio.reference.posix__basic_descriptor.service [*service]]]
+ [[link boost_asio.reference.posix__basic_stream_descriptor.service [*service]]]
     [(Deprecated: Use get_service().) The service associated with the I/O object. ]
   ]
 
 ]
 
-The [link boost_asio.reference.posix__basic_descriptor `posix::basic_descriptor`] class template provides the ability to wrap a POSIX descriptor.
+The [link boost_asio.reference.posix__basic_stream_descriptor `posix::basic_stream_descriptor`] class template provides asynchronous and blocking stream-oriented descriptor functionality.
 
 
 [heading Thread Safety]
   
 [*Distinct] [*objects:] Safe.
 
-[*Shared] [*objects:] Unsafe.
+[*Shared] [*objects:] Unsafe.
+
 
 
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/posix/basic_descriptor.hpp]
+[*Header: ][^boost/asio/posix/basic_stream_descriptor.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
-[section:assign posix::basic_descriptor::assign]
+[section:assign posix::basic_stream_descriptor::assign]
 
-[indexterm2 assign..posix::basic_descriptor]
+[indexterm2 assign..posix::basic_stream_descriptor]
 Assign an existing native descriptor to the descriptor.
 
 
- void ``[link boost_asio.reference.posix__basic_descriptor.assign.overload1 assign]``(
+ void ``[link boost_asio.reference.posix__basic_stream_descriptor.assign.overload1 assign]``(
       const native_handle_type & native_descriptor);
- `` [''''&raquo;''' [link boost_asio.reference.posix__basic_descriptor.assign.overload1 more...]]``
+ `` [''''&raquo;''' [link boost_asio.reference.posix__basic_stream_descriptor.assign.overload1 more...]]``
 
- boost::system::error_code ``[link boost_asio.reference.posix__basic_descriptor.assign.overload2 assign]``(
+ boost::system::error_code ``[link boost_asio.reference.posix__basic_stream_descriptor.assign.overload2 assign]``(
       const native_handle_type & native_descriptor,
       boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.posix__basic_descriptor.assign.overload2 more...]]``
+ `` [''''&raquo;''' [link boost_asio.reference.posix__basic_stream_descriptor.assign.overload2 more...]]``
 
 
-[section:overload1 posix::basic_descriptor::assign (1 of 2 overloads)]
+[section:overload1 posix::basic_stream_descriptor::assign (1 of 2 overloads)]
+
+
+['Inherited from posix::basic_descriptor.]
 
 
 Assign an existing native descriptor to the descriptor.
@@ -68497,7 +71714,10 @@
 
 
 
-[section:overload2 posix::basic_descriptor::assign (2 of 2 overloads)]
+[section:overload2 posix::basic_stream_descriptor::assign (2 of 2 overloads)]
+
+
+['Inherited from posix::basic_descriptor.]
 
 
 Assign an existing native descriptor to the descriptor.
@@ -68514,45 +71734,159 @@
 
 [endsect]
 
-[section:basic_descriptor posix::basic_descriptor::basic_descriptor]
 
-[indexterm2 basic_descriptor..posix::basic_descriptor]
-Construct a [link boost_asio.reference.posix__basic_descriptor `posix::basic_descriptor`] without opening it.
+[section:async_read_some posix::basic_stream_descriptor::async_read_some]
 
+[indexterm2 async_read_some..posix::basic_stream_descriptor]
+Start an asynchronous read.
 
- explicit ``[link boost_asio.reference.posix__basic_descriptor.basic_descriptor.overload1 basic_descriptor]``(
+
+ template<
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
+ typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
+ void async_read_some(
+ const MutableBufferSequence & buffers,
+ ReadHandler handler);
+
+
+This function is used to asynchronously read data from the stream descriptor. The function call always returns immediately.
+
+
+[heading Parameters]
+
+
+[variablelist
+
+[[buffers][One or more buffers into which the data will be read. Although the buffers object may be copied as necessary, ownership of the underlying memory blocks is retained by the caller, which must guarantee that they remain valid until the handler is called.]]
+
+[[handler][The handler to be called when the read operation completes. Copies will be made of the handler as required. The function signature of the handler must be:
+``
+ void handler(
+ const boost::system::error_code& error, // Result of operation.
+ std::size_t bytes_transferred // Number of bytes read.
+ );
+``
+Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using `boost::asio::io_service::post()`.]]
+
+]
+
+
+[heading Remarks]
+
+The read operation may not read all of the requested number of bytes. Consider using the [link boost_asio.reference.async_read `async_read`] function if you need to ensure that the requested amount of data is read before the asynchronous operation completes.
+
+
+[heading Example]
+
+To read into a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
+
+ descriptor.async_read_some(boost::asio::buffer(data, size), handler);
+
+
+See the [link boost_asio.reference.buffer `buffer`] documentation for information on reading into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+
+
+
+
+[endsect]
+
+
+
+[section:async_write_some posix::basic_stream_descriptor::async_write_some]
+
+[indexterm2 async_write_some..posix::basic_stream_descriptor]
+Start an asynchronous write.
+
+
+ template<
+ typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
+ typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
+ void async_write_some(
+ const ConstBufferSequence & buffers,
+ WriteHandler handler);
+
+
+This function is used to asynchronously write data to the stream descriptor. The function call always returns immediately.
+
+
+[heading Parameters]
+
+
+[variablelist
+
+[[buffers][One or more data buffers to be written to the descriptor. Although the buffers object may be copied as necessary, ownership of the underlying memory blocks is retained by the caller, which must guarantee that they remain valid until the handler is called.]]
+
+[[handler][The handler to be called when the write operation completes. Copies will be made of the handler as required. The function signature of the handler must be:
+``
+ void handler(
+ const boost::system::error_code& error, // Result of operation.
+ std::size_t bytes_transferred // Number of bytes written.
+ );
+``
+Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using `boost::asio::io_service::post()`.]]
+
+]
+
+
+[heading Remarks]
+
+The write operation may not transmit all of the data to the peer. Consider using the [link boost_asio.reference.async_write `async_write`] function if you need to ensure that all data is written before the asynchronous operation completes.
+
+
+[heading Example]
+
+To write a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
+
+ descriptor.async_write_some(boost::asio::buffer(data, size), handler);
+
+
+See the [link boost_asio.reference.buffer `buffer`] documentation for information on writing multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+
+
+
+
+[endsect]
+
+
+[section:basic_stream_descriptor posix::basic_stream_descriptor::basic_stream_descriptor]
+
+[indexterm2 basic_stream_descriptor..posix::basic_stream_descriptor]
+Construct a [link boost_asio.reference.posix__basic_stream_descriptor `posix::basic_stream_descriptor`] without opening it.
+
+
+ explicit ``[link boost_asio.reference.posix__basic_stream_descriptor.basic_stream_descriptor.overload1 basic_stream_descriptor]``(
       boost::asio::io_service & io_service);
- `` [''''&raquo;''' [link boost_asio.reference.posix__basic_descriptor.basic_descriptor.overload1 more...]]``
+ `` [''''&raquo;''' [link boost_asio.reference.posix__basic_stream_descriptor.basic_stream_descriptor.overload1 more...]]``
 
 
-Construct a [link boost_asio.reference.posix__basic_descriptor `posix::basic_descriptor`] on an existing native descriptor.
+Construct a [link boost_asio.reference.posix__basic_stream_descriptor `posix::basic_stream_descriptor`] on an existing native descriptor.
 
 
- ``[link boost_asio.reference.posix__basic_descriptor.basic_descriptor.overload2 basic_descriptor]``(
+ ``[link boost_asio.reference.posix__basic_stream_descriptor.basic_stream_descriptor.overload2 basic_stream_descriptor]``(
       boost::asio::io_service & io_service,
       const native_handle_type & native_descriptor);
- `` [''''&raquo;''' [link boost_asio.reference.posix__basic_descriptor.basic_descriptor.overload2 more...]]``
+ `` [''''&raquo;''' [link boost_asio.reference.posix__basic_stream_descriptor.basic_stream_descriptor.overload2 more...]]``
 
 
-Move-construct a [link boost_asio.reference.posix__basic_descriptor `posix::basic_descriptor`] from another.
+Move-construct a [link boost_asio.reference.posix__basic_stream_descriptor `posix::basic_stream_descriptor`] from another.
 
 
- ``[link boost_asio.reference.posix__basic_descriptor.basic_descriptor.overload3 basic_descriptor]``(
- basic_descriptor && other);
- `` [''''&raquo;''' [link boost_asio.reference.posix__basic_descriptor.basic_descriptor.overload3 more...]]``
+ ``[link boost_asio.reference.posix__basic_stream_descriptor.basic_stream_descriptor.overload3 basic_stream_descriptor]``(
+ basic_stream_descriptor && other);
+ `` [''''&raquo;''' [link boost_asio.reference.posix__basic_stream_descriptor.basic_stream_descriptor.overload3 more...]]``
 
 
-[section:overload1 posix::basic_descriptor::basic_descriptor (1 of 3 overloads)]
+[section:overload1 posix::basic_stream_descriptor::basic_stream_descriptor (1 of 3 overloads)]
 
 
-Construct a [link boost_asio.reference.posix__basic_descriptor `posix::basic_descriptor`] without opening it.
+Construct a [link boost_asio.reference.posix__basic_stream_descriptor `posix::basic_stream_descriptor`] without opening it.
 
 
- basic_descriptor(
+ basic_stream_descriptor(
       boost::asio::io_service & io_service);
 
 
-This constructor creates a descriptor without opening it.
+This constructor creates a stream descriptor without opening it. The descriptor needs to be opened and then connected or accepted before data can be sent or received on it.
 
 
 [heading Parameters]
@@ -68560,7 +71894,7 @@
 
 [variablelist
   
-[[io_service][The [link boost_asio.reference.io_service `io_service`] object that the descriptor will use to dispatch handlers for any asynchronous operations performed on the descriptor. ]]
+[[io_service][The [link boost_asio.reference.io_service `io_service`] object that the stream descriptor will use to dispatch handlers for any asynchronous operations performed on the descriptor. ]]
 
 ]
 
@@ -68571,18 +71905,18 @@
 
 
 
-[section:overload2 posix::basic_descriptor::basic_descriptor (2 of 3 overloads)]
+[section:overload2 posix::basic_stream_descriptor::basic_stream_descriptor (2 of 3 overloads)]
 
 
-Construct a [link boost_asio.reference.posix__basic_descriptor `posix::basic_descriptor`] on an existing native descriptor.
+Construct a [link boost_asio.reference.posix__basic_stream_descriptor `posix::basic_stream_descriptor`] on an existing native descriptor.
 
 
- basic_descriptor(
+ basic_stream_descriptor(
       boost::asio::io_service & io_service,
       const native_handle_type & native_descriptor);
 
 
-This constructor creates a descriptor object to hold an existing native descriptor.
+This constructor creates a stream descriptor object to hold an existing native descriptor.
 
 
 [heading Parameters]
@@ -68590,9 +71924,9 @@
 
 [variablelist
   
-[[io_service][The [link boost_asio.reference.io_service `io_service`] object that the descriptor will use to dispatch handlers for any asynchronous operations performed on the descriptor.]]
+[[io_service][The [link boost_asio.reference.io_service `io_service`] object that the stream descriptor will use to dispatch handlers for any asynchronous operations performed on the descriptor.]]
 
-[[native_descriptor][A native descriptor.]]
+[[native_descriptor][The new underlying descriptor implementation.]]
 
 ]
 
@@ -68613,17 +71947,17 @@
 
 
 
-[section:overload3 posix::basic_descriptor::basic_descriptor (3 of 3 overloads)]
+[section:overload3 posix::basic_stream_descriptor::basic_stream_descriptor (3 of 3 overloads)]
 
 
-Move-construct a [link boost_asio.reference.posix__basic_descriptor `posix::basic_descriptor`] from another.
+Move-construct a [link boost_asio.reference.posix__basic_stream_descriptor `posix::basic_stream_descriptor`] from another.
 
 
- basic_descriptor(
- basic_descriptor && other);
+ basic_stream_descriptor(
+ basic_stream_descriptor && other);
 
 
-This constructor moves a descriptor from one object to another.
+This constructor moves a stream descriptor from one object to another.
 
 
 [heading Parameters]
@@ -68631,14 +71965,14 @@
 
 [variablelist
   
-[[other][The other [link boost_asio.reference.posix__basic_descriptor `posix::basic_descriptor`] object from which the move will occur.]]
+[[other][The other [link boost_asio.reference.posix__basic_stream_descriptor `posix::basic_stream_descriptor`] object from which the move will occur.]]
 
 ]
 
 
 [heading Remarks]
       
-Following the move, the moved-from object is in the same state as if constructed using the `basic_descriptor(io_service&) constructor`.
+Following the move, the moved-from object is in the same state as if constructed using the `basic_stream_descriptor(io_service&) constructor`.
 
 
 
@@ -68649,12 +71983,12 @@
 [endsect]
 
 
-[section:bytes_readable posix::basic_descriptor::bytes_readable]
+[section:bytes_readable posix::basic_stream_descriptor::bytes_readable]
 
 
 ['Inherited from posix::descriptor_base.]
 
-[indexterm2 bytes_readable..posix::basic_descriptor]
+[indexterm2 bytes_readable..posix::basic_stream_descriptor]
 IO control command to get the amount of data that can be read without blocking.
 
 
@@ -68683,7 +72017,7 @@
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/posix/basic_descriptor.hpp]
+[*Header: ][^boost/asio/posix/basic_stream_descriptor.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
@@ -68691,21 +72025,24 @@
 [endsect]
 
 
-[section:cancel posix::basic_descriptor::cancel]
+[section:cancel posix::basic_stream_descriptor::cancel]
 
-[indexterm2 cancel..posix::basic_descriptor]
+[indexterm2 cancel..posix::basic_stream_descriptor]
 Cancel all asynchronous operations associated with the descriptor.
 
 
- void ``[link boost_asio.reference.posix__basic_descriptor.cancel.overload1 cancel]``();
- `` [''''&raquo;''' [link boost_asio.reference.posix__basic_descriptor.cancel.overload1 more...]]``
+ void ``[link boost_asio.reference.posix__basic_stream_descriptor.cancel.overload1 cancel]``();
+ `` [''''&raquo;''' [link boost_asio.reference.posix__basic_stream_descriptor.cancel.overload1 more...]]``
 
- boost::system::error_code ``[link boost_asio.reference.posix__basic_descriptor.cancel.overload2 cancel]``(
+ boost::system::error_code ``[link boost_asio.reference.posix__basic_stream_descriptor.cancel.overload2 cancel]``(
       boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.posix__basic_descriptor.cancel.overload2 more...]]``
+ `` [''''&raquo;''' [link boost_asio.reference.posix__basic_stream_descriptor.cancel.overload2 more...]]``
 
 
-[section:overload1 posix::basic_descriptor::cancel (1 of 2 overloads)]
+[section:overload1 posix::basic_stream_descriptor::cancel (1 of 2 overloads)]
+
+
+['Inherited from posix::basic_descriptor.]
 
 
 Cancel all asynchronous operations associated with the descriptor.
@@ -68733,7 +72070,10 @@
 
 
 
-[section:overload2 posix::basic_descriptor::cancel (2 of 2 overloads)]
+[section:overload2 posix::basic_stream_descriptor::cancel (2 of 2 overloads)]
+
+
+['Inherited from posix::basic_descriptor.]
 
 
 Cancel all asynchronous operations associated with the descriptor.
@@ -68763,21 +72103,24 @@
 
 [endsect]
 
-[section:close posix::basic_descriptor::close]
+[section:close posix::basic_stream_descriptor::close]
 
-[indexterm2 close..posix::basic_descriptor]
+[indexterm2 close..posix::basic_stream_descriptor]
 Close the descriptor.
 
 
- void ``[link boost_asio.reference.posix__basic_descriptor.close.overload1 close]``();
- `` [''''&raquo;''' [link boost_asio.reference.posix__basic_descriptor.close.overload1 more...]]``
+ void ``[link boost_asio.reference.posix__basic_stream_descriptor.close.overload1 close]``();
+ `` [''''&raquo;''' [link boost_asio.reference.posix__basic_stream_descriptor.close.overload1 more...]]``
 
- boost::system::error_code ``[link boost_asio.reference.posix__basic_descriptor.close.overload2 close]``(
+ boost::system::error_code ``[link boost_asio.reference.posix__basic_stream_descriptor.close.overload2 close]``(
       boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.posix__basic_descriptor.close.overload2 more...]]``
+ `` [''''&raquo;''' [link boost_asio.reference.posix__basic_stream_descriptor.close.overload2 more...]]``
 
 
-[section:overload1 posix::basic_descriptor::close (1 of 2 overloads)]
+[section:overload1 posix::basic_stream_descriptor::close (1 of 2 overloads)]
+
+
+['Inherited from posix::basic_descriptor.]
 
 
 Close the descriptor.
@@ -68805,7 +72148,10 @@
 
 
 
-[section:overload2 posix::basic_descriptor::close (2 of 2 overloads)]
+[section:overload2 posix::basic_stream_descriptor::close (2 of 2 overloads)]
+
+
+['Inherited from posix::basic_descriptor.]
 
 
 Close the descriptor.
@@ -68835,20 +72181,20 @@
 
 [endsect]
 
-[section:get_implementation posix::basic_descriptor::get_implementation]
+[section:get_implementation posix::basic_stream_descriptor::get_implementation]
 
-[indexterm2 get_implementation..posix::basic_descriptor]
+[indexterm2 get_implementation..posix::basic_stream_descriptor]
 Get the underlying implementation of the I/O object.
 
 
- implementation_type & ``[link boost_asio.reference.posix__basic_descriptor.get_implementation.overload1 get_implementation]``();
- `` [''''&raquo;''' [link boost_asio.reference.posix__basic_descriptor.get_implementation.overload1 more...]]``
+ implementation_type & ``[link boost_asio.reference.posix__basic_stream_descriptor.get_implementation.overload1 get_implementation]``();
+ `` [''''&raquo;''' [link boost_asio.reference.posix__basic_stream_descriptor.get_implementation.overload1 more...]]``
 
- const implementation_type & ``[link boost_asio.reference.posix__basic_descriptor.get_implementation.overload2 get_implementation]``() const;
- `` [''''&raquo;''' [link boost_asio.reference.posix__basic_descriptor.get_implementation.overload2 more...]]``
+ const implementation_type & ``[link boost_asio.reference.posix__basic_stream_descriptor.get_implementation.overload2 get_implementation]``() const;
+ `` [''''&raquo;''' [link boost_asio.reference.posix__basic_stream_descriptor.get_implementation.overload2 more...]]``
 
 
-[section:overload1 posix::basic_descriptor::get_implementation (1 of 2 overloads)]
+[section:overload1 posix::basic_stream_descriptor::get_implementation (1 of 2 overloads)]
 
 
 ['Inherited from basic_io_object.]
@@ -68865,7 +72211,7 @@
 
 
 
-[section:overload2 posix::basic_descriptor::get_implementation (2 of 2 overloads)]
+[section:overload2 posix::basic_stream_descriptor::get_implementation (2 of 2 overloads)]
 
 
 ['Inherited from basic_io_object.]
@@ -68884,12 +72230,12 @@
 [endsect]
 
 
-[section:get_io_service posix::basic_descriptor::get_io_service]
+[section:get_io_service posix::basic_stream_descriptor::get_io_service]
 
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 get_io_service..posix::basic_descriptor]
+[indexterm2 get_io_service..posix::basic_stream_descriptor]
 Get the [link boost_asio.reference.io_service `io_service`] associated with the object.
 
 
@@ -68909,20 +72255,20 @@
 [endsect]
 
 
-[section:get_service posix::basic_descriptor::get_service]
+[section:get_service posix::basic_stream_descriptor::get_service]
 
-[indexterm2 get_service..posix::basic_descriptor]
+[indexterm2 get_service..posix::basic_stream_descriptor]
 Get the service associated with the I/O object.
 
 
- service_type & ``[link boost_asio.reference.posix__basic_descriptor.get_service.overload1 get_service]``();
- `` [''''&raquo;''' [link boost_asio.reference.posix__basic_descriptor.get_service.overload1 more...]]``
+ service_type & ``[link boost_asio.reference.posix__basic_stream_descriptor.get_service.overload1 get_service]``();
+ `` [''''&raquo;''' [link boost_asio.reference.posix__basic_stream_descriptor.get_service.overload1 more...]]``
 
- const service_type & ``[link boost_asio.reference.posix__basic_descriptor.get_service.overload2 get_service]``() const;
- `` [''''&raquo;''' [link boost_asio.reference.posix__basic_descriptor.get_service.overload2 more...]]``
+ const service_type & ``[link boost_asio.reference.posix__basic_stream_descriptor.get_service.overload2 get_service]``() const;
+ `` [''''&raquo;''' [link boost_asio.reference.posix__basic_stream_descriptor.get_service.overload2 more...]]``
 
 
-[section:overload1 posix::basic_descriptor::get_service (1 of 2 overloads)]
+[section:overload1 posix::basic_stream_descriptor::get_service (1 of 2 overloads)]
 
 
 ['Inherited from basic_io_object.]
@@ -68939,7 +72285,7 @@
 
 
 
-[section:overload2 posix::basic_descriptor::get_service (2 of 2 overloads)]
+[section:overload2 posix::basic_stream_descriptor::get_service (2 of 2 overloads)]
 
 
 ['Inherited from basic_io_object.]
@@ -68958,12 +72304,12 @@
 [endsect]
 
 
-[section:implementation posix::basic_descriptor::implementation]
+[section:implementation posix::basic_stream_descriptor::implementation]
 
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 implementation..posix::basic_descriptor]
+[indexterm2 implementation..posix::basic_stream_descriptor]
 (Deprecated: Use `get_implementation()`.) The underlying implementation of the I/O object.
 
 
@@ -68975,12 +72321,12 @@
 
 
 
-[section:implementation_type posix::basic_descriptor::implementation_type]
+[section:implementation_type posix::basic_stream_descriptor::implementation_type]
 
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 implementation_type..posix::basic_descriptor]
+[indexterm2 implementation_type..posix::basic_stream_descriptor]
 The underlying implementation type of I/O object.
 
 
@@ -68990,7 +72336,7 @@
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/posix/basic_descriptor.hpp]
+[*Header: ][^boost/asio/posix/basic_stream_descriptor.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
@@ -68998,27 +72344,26 @@
 [endsect]
 
 
-[section:io_control posix::basic_descriptor::io_control]
+[section:io_control posix::basic_stream_descriptor::io_control]
 
-[indexterm2 io_control..posix::basic_descriptor]
+[indexterm2 io_control..posix::basic_stream_descriptor]
 Perform an IO control command on the descriptor.
 
 
- template<
- typename ``[link boost_asio.reference.IoControlCommand IoControlCommand]``>
- void ``[link boost_asio.reference.posix__basic_descriptor.io_control.overload1 io_control]``(
+ void ``[link boost_asio.reference.posix__basic_stream_descriptor.io_control.overload1 io_control]``(
       IoControlCommand & command);
- `` [''''&raquo;''' [link boost_asio.reference.posix__basic_descriptor.io_control.overload1 more...]]``
+ `` [''''&raquo;''' [link boost_asio.reference.posix__basic_stream_descriptor.io_control.overload1 more...]]``
 
- template<
- typename ``[link boost_asio.reference.IoControlCommand IoControlCommand]``>
- boost::system::error_code ``[link boost_asio.reference.posix__basic_descriptor.io_control.overload2 io_control]``(
+ boost::system::error_code ``[link boost_asio.reference.posix__basic_stream_descriptor.io_control.overload2 io_control]``(
       IoControlCommand & command,
       boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.posix__basic_descriptor.io_control.overload2 more...]]``
+ `` [''''&raquo;''' [link boost_asio.reference.posix__basic_stream_descriptor.io_control.overload2 more...]]``
 
 
-[section:overload1 posix::basic_descriptor::io_control (1 of 2 overloads)]
+[section:overload1 posix::basic_stream_descriptor::io_control (1 of 2 overloads)]
+
+
+['Inherited from posix::basic_descriptor.]
 
 
 Perform an IO control command on the descriptor.
@@ -69074,7 +72419,10 @@
 
 
 
-[section:overload2 posix::basic_descriptor::io_control (2 of 2 overloads)]
+[section:overload2 posix::basic_stream_descriptor::io_control (2 of 2 overloads)]
+
+
+['Inherited from posix::basic_descriptor.]
 
 
 Perform an IO control command on the descriptor.
@@ -69130,9 +72478,12 @@
 [endsect]
 
 
-[section:is_open posix::basic_descriptor::is_open]
+[section:is_open posix::basic_stream_descriptor::is_open]
 
-[indexterm2 is_open..posix::basic_descriptor]
+
+['Inherited from posix::basic_descriptor.]
+
+[indexterm2 is_open..posix::basic_stream_descriptor]
 Determine whether the descriptor is open.
 
 
@@ -69143,24 +72494,27 @@
 [endsect]
 
 
-[section:lowest_layer posix::basic_descriptor::lowest_layer]
+[section:lowest_layer posix::basic_stream_descriptor::lowest_layer]
 
-[indexterm2 lowest_layer..posix::basic_descriptor]
+[indexterm2 lowest_layer..posix::basic_stream_descriptor]
 Get a reference to the lowest layer.
 
 
- lowest_layer_type & ``[link boost_asio.reference.posix__basic_descriptor.lowest_layer.overload1 lowest_layer]``();
- `` [''''&raquo;''' [link boost_asio.reference.posix__basic_descriptor.lowest_layer.overload1 more...]]``
+ lowest_layer_type & ``[link boost_asio.reference.posix__basic_stream_descriptor.lowest_layer.overload1 lowest_layer]``();
+ `` [''''&raquo;''' [link boost_asio.reference.posix__basic_stream_descriptor.lowest_layer.overload1 more...]]``
 
 
 Get a const reference to the lowest layer.
 
 
- const lowest_layer_type & ``[link boost_asio.reference.posix__basic_descriptor.lowest_layer.overload2 lowest_layer]``() const;
- `` [''''&raquo;''' [link boost_asio.reference.posix__basic_descriptor.lowest_layer.overload2 more...]]``
+ const lowest_layer_type & ``[link boost_asio.reference.posix__basic_stream_descriptor.lowest_layer.overload2 lowest_layer]``() const;
+ `` [''''&raquo;''' [link boost_asio.reference.posix__basic_stream_descriptor.lowest_layer.overload2 more...]]``
 
 
-[section:overload1 posix::basic_descriptor::lowest_layer (1 of 2 overloads)]
+[section:overload1 posix::basic_stream_descriptor::lowest_layer (1 of 2 overloads)]
+
+
+['Inherited from posix::basic_descriptor.]
 
 
 Get a reference to the lowest layer.
@@ -69183,7 +72537,10 @@
 
 
 
-[section:overload2 posix::basic_descriptor::lowest_layer (2 of 2 overloads)]
+[section:overload2 posix::basic_stream_descriptor::lowest_layer (2 of 2 overloads)]
+
+
+['Inherited from posix::basic_descriptor.]
 
 
 Get a const reference to the lowest layer.
@@ -69208,13 +72565,16 @@
 [endsect]
 
 
-[section:lowest_layer_type posix::basic_descriptor::lowest_layer_type]
+[section:lowest_layer_type posix::basic_stream_descriptor::lowest_layer_type]
 
-[indexterm2 lowest_layer_type..posix::basic_descriptor]
+
+['Inherited from posix::basic_descriptor.]
+
+[indexterm2 lowest_layer_type..posix::basic_stream_descriptor]
 A [link boost_asio.reference.posix__basic_descriptor `posix::basic_descriptor`] is always the lowest layer.
 
 
- typedef basic_descriptor< DescriptorService > lowest_layer_type;
+ typedef basic_descriptor< StreamDescriptorService > lowest_layer_type;
 
 
 [heading Types]
@@ -69409,7 +72769,7 @@
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/posix/basic_descriptor.hpp]
+[*Header: ][^boost/asio/posix/basic_stream_descriptor.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
@@ -69418,9 +72778,12 @@
 
 
 
-[section:native posix::basic_descriptor::native]
+[section:native posix::basic_stream_descriptor::native]
 
-[indexterm2 native..posix::basic_descriptor]
+
+['Inherited from posix::basic_descriptor.]
+
+[indexterm2 native..posix::basic_stream_descriptor]
 (Deprecated: Use `native_handle()`.) Get the native descriptor representation.
 
 
@@ -69434,9 +72797,12 @@
 
 
 
-[section:native_handle posix::basic_descriptor::native_handle]
+[section:native_handle posix::basic_stream_descriptor::native_handle]
 
-[indexterm2 native_handle..posix::basic_descriptor]
+
+['Inherited from posix::basic_descriptor.]
+
+[indexterm2 native_handle..posix::basic_stream_descriptor]
 Get the native descriptor representation.
 
 
@@ -69450,19 +72816,19 @@
 
 
 
-[section:native_handle_type posix::basic_descriptor::native_handle_type]
+[section:native_handle_type posix::basic_stream_descriptor::native_handle_type]
 
-[indexterm2 native_handle_type..posix::basic_descriptor]
+[indexterm2 native_handle_type..posix::basic_stream_descriptor]
 The native representation of a descriptor.
 
 
- typedef DescriptorService::native_handle_type native_handle_type;
+ typedef StreamDescriptorService::native_handle_type native_handle_type;
 
 
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/posix/basic_descriptor.hpp]
+[*Header: ][^boost/asio/posix/basic_stream_descriptor.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
@@ -69470,30 +72836,33 @@
 [endsect]
 
 
-[section:native_non_blocking posix::basic_descriptor::native_non_blocking]
+[section:native_non_blocking posix::basic_stream_descriptor::native_non_blocking]
 
-[indexterm2 native_non_blocking..posix::basic_descriptor]
+[indexterm2 native_non_blocking..posix::basic_stream_descriptor]
 Gets the non-blocking mode of the native descriptor implementation.
 
 
- bool ``[link boost_asio.reference.posix__basic_descriptor.native_non_blocking.overload1 native_non_blocking]``() const;
- `` [''''&raquo;''' [link boost_asio.reference.posix__basic_descriptor.native_non_blocking.overload1 more...]]``
+ bool ``[link boost_asio.reference.posix__basic_stream_descriptor.native_non_blocking.overload1 native_non_blocking]``() const;
+ `` [''''&raquo;''' [link boost_asio.reference.posix__basic_stream_descriptor.native_non_blocking.overload1 more...]]``
 
 
 Sets the non-blocking mode of the native descriptor implementation.
 
 
- void ``[link boost_asio.reference.posix__basic_descriptor.native_non_blocking.overload2 native_non_blocking]``(
+ void ``[link boost_asio.reference.posix__basic_stream_descriptor.native_non_blocking.overload2 native_non_blocking]``(
       bool mode);
- `` [''''&raquo;''' [link boost_asio.reference.posix__basic_descriptor.native_non_blocking.overload2 more...]]``
+ `` [''''&raquo;''' [link boost_asio.reference.posix__basic_stream_descriptor.native_non_blocking.overload2 more...]]``
 
- boost::system::error_code ``[link boost_asio.reference.posix__basic_descriptor.native_non_blocking.overload3 native_non_blocking]``(
+ boost::system::error_code ``[link boost_asio.reference.posix__basic_stream_descriptor.native_non_blocking.overload3 native_non_blocking]``(
       bool mode,
       boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.posix__basic_descriptor.native_non_blocking.overload3 more...]]``
+ `` [''''&raquo;''' [link boost_asio.reference.posix__basic_stream_descriptor.native_non_blocking.overload3 more...]]``
 
 
-[section:overload1 posix::basic_descriptor::native_non_blocking (1 of 3 overloads)]
+[section:overload1 posix::basic_stream_descriptor::native_non_blocking (1 of 3 overloads)]
+
+
+['Inherited from posix::basic_descriptor.]
 
 
 Gets the non-blocking mode of the native descriptor implementation.
@@ -69521,7 +72890,10 @@
 
 
 
-[section:overload2 posix::basic_descriptor::native_non_blocking (2 of 3 overloads)]
+[section:overload2 posix::basic_stream_descriptor::native_non_blocking (2 of 3 overloads)]
+
+
+['Inherited from posix::basic_descriptor.]
 
 
 Sets the non-blocking mode of the native descriptor implementation.
@@ -69560,7 +72932,10 @@
 
 
 
-[section:overload3 posix::basic_descriptor::native_non_blocking (3 of 3 overloads)]
+[section:overload3 posix::basic_stream_descriptor::native_non_blocking (3 of 3 overloads)]
+
+
+['Inherited from posix::basic_descriptor.]
 
 
 Sets the non-blocking mode of the native descriptor implementation.
@@ -69594,19 +72969,19 @@
 [endsect]
 
 
-[section:native_type posix::basic_descriptor::native_type]
+[section:native_type posix::basic_stream_descriptor::native_type]
 
-[indexterm2 native_type..posix::basic_descriptor]
+[indexterm2 native_type..posix::basic_stream_descriptor]
 (Deprecated: Use native\_handle\_type.) The native representation of a descriptor.
 
 
- typedef DescriptorService::native_handle_type native_type;
+ typedef StreamDescriptorService::native_handle_type native_type;
 
 
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/posix/basic_descriptor.hpp]
+[*Header: ][^boost/asio/posix/basic_stream_descriptor.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
@@ -69614,30 +72989,33 @@
 [endsect]
 
 
-[section:non_blocking posix::basic_descriptor::non_blocking]
+[section:non_blocking posix::basic_stream_descriptor::non_blocking]
 
-[indexterm2 non_blocking..posix::basic_descriptor]
+[indexterm2 non_blocking..posix::basic_stream_descriptor]
 Gets the non-blocking mode of the descriptor.
 
 
- bool ``[link boost_asio.reference.posix__basic_descriptor.non_blocking.overload1 non_blocking]``() const;
- `` [''''&raquo;''' [link boost_asio.reference.posix__basic_descriptor.non_blocking.overload1 more...]]``
+ bool ``[link boost_asio.reference.posix__basic_stream_descriptor.non_blocking.overload1 non_blocking]``() const;
+ `` [''''&raquo;''' [link boost_asio.reference.posix__basic_stream_descriptor.non_blocking.overload1 more...]]``
 
 
 Sets the non-blocking mode of the descriptor.
 
 
- void ``[link boost_asio.reference.posix__basic_descriptor.non_blocking.overload2 non_blocking]``(
+ void ``[link boost_asio.reference.posix__basic_stream_descriptor.non_blocking.overload2 non_blocking]``(
       bool mode);
- `` [''''&raquo;''' [link boost_asio.reference.posix__basic_descriptor.non_blocking.overload2 more...]]``
+ `` [''''&raquo;''' [link boost_asio.reference.posix__basic_stream_descriptor.non_blocking.overload2 more...]]``
 
- boost::system::error_code ``[link boost_asio.reference.posix__basic_descriptor.non_blocking.overload3 non_blocking]``(
+ boost::system::error_code ``[link boost_asio.reference.posix__basic_stream_descriptor.non_blocking.overload3 non_blocking]``(
       bool mode,
       boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.posix__basic_descriptor.non_blocking.overload3 more...]]``
+ `` [''''&raquo;''' [link boost_asio.reference.posix__basic_stream_descriptor.non_blocking.overload3 more...]]``
 
 
-[section:overload1 posix::basic_descriptor::non_blocking (1 of 3 overloads)]
+[section:overload1 posix::basic_stream_descriptor::non_blocking (1 of 3 overloads)]
+
+
+['Inherited from posix::basic_descriptor.]
 
 
 Gets the non-blocking mode of the descriptor.
@@ -69663,7 +73041,10 @@
 
 
 
-[section:overload2 posix::basic_descriptor::non_blocking (2 of 3 overloads)]
+[section:overload2 posix::basic_stream_descriptor::non_blocking (2 of 3 overloads)]
+
+
+['Inherited from posix::basic_descriptor.]
 
 
 Sets the non-blocking mode of the descriptor.
@@ -69705,33 +73086,433 @@
 
 
 
-[section:overload3 posix::basic_descriptor::non_blocking (3 of 3 overloads)]
+[section:overload3 posix::basic_stream_descriptor::non_blocking (3 of 3 overloads)]
+
+
+['Inherited from posix::basic_descriptor.]
+
+
+Sets the non-blocking mode of the descriptor.
+
+
+ boost::system::error_code non_blocking(
+ bool mode,
+ boost::system::error_code & ec);
+
+
+
+[heading Parameters]
+
+
+[variablelist
+
+[[mode][If `true`, the descriptor's synchronous operations will fail with `boost::asio::error::would_block` if they are unable to perform the requested operation immediately. If `false`, synchronous operations will block until complete.]]
+
+[[ec][Set to indicate what error occurred, if any.]]
+
+]
+
+
+[heading Remarks]
+
+The non-blocking mode has no effect on the behaviour of asynchronous operations. Asynchronous operations will never fail with the error `boost::asio::error::would_block`.
+
+
+
+
+[endsect]
+
+
+[endsect]
+
+
+[section:non_blocking_io posix::basic_stream_descriptor::non_blocking_io]
+
+
+['Inherited from posix::descriptor_base.]
+
+[indexterm2 non_blocking_io..posix::basic_stream_descriptor]
+(Deprecated: Use non\_blocking().) IO control command to set the blocking mode of the descriptor.
+
+
+ typedef implementation_defined non_blocking_io;
+
+
+
+Implements the FIONBIO IO control command.
+
+
+[heading Example]
+
+
+
+ boost::asio::posix::stream_descriptor descriptor(io_service);
+ ...
+ boost::asio::descriptor_base::non_blocking_io command(true);
+ descriptor.io_control(command);
+
+
+
+
+
+
+
+[heading Requirements]
+
+[*Header: ][^boost/asio/posix/basic_stream_descriptor.hpp]
+
+[*Convenience header: ][^boost/asio.hpp]
+
+
+[endsect]
+
+
+
+[section:operator_eq_ posix::basic_stream_descriptor::operator=]
+
+[indexterm2 operator=..posix::basic_stream_descriptor]
+Move-assign a [link boost_asio.reference.posix__basic_stream_descriptor `posix::basic_stream_descriptor`] from another.
+
+
+ basic_stream_descriptor & operator=(
+ basic_stream_descriptor && other);
+
+
+This assignment operator moves a stream descriptor from one object to another.
+
+
+[heading Parameters]
+
+
+[variablelist
+
+[[other][The other [link boost_asio.reference.posix__basic_stream_descriptor `posix::basic_stream_descriptor`] object from which the move will occur.]]
+
+]
+
+
+[heading Remarks]
+
+Following the move, the moved-from object is in the same state as if constructed using the `basic_stream_descriptor(io_service&) constructor`.
+
+
+
+
+[endsect]
+
+
+[section:read_some posix::basic_stream_descriptor::read_some]
+
+[indexterm2 read_some..posix::basic_stream_descriptor]
+Read some data from the descriptor.
+
+
+ template<
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
+ std::size_t ``[link boost_asio.reference.posix__basic_stream_descriptor.read_some.overload1 read_some]``(
+ const MutableBufferSequence & buffers);
+ `` [''''&raquo;''' [link boost_asio.reference.posix__basic_stream_descriptor.read_some.overload1 more...]]``
+
+ template<
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
+ std::size_t ``[link boost_asio.reference.posix__basic_stream_descriptor.read_some.overload2 read_some]``(
+ const MutableBufferSequence & buffers,
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.posix__basic_stream_descriptor.read_some.overload2 more...]]``
+
+
+[section:overload1 posix::basic_stream_descriptor::read_some (1 of 2 overloads)]
+
+
+Read some data from the descriptor.
+
+
+ template<
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
+ std::size_t read_some(
+ const MutableBufferSequence & buffers);
+
+
+This function is used to read data from the stream descriptor. The function call will block until one or more bytes of data has been read successfully, or until an error occurs.
+
+
+[heading Parameters]
+
+
+[variablelist
+
+[[buffers][One or more buffers into which the data will be read.]]
+
+]
+
+
+[heading Return Value]
+
+The number of bytes read.
+
+
+[heading Exceptions]
+
+
+[variablelist
+
+[[boost::system::system_error][Thrown on failure. An error code of `boost::asio::error::eof` indicates that the connection was closed by the peer.]]
+
+]
+
+
+[heading Remarks]
+
+The read\_some operation may not read all of the requested number of bytes. Consider using the [link boost_asio.reference.read `read`] function if you need to ensure that the requested amount of data is read before the blocking operation completes.
+
+
+[heading Example]
+
+To read into a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
+
+ descriptor.read_some(boost::asio::buffer(data, size));
+
+
+See the [link boost_asio.reference.buffer `buffer`] documentation for information on reading into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+
+
+
+
+[endsect]
+
+
+
+[section:overload2 posix::basic_stream_descriptor::read_some (2 of 2 overloads)]
+
+
+Read some data from the descriptor.
+
+
+ template<
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
+ std::size_t read_some(
+ const MutableBufferSequence & buffers,
+ boost::system::error_code & ec);
+
+
+This function is used to read data from the stream descriptor. The function call will block until one or more bytes of data has been read successfully, or until an error occurs.
+
+
+[heading Parameters]
+
+
+[variablelist
+
+[[buffers][One or more buffers into which the data will be read.]]
+
+[[ec][Set to indicate what error occurred, if any.]]
+
+]
+
+
+[heading Return Value]
+
+The number of bytes read. Returns 0 if an error occurred.
+
+
+[heading Remarks]
+
+The read\_some operation may not read all of the requested number of bytes. Consider using the [link boost_asio.reference.read `read`] function if you need to ensure that the requested amount of data is read before the blocking operation completes.
+
+
+
+
+[endsect]
+
+
+[endsect]
+
+
+[section:release posix::basic_stream_descriptor::release]
+
+
+['Inherited from posix::basic_descriptor.]
+
+[indexterm2 release..posix::basic_stream_descriptor]
+Release ownership of the native descriptor implementation.
+
+
+ native_handle_type release();
+
+
+This function may be used to obtain the underlying representation of the descriptor. After calling this function, `is_open()` returns false. The caller is responsible for closing the descriptor.
+
+All outstanding asynchronous read or write operations will finish immediately, and the handlers for cancelled operations will be passed the `boost::asio::error::operation_aborted` error.
+
+
+[endsect]
+
+
+
+[section:service posix::basic_stream_descriptor::service]
+
+
+['Inherited from basic_io_object.]
+
+[indexterm2 service..posix::basic_stream_descriptor]
+(Deprecated: Use `get_service()`.) The service associated with the I/O object.
+
+
+ service_type & service;
+
+
+
+[heading Remarks]
+
+Available only for services that do not support movability.
+
+
+
+
+[endsect]
+
+
+
+[section:service_type posix::basic_stream_descriptor::service_type]
+
+
+['Inherited from basic_io_object.]
+
+[indexterm2 service_type..posix::basic_stream_descriptor]
+The type of the service that will be used to provide I/O operations.
+
+
+ typedef StreamDescriptorService service_type;
+
+
+
+[heading Requirements]
+
+[*Header: ][^boost/asio/posix/basic_stream_descriptor.hpp]
+
+[*Convenience header: ][^boost/asio.hpp]
+
+
+[endsect]
+
+
+[section:write_some posix::basic_stream_descriptor::write_some]
+
+[indexterm2 write_some..posix::basic_stream_descriptor]
+Write some data to the descriptor.
+
+
+ template<
+ typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
+ std::size_t ``[link boost_asio.reference.posix__basic_stream_descriptor.write_some.overload1 write_some]``(
+ const ConstBufferSequence & buffers);
+ `` [''''&raquo;''' [link boost_asio.reference.posix__basic_stream_descriptor.write_some.overload1 more...]]``
+
+ template<
+ typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
+ std::size_t ``[link boost_asio.reference.posix__basic_stream_descriptor.write_some.overload2 write_some]``(
+ const ConstBufferSequence & buffers,
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.posix__basic_stream_descriptor.write_some.overload2 more...]]``
+
+
+[section:overload1 posix::basic_stream_descriptor::write_some (1 of 2 overloads)]
+
+
+Write some data to the descriptor.
+
+
+ template<
+ typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
+ std::size_t write_some(
+ const ConstBufferSequence & buffers);
+
+
+This function is used to write data to the stream descriptor. The function call will block until one or more bytes of the data has been written successfully, or until an error occurs.
+
+
+[heading Parameters]
+
+
+[variablelist
+
+[[buffers][One or more data buffers to be written to the descriptor.]]
+
+]
+
+
+[heading Return Value]
+
+The number of bytes written.
+
+
+[heading Exceptions]
+
+
+[variablelist
+
+[[boost::system::system_error][Thrown on failure. An error code of `boost::asio::error::eof` indicates that the connection was closed by the peer.]]
+
+]
+
+
+[heading Remarks]
+
+The write\_some operation may not transmit all of the data to the peer. Consider using the [link boost_asio.reference.write `write`] function if you need to ensure that all data is written before the blocking operation completes.
+
+
+[heading Example]
+
+To write a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
+
+ descriptor.write_some(boost::asio::buffer(data, size));
+
+
+See the [link boost_asio.reference.buffer `buffer`] documentation for information on writing multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+
+
+
+
+[endsect]
+
+
+
+[section:overload2 posix::basic_stream_descriptor::write_some (2 of 2 overloads)]
 
 
-Sets the non-blocking mode of the descriptor.
+Write some data to the descriptor.
 
 
- boost::system::error_code non_blocking(
- bool mode,
+ template<
+ typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
+ std::size_t write_some(
+ const ConstBufferSequence & buffers,
       boost::system::error_code & ec);
 
 
+This function is used to write data to the stream descriptor. The function call will block until one or more bytes of the data has been written successfully, or until an error occurs.
+
 
 [heading Parameters]
     
 
 [variablelist
   
-[[mode][If `true`, the descriptor's synchronous operations will fail with `boost::asio::error::would_block` if they are unable to perform the requested operation immediately. If `false`, synchronous operations will block until complete.]]
+[[buffers][One or more data buffers to be written to the descriptor.]]
 
 [[ec][Set to indicate what error occurred, if any.]]
 
 ]
 
 
+[heading Return Value]
+
+The number of bytes written. Returns 0 if an error occurred.
+
+
 [heading Remarks]
       
-The non-blocking mode has no effect on the behaviour of asynchronous operations. Asynchronous operations will never fail with the error `boost::asio::error::would_block`.
+The write\_some operation may not transmit all of the data to the peer. Consider using the [link boost_asio.reference.write `write`] function if you need to ensure that all data is written before the blocking operation completes.
 
 
 
@@ -69742,140 +73523,126 @@
 [endsect]
 
 
-[section:non_blocking_io posix::basic_descriptor::non_blocking_io]
-
+[endsect]
 
-['Inherited from posix::descriptor_base.]
+[section:posix__descriptor_base posix::descriptor_base]
 
-[indexterm2 non_blocking_io..posix::basic_descriptor]
-(Deprecated: Use non\_blocking().) IO control command to set the blocking mode of the descriptor.
 
+The [link boost_asio.reference.posix__descriptor_base `posix::descriptor_base`] class is used as a base for the [link boost_asio.reference.posix__basic_stream_descriptor `posix::basic_stream_descriptor`] class template so that we have a common place to define the associated IO control commands.
 
- typedef implementation_defined non_blocking_io;
 
+ class descriptor_base
 
 
-Implements the FIONBIO IO control command.
+[heading Types]
+[table
+ [[Name][Description]]
 
+ [
 
-[heading Example]
+ [[link boost_asio.reference.posix__descriptor_base.bytes_readable [*bytes_readable]]]
+ [IO control command to get the amount of data that can be read without blocking. ]
   
+ ]
 
+ [
 
- boost::asio::posix::stream_descriptor descriptor(io_service);
- ...
- boost::asio::descriptor_base::non_blocking_io command(true);
- descriptor.io_control(command);
-
-
-
+ [[link boost_asio.reference.posix__descriptor_base.non_blocking_io [*non_blocking_io]]]
+ [(Deprecated: Use non_blocking().) IO control command to set the blocking mode of the descriptor. ]
+
+ ]
 
+]
 
+[heading Protected Member Functions]
+[table
+ [[Name][Description]]
 
+ [
+ [[link boost_asio.reference.posix__descriptor_base._descriptor_base [*~descriptor_base]]]
+ [Protected destructor to prevent deletion through this type. ]
+ ]
+
+]
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/posix/basic_descriptor.hpp]
+[*Header: ][^boost/asio/posix/descriptor_base.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
 
-[endsect]
-
-
-
-[section:operator_eq_ posix::basic_descriptor::operator=]
+[section:bytes_readable posix::descriptor_base::bytes_readable]
 
-[indexterm2 operator=..posix::basic_descriptor]
-Move-assign a [link boost_asio.reference.posix__basic_descriptor `posix::basic_descriptor`] from another.
+[indexterm2 bytes_readable..posix::descriptor_base]
+IO control command to get the amount of data that can be read without blocking.
 
 
- basic_descriptor & operator=(
- basic_descriptor && other);
+ typedef implementation_defined bytes_readable;
 
 
-This assignment operator moves a descriptor from one object to another.
 
+Implements the FIONREAD IO control command.
 
-[heading Parameters]
-
 
-[variablelist
+[heading Example]
   
-[[other][The other [link boost_asio.reference.posix__basic_descriptor `posix::basic_descriptor`] object from which the move will occur.]]
-
-]
-
-
-[heading Remarks]
-
-Following the move, the moved-from object is in the same state as if constructed using the `basic_descriptor(io_service&) constructor`.
-
-
 
 
-[endsect]
+ boost::asio::posix::stream_descriptor descriptor(io_service);
+ ...
+ boost::asio::descriptor_base::bytes_readable command(true);
+ descriptor.io_control(command);
+ std::size_t bytes_readable = command.get();
 
 
 
-[section:release posix::basic_descriptor::release]
 
-[indexterm2 release..posix::basic_descriptor]
-Release ownership of the native descriptor implementation.
 
 
- native_handle_type release();
 
+[heading Requirements]
 
-This function may be used to obtain the underlying representation of the descriptor. After calling this function, `is_open()` returns false. The caller is responsible for closing the descriptor.
+[*Header: ][^boost/asio/posix/descriptor_base.hpp]
 
-All outstanding asynchronous read or write operations will finish immediately, and the handlers for cancelled operations will be passed the `boost::asio::error::operation_aborted` error.
+[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
 
-[section:service posix::basic_descriptor::service]
-
-
-['Inherited from basic_io_object.]
-
-[indexterm2 service..posix::basic_descriptor]
-(Deprecated: Use `get_service()`.) The service associated with the I/O object.
-
-
- service_type & service;
-
+[section:non_blocking_io posix::descriptor_base::non_blocking_io]
 
+[indexterm2 non_blocking_io..posix::descriptor_base]
+(Deprecated: Use non\_blocking().) IO control command to set the blocking mode of the descriptor.
 
-[heading Remarks]
-
-Available only for services that do not support movability.
 
+ typedef implementation_defined non_blocking_io;
 
 
 
-[endsect]
+Implements the FIONBIO IO control command.
 
 
+[heading Example]
+
 
-[section:service_type posix::basic_descriptor::service_type]
 
+ boost::asio::posix::stream_descriptor descriptor(io_service);
+ ...
+ boost::asio::descriptor_base::non_blocking_io command(true);
+ descriptor.io_control(command);
 
-['Inherited from basic_io_object.]
 
-[indexterm2 service_type..posix::basic_descriptor]
-The type of the service that will be used to provide I/O operations.
 
 
- typedef DescriptorService service_type;
 
 
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/posix/basic_descriptor.hpp]
+[*Header: ][^boost/asio/posix/descriptor_base.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
@@ -69884,13 +73651,13 @@
 
 
 
-[section:_basic_descriptor posix::basic_descriptor::~basic_descriptor]
+[section:_descriptor_base posix::descriptor_base::~descriptor_base]
 
-[indexterm2 ~basic_descriptor..posix::basic_descriptor]
+[indexterm2 ~descriptor_base..posix::descriptor_base]
 Protected destructor to prevent deletion through this type.
 
 
- ~basic_descriptor();
+ ~descriptor_base();
 
 
 
@@ -69900,16 +73667,14 @@
 
 [endsect]
 
-[section:posix__basic_stream_descriptor posix::basic_stream_descriptor]
 
+[section:posix__stream_descriptor posix::stream_descriptor]
 
-Provides stream-oriented descriptor functionality.
+[indexterm1 posix::stream_descriptor]
+Typedef for the typical usage of a stream-oriented descriptor.
 
 
- template<
- typename ``[link boost_asio.reference.StreamDescriptorService StreamDescriptorService]`` = stream_descriptor_service>
- class basic_stream_descriptor :
- public posix::basic_descriptor< StreamDescriptorService >
+ typedef basic_stream_descriptor stream_descriptor;
 
 
 [heading Types]
@@ -70008,582 +73773,388 @@
   [
     [[link boost_asio.reference.posix__basic_stream_descriptor.get_io_service [*get_io_service]]]
     [Get the io_service associated with the object. ]
- ]
-
- [
- [[link boost_asio.reference.posix__basic_stream_descriptor.io_control [*io_control]]]
- [Perform an IO control command on the descriptor. ]
- ]
-
- [
- [[link boost_asio.reference.posix__basic_stream_descriptor.is_open [*is_open]]]
- [Determine whether the descriptor is open. ]
- ]
-
- [
- [[link boost_asio.reference.posix__basic_stream_descriptor.lowest_layer [*lowest_layer]]]
- [Get a reference to the lowest layer.
-
- Get a const reference to the lowest layer. ]
- ]
-
- [
- [[link boost_asio.reference.posix__basic_stream_descriptor.native [*native]]]
- [(Deprecated: Use native_handle().) Get the native descriptor representation. ]
- ]
-
- [
- [[link boost_asio.reference.posix__basic_stream_descriptor.native_handle [*native_handle]]]
- [Get the native descriptor representation. ]
- ]
-
- [
- [[link boost_asio.reference.posix__basic_stream_descriptor.native_non_blocking [*native_non_blocking]]]
- [Gets the non-blocking mode of the native descriptor implementation.
-
- Sets the non-blocking mode of the native descriptor implementation. ]
- ]
-
- [
- [[link boost_asio.reference.posix__basic_stream_descriptor.non_blocking [*non_blocking]]]
- [Gets the non-blocking mode of the descriptor.
-
- Sets the non-blocking mode of the descriptor. ]
- ]
-
- [
- [[link boost_asio.reference.posix__basic_stream_descriptor.operator_eq_ [*operator=]]]
- [Move-assign a basic_stream_descriptor from another. ]
- ]
-
- [
- [[link boost_asio.reference.posix__basic_stream_descriptor.read_some [*read_some]]]
- [Read some data from the descriptor. ]
- ]
-
- [
- [[link boost_asio.reference.posix__basic_stream_descriptor.release [*release]]]
- [Release ownership of the native descriptor implementation. ]
- ]
-
- [
- [[link boost_asio.reference.posix__basic_stream_descriptor.write_some [*write_some]]]
- [Write some data to the descriptor. ]
- ]
-
-]
-
-[heading Protected Member Functions]
-[table
- [[Name][Description]]
-
- [
- [[link boost_asio.reference.posix__basic_stream_descriptor.get_implementation [*get_implementation]]]
- [Get the underlying implementation of the I/O object. ]
- ]
-
- [
- [[link boost_asio.reference.posix__basic_stream_descriptor.get_service [*get_service]]]
- [Get the service associated with the I/O object. ]
- ]
-
-]
-
-[heading Protected Data Members]
-[table
- [[Name][Description]]
-
- [
- [[link boost_asio.reference.posix__basic_stream_descriptor.implementation [*implementation]]]
- [(Deprecated: Use get_implementation().) The underlying implementation of the I/O object. ]
- ]
-
- [
- [[link boost_asio.reference.posix__basic_stream_descriptor.service [*service]]]
- [(Deprecated: Use get_service().) The service associated with the I/O object. ]
- ]
-
-]
-
-The [link boost_asio.reference.posix__basic_stream_descriptor `posix::basic_stream_descriptor`] class template provides asynchronous and blocking stream-oriented descriptor functionality.
-
-
-[heading Thread Safety]
-
-[*Distinct] [*objects:] Safe.
-
-[*Shared] [*objects:] Unsafe.
-
-
-
-
-[heading Requirements]
-
-[*Header: ][^boost/asio/posix/basic_stream_descriptor.hpp]
-
-[*Convenience header: ][^boost/asio.hpp]
-
-[section:assign posix::basic_stream_descriptor::assign]
-
-[indexterm2 assign..posix::basic_stream_descriptor]
-Assign an existing native descriptor to the descriptor.
-
-
- void ``[link boost_asio.reference.posix__basic_stream_descriptor.assign.overload1 assign]``(
- const native_handle_type & native_descriptor);
- `` [''''&raquo;''' [link boost_asio.reference.posix__basic_stream_descriptor.assign.overload1 more...]]``
-
- boost::system::error_code ``[link boost_asio.reference.posix__basic_stream_descriptor.assign.overload2 assign]``(
- const native_handle_type & native_descriptor,
- boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.posix__basic_stream_descriptor.assign.overload2 more...]]``
-
-
-[section:overload1 posix::basic_stream_descriptor::assign (1 of 2 overloads)]
-
-
-['Inherited from posix::basic_descriptor.]
-
-
-Assign an existing native descriptor to the descriptor.
-
-
- void assign(
- const native_handle_type & native_descriptor);
-
-
-
-[endsect]
-
-
-
-[section:overload2 posix::basic_stream_descriptor::assign (2 of 2 overloads)]
-
-
-['Inherited from posix::basic_descriptor.]
-
-
-Assign an existing native descriptor to the descriptor.
-
-
- boost::system::error_code assign(
- const native_handle_type & native_descriptor,
- boost::system::error_code & ec);
-
-
-
-[endsect]
-
-
-[endsect]
-
-
-[section:async_read_some posix::basic_stream_descriptor::async_read_some]
-
-[indexterm2 async_read_some..posix::basic_stream_descriptor]
-Start an asynchronous read.
-
-
- template<
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
- typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void async_read_some(
- const MutableBufferSequence & buffers,
- ReadHandler handler);
-
-
-This function is used to asynchronously read data from the stream descriptor. The function call always returns immediately.
-
-
-[heading Parameters]
-
-
-[variablelist
-
-[[buffers][One or more buffers into which the data will be read. Although the buffers object may be copied as necessary, ownership of the underlying memory blocks is retained by the caller, which must guarantee that they remain valid until the handler is called.]]
-
-[[handler][The handler to be called when the read operation completes. Copies will be made of the handler as required. The function signature of the handler must be:
-``
- void handler(
- const boost::system::error_code& error, // Result of operation.
- std::size_t bytes_transferred // Number of bytes read.
- );
-``
-Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using `boost::asio::io_service::post()`.]]
-
-]
-
-
-[heading Remarks]
-
-The read operation may not read all of the requested number of bytes. Consider using the [link boost_asio.reference.async_read `async_read`] function if you need to ensure that the requested amount of data is read before the asynchronous operation completes.
-
-
-[heading Example]
-
-To read into a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
-
- descriptor.async_read_some(boost::asio::buffer(data, size), handler);
-
-
-See the [link boost_asio.reference.buffer `buffer`] documentation for information on reading into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
-
-
-
-
-[endsect]
-
-
-
-[section:async_write_some posix::basic_stream_descriptor::async_write_some]
-
-[indexterm2 async_write_some..posix::basic_stream_descriptor]
-Start an asynchronous write.
-
-
- template<
- typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
- typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
- void async_write_some(
- const ConstBufferSequence & buffers,
- WriteHandler handler);
-
-
-This function is used to asynchronously write data to the stream descriptor. The function call always returns immediately.
-
-
-[heading Parameters]
-
-
-[variablelist
-
-[[buffers][One or more data buffers to be written to the descriptor. Although the buffers object may be copied as necessary, ownership of the underlying memory blocks is retained by the caller, which must guarantee that they remain valid until the handler is called.]]
-
-[[handler][The handler to be called when the write operation completes. Copies will be made of the handler as required. The function signature of the handler must be:
-``
- void handler(
- const boost::system::error_code& error, // Result of operation.
- std::size_t bytes_transferred // Number of bytes written.
- );
-``
-Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using `boost::asio::io_service::post()`.]]
-
-]
-
-
-[heading Remarks]
-
-The write operation may not transmit all of the data to the peer. Consider using the [link boost_asio.reference.async_write `async_write`] function if you need to ensure that all data is written before the asynchronous operation completes.
-
-
-[heading Example]
-
-To write a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
-
- descriptor.async_write_some(boost::asio::buffer(data, size), handler);
-
-
-See the [link boost_asio.reference.buffer `buffer`] documentation for information on writing multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
-
-
-
-
-[endsect]
-
-
-[section:basic_stream_descriptor posix::basic_stream_descriptor::basic_stream_descriptor]
-
-[indexterm2 basic_stream_descriptor..posix::basic_stream_descriptor]
-Construct a [link boost_asio.reference.posix__basic_stream_descriptor `posix::basic_stream_descriptor`] without opening it.
-
-
- explicit ``[link boost_asio.reference.posix__basic_stream_descriptor.basic_stream_descriptor.overload1 basic_stream_descriptor]``(
- boost::asio::io_service & io_service);
- `` [''''&raquo;''' [link boost_asio.reference.posix__basic_stream_descriptor.basic_stream_descriptor.overload1 more...]]``
-
-
-Construct a [link boost_asio.reference.posix__basic_stream_descriptor `posix::basic_stream_descriptor`] on an existing native descriptor.
-
-
- ``[link boost_asio.reference.posix__basic_stream_descriptor.basic_stream_descriptor.overload2 basic_stream_descriptor]``(
- boost::asio::io_service & io_service,
- const native_handle_type & native_descriptor);
- `` [''''&raquo;''' [link boost_asio.reference.posix__basic_stream_descriptor.basic_stream_descriptor.overload2 more...]]``
-
-
-Move-construct a [link boost_asio.reference.posix__basic_stream_descriptor `posix::basic_stream_descriptor`] from another.
-
-
- ``[link boost_asio.reference.posix__basic_stream_descriptor.basic_stream_descriptor.overload3 basic_stream_descriptor]``(
- basic_stream_descriptor && other);
- `` [''''&raquo;''' [link boost_asio.reference.posix__basic_stream_descriptor.basic_stream_descriptor.overload3 more...]]``
-
-
-[section:overload1 posix::basic_stream_descriptor::basic_stream_descriptor (1 of 3 overloads)]
-
-
-Construct a [link boost_asio.reference.posix__basic_stream_descriptor `posix::basic_stream_descriptor`] without opening it.
-
-
- basic_stream_descriptor(
- boost::asio::io_service & io_service);
-
-
-This constructor creates a stream descriptor without opening it. The descriptor needs to be opened and then connected or accepted before data can be sent or received on it.
-
-
-[heading Parameters]
-
-
-[variablelist
-
-[[io_service][The [link boost_asio.reference.io_service `io_service`] object that the stream descriptor will use to dispatch handlers for any asynchronous operations performed on the descriptor. ]]
-
-]
-
-
-
-
-[endsect]
-
-
-
-[section:overload2 posix::basic_stream_descriptor::basic_stream_descriptor (2 of 3 overloads)]
-
-
-Construct a [link boost_asio.reference.posix__basic_stream_descriptor `posix::basic_stream_descriptor`] on an existing native descriptor.
-
-
- basic_stream_descriptor(
- boost::asio::io_service & io_service,
- const native_handle_type & native_descriptor);
-
-
-This constructor creates a stream descriptor object to hold an existing native descriptor.
-
-
-[heading Parameters]
-
+ ]
+
+ [
+ [[link boost_asio.reference.posix__basic_stream_descriptor.io_control [*io_control]]]
+ [Perform an IO control command on the descriptor. ]
+ ]
+
+ [
+ [[link boost_asio.reference.posix__basic_stream_descriptor.is_open [*is_open]]]
+ [Determine whether the descriptor is open. ]
+ ]
+
+ [
+ [[link boost_asio.reference.posix__basic_stream_descriptor.lowest_layer [*lowest_layer]]]
+ [Get a reference to the lowest layer.
 
-[variablelist
+ Get a const reference to the lowest layer. ]
+ ]
   
-[[io_service][The [link boost_asio.reference.io_service `io_service`] object that the stream descriptor will use to dispatch handlers for any asynchronous operations performed on the descriptor.]]
+ [
+ [[link boost_asio.reference.posix__basic_stream_descriptor.native [*native]]]
+ [(Deprecated: Use native_handle().) Get the native descriptor representation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.posix__basic_stream_descriptor.native_handle [*native_handle]]]
+ [Get the native descriptor representation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.posix__basic_stream_descriptor.native_non_blocking [*native_non_blocking]]]
+ [Gets the non-blocking mode of the native descriptor implementation.
 
-[[native_descriptor][The new underlying descriptor implementation.]]
+ Sets the non-blocking mode of the native descriptor implementation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.posix__basic_stream_descriptor.non_blocking [*non_blocking]]]
+ [Gets the non-blocking mode of the descriptor.
 
+ Sets the non-blocking mode of the descriptor. ]
+ ]
+
+ [
+ [[link boost_asio.reference.posix__basic_stream_descriptor.operator_eq_ [*operator=]]]
+ [Move-assign a basic_stream_descriptor from another. ]
+ ]
+
+ [
+ [[link boost_asio.reference.posix__basic_stream_descriptor.read_some [*read_some]]]
+ [Read some data from the descriptor. ]
+ ]
+
+ [
+ [[link boost_asio.reference.posix__basic_stream_descriptor.release [*release]]]
+ [Release ownership of the native descriptor implementation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.posix__basic_stream_descriptor.write_some [*write_some]]]
+ [Write some data to the descriptor. ]
+ ]
+
 ]
 
+[heading Protected Member Functions]
+[table
+ [[Name][Description]]
 
-[heading Exceptions]
-
-
-[variablelist
+ [
+ [[link boost_asio.reference.posix__basic_stream_descriptor.get_implementation [*get_implementation]]]
+ [Get the underlying implementation of the I/O object. ]
+ ]
+
+ [
+ [[link boost_asio.reference.posix__basic_stream_descriptor.get_service [*get_service]]]
+ [Get the service associated with the I/O object. ]
+ ]
   
-[[boost::system::system_error][Thrown on failure. ]]
-
 ]
 
+[heading Protected Data Members]
+[table
+ [[Name][Description]]
 
+ [
+ [[link boost_asio.reference.posix__basic_stream_descriptor.implementation [*implementation]]]
+ [(Deprecated: Use get_implementation().) The underlying implementation of the I/O object. ]
+ ]
 
+ [
+ [[link boost_asio.reference.posix__basic_stream_descriptor.service [*service]]]
+ [(Deprecated: Use get_service().) The service associated with the I/O object. ]
+ ]
 
-[endsect]
-
-
-
-[section:overload3 posix::basic_stream_descriptor::basic_stream_descriptor (3 of 3 overloads)]
-
-
-Move-construct a [link boost_asio.reference.posix__basic_stream_descriptor `posix::basic_stream_descriptor`] from another.
-
+]
 
- basic_stream_descriptor(
- basic_stream_descriptor && other);
+The [link boost_asio.reference.posix__basic_stream_descriptor `posix::basic_stream_descriptor`] class template provides asynchronous and blocking stream-oriented descriptor functionality.
 
 
-This constructor moves a stream descriptor from one object to another.
+[heading Thread Safety]
+
+[*Distinct] [*objects:] Safe.
 
+[*Shared] [*objects:] Unsafe.
 
-[heading Parameters]
-
 
-[variablelist
-
-[[other][The other [link boost_asio.reference.posix__basic_stream_descriptor `posix::basic_stream_descriptor`] object from which the move will occur.]]
 
-]
 
 
-[heading Remarks]
-
-Following the move, the moved-from object is in the same state as if constructed using the `basic_stream_descriptor(io_service&) constructor`.
+[heading Requirements]
 
+[*Header: ][^boost/asio/posix/stream_descriptor.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
-[endsect]
+[section:posix__stream_descriptor_service posix::stream_descriptor_service]
 
 
-[section:bytes_readable posix::basic_stream_descriptor::bytes_readable]
+Default service implementation for a stream descriptor.
 
 
-['Inherited from posix::descriptor_base.]
+ class stream_descriptor_service :
+ public io_service::service
 
-[indexterm2 bytes_readable..posix::basic_stream_descriptor]
-IO control command to get the amount of data that can be read without blocking.
 
+[heading Types]
+[table
+ [[Name][Description]]
 
- typedef implementation_defined bytes_readable;
+ [
 
+ [[link boost_asio.reference.posix__stream_descriptor_service.implementation_type [*implementation_type]]]
+ [The type of a stream descriptor implementation. ]
+
+ ]
 
+ [
 
-Implements the FIONREAD IO control command.
+ [[link boost_asio.reference.posix__stream_descriptor_service.native_handle_type [*native_handle_type]]]
+ [The native descriptor type. ]
+
+ ]
 
+ [
 
-[heading Example]
+ [[link boost_asio.reference.posix__stream_descriptor_service.native_type [*native_type]]]
+ [(Deprecated: Use native_handle_type.) The native descriptor type. ]
   
+ ]
 
+]
 
- boost::asio::posix::stream_descriptor descriptor(io_service);
- ...
- boost::asio::descriptor_base::bytes_readable command(true);
- descriptor.io_control(command);
- std::size_t bytes_readable = command.get();
+[heading Member Functions]
+[table
+ [[Name][Description]]
 
+ [
+ [[link boost_asio.reference.posix__stream_descriptor_service.assign [*assign]]]
+ [Assign an existing native descriptor to a stream descriptor. ]
+ ]
+
+ [
+ [[link boost_asio.reference.posix__stream_descriptor_service.async_read_some [*async_read_some]]]
+ [Start an asynchronous read. ]
+ ]
+
+ [
+ [[link boost_asio.reference.posix__stream_descriptor_service.async_write_some [*async_write_some]]]
+ [Start an asynchronous write. ]
+ ]
+
+ [
+ [[link boost_asio.reference.posix__stream_descriptor_service.cancel [*cancel]]]
+ [Cancel all asynchronous operations associated with the descriptor. ]
+ ]
+
+ [
+ [[link boost_asio.reference.posix__stream_descriptor_service.close [*close]]]
+ [Close a stream descriptor implementation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.posix__stream_descriptor_service.construct [*construct]]]
+ [Construct a new stream descriptor implementation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.posix__stream_descriptor_service.destroy [*destroy]]]
+ [Destroy a stream descriptor implementation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.posix__stream_descriptor_service.get_io_service [*get_io_service]]]
+ [Get the io_service object that owns the service. ]
+ ]
+
+ [
+ [[link boost_asio.reference.posix__stream_descriptor_service.io_control [*io_control]]]
+ [Perform an IO control command on the descriptor. ]
+ ]
+
+ [
+ [[link boost_asio.reference.posix__stream_descriptor_service.is_open [*is_open]]]
+ [Determine whether the descriptor is open. ]
+ ]
+
+ [
+ [[link boost_asio.reference.posix__stream_descriptor_service.move_assign [*move_assign]]]
+ [Move-assign from another stream descriptor implementation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.posix__stream_descriptor_service.move_construct [*move_construct]]]
+ [Move-construct a new stream descriptor implementation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.posix__stream_descriptor_service.native [*native]]]
+ [(Deprecated: Use native_handle().) Get the native descriptor implementation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.posix__stream_descriptor_service.native_handle [*native_handle]]]
+ [Get the native descriptor implementation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.posix__stream_descriptor_service.native_non_blocking [*native_non_blocking]]]
+ [Gets the non-blocking mode of the native descriptor implementation.
 
+ Sets the non-blocking mode of the native descriptor implementation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.posix__stream_descriptor_service.non_blocking [*non_blocking]]]
+ [Gets the non-blocking mode of the descriptor.
 
+ Sets the non-blocking mode of the descriptor. ]
+ ]
+
+ [
+ [[link boost_asio.reference.posix__stream_descriptor_service.read_some [*read_some]]]
+ [Read some data from the stream. ]
+ ]
+
+ [
+ [[link boost_asio.reference.posix__stream_descriptor_service.release [*release]]]
+ [Release ownership of the native descriptor implementation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.posix__stream_descriptor_service.stream_descriptor_service [*stream_descriptor_service]]]
+ [Construct a new stream descriptor service for the specified io_service. ]
+ ]
+
+ [
+ [[link boost_asio.reference.posix__stream_descriptor_service.write_some [*write_some]]]
+ [Write the given data to the stream. ]
+ ]
+
+]
 
+[heading Data Members]
+[table
+ [[Name][Description]]
 
+ [
+ [[link boost_asio.reference.posix__stream_descriptor_service.id [*id]]]
+ [The unique service identifier. ]
+ ]
 
+]
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/posix/basic_stream_descriptor.hpp]
+[*Header: ][^boost/asio/posix/stream_descriptor_service.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
 
-[endsect]
-
-
-[section:cancel posix::basic_stream_descriptor::cancel]
-
-[indexterm2 cancel..posix::basic_stream_descriptor]
-Cancel all asynchronous operations associated with the descriptor.
+[section:assign posix::stream_descriptor_service::assign]
 
+[indexterm2 assign..posix::stream_descriptor_service]
+Assign an existing native descriptor to a stream descriptor.
 
- void ``[link boost_asio.reference.posix__basic_stream_descriptor.cancel.overload1 cancel]``();
- `` [''''&raquo;''' [link boost_asio.reference.posix__basic_stream_descriptor.cancel.overload1 more...]]``
 
- boost::system::error_code ``[link boost_asio.reference.posix__basic_stream_descriptor.cancel.overload2 cancel]``(
+ boost::system::error_code assign(
+ implementation_type & impl,
+ const native_handle_type & native_descriptor,
       boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.posix__basic_stream_descriptor.cancel.overload2 more...]]``
 
 
-[section:overload1 posix::basic_stream_descriptor::cancel (1 of 2 overloads)]
 
+[endsect]
 
-['Inherited from posix::basic_descriptor.]
 
 
-Cancel all asynchronous operations associated with the descriptor.
+[section:async_read_some posix::stream_descriptor_service::async_read_some]
 
+[indexterm2 async_read_some..posix::stream_descriptor_service]
+Start an asynchronous read.
 
- void cancel();
 
+ template<
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
+ typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
+ void async_read_some(
+ implementation_type & impl,
+ const MutableBufferSequence & buffers,
+ ReadHandler handler);
 
-This function causes all outstanding asynchronous read or write operations to finish immediately, and the handlers for cancelled operations will be passed the `boost::asio::error::operation_aborted` error.
 
 
-[heading Exceptions]
-
+[endsect]
 
-[variablelist
-
-[[boost::system::system_error][Thrown on failure. ]]
 
-]
 
+[section:async_write_some posix::stream_descriptor_service::async_write_some]
 
+[indexterm2 async_write_some..posix::stream_descriptor_service]
+Start an asynchronous write.
 
 
-[endsect]
+ template<
+ typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
+ typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
+ void async_write_some(
+ implementation_type & impl,
+ const ConstBufferSequence & buffers,
+ WriteHandler handler);
 
 
 
-[section:overload2 posix::basic_stream_descriptor::cancel (2 of 2 overloads)]
+[endsect]
 
 
-['Inherited from posix::basic_descriptor.]
 
+[section:cancel posix::stream_descriptor_service::cancel]
 
+[indexterm2 cancel..posix::stream_descriptor_service]
 Cancel all asynchronous operations associated with the descriptor.
 
 
   boost::system::error_code cancel(
+ implementation_type & impl,
       boost::system::error_code & ec);
 
 
-This function causes all outstanding asynchronous read or write operations to finish immediately, and the handlers for cancelled operations will be passed the `boost::asio::error::operation_aborted` error.
-
-
-[heading Parameters]
-
-
-[variablelist
-
-[[ec][Set to indicate what error occurred, if any. ]]
-
-]
-
-
-
 
 [endsect]
 
 
-[endsect]
-
-[section:close posix::basic_stream_descriptor::close]
 
-[indexterm2 close..posix::basic_stream_descriptor]
-Close the descriptor.
+[section:close posix::stream_descriptor_service::close]
 
+[indexterm2 close..posix::stream_descriptor_service]
+Close a stream descriptor implementation.
 
- void ``[link boost_asio.reference.posix__basic_stream_descriptor.close.overload1 close]``();
- `` [''''&raquo;''' [link boost_asio.reference.posix__basic_stream_descriptor.close.overload1 more...]]``
 
- boost::system::error_code ``[link boost_asio.reference.posix__basic_stream_descriptor.close.overload2 close]``(
+ boost::system::error_code close(
+ implementation_type & impl,
       boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.posix__basic_stream_descriptor.close.overload2 more...]]``
-
-
-[section:overload1 posix::basic_stream_descriptor::close (1 of 2 overloads)]
 
 
-['Inherited from posix::basic_descriptor.]
-
-
-Close the descriptor.
-
-
- void close();
 
+[endsect]
 
-This function is used to close the descriptor. Any asynchronous read or write operations will be cancelled immediately, and will complete with the `boost::asio::error::operation_aborted` error.
 
 
-[heading Exceptions]
-
+[section:construct posix::stream_descriptor_service::construct]
 
-[variablelist
-
-[[boost::system::system_error][Thrown on failure. Note that, even if the function indicates an error, the underlying descriptor is closed. ]]
+[indexterm2 construct..posix::stream_descriptor_service]
+Construct a new stream descriptor implementation.
 
-]
 
+ void construct(
+ implementation_type & impl);
 
 
 
@@ -70591,62 +74162,45 @@
 
 
 
-[section:overload2 posix::basic_stream_descriptor::close (2 of 2 overloads)]
-
+[section:destroy posix::stream_descriptor_service::destroy]
 
-['Inherited from posix::basic_descriptor.]
+[indexterm2 destroy..posix::stream_descriptor_service]
+Destroy a stream descriptor implementation.
 
 
-Close the descriptor.
+ void destroy(
+ implementation_type & impl);
 
 
- boost::system::error_code close(
- boost::system::error_code & ec);
 
+[endsect]
 
-This function is used to close the descriptor. Any asynchronous read or write operations will be cancelled immediately, and will complete with the `boost::asio::error::operation_aborted` error.
 
 
-[heading Parameters]
-
+[section:get_io_service posix::stream_descriptor_service::get_io_service]
 
-[variablelist
-
-[[ec][Set to indicate what error occurred, if any. Note that, even if the function indicates an error, the underlying descriptor is closed. ]]
 
-]
+['Inherited from io_service.]
 
+[indexterm2 get_io_service..posix::stream_descriptor_service]
+Get the [link boost_asio.reference.io_service `io_service`] object that owns the service.
 
 
+ boost::asio::io_service & get_io_service();
 
-[endsect]
 
 
 [endsect]
 
-[section:get_implementation posix::basic_stream_descriptor::get_implementation]
-
-[indexterm2 get_implementation..posix::basic_stream_descriptor]
-Get the underlying implementation of the I/O object.
-
-
- implementation_type & ``[link boost_asio.reference.posix__basic_stream_descriptor.get_implementation.overload1 get_implementation]``();
- `` [''''&raquo;''' [link boost_asio.reference.posix__basic_stream_descriptor.get_implementation.overload1 more...]]``
-
- const implementation_type & ``[link boost_asio.reference.posix__basic_stream_descriptor.get_implementation.overload2 get_implementation]``() const;
- `` [''''&raquo;''' [link boost_asio.reference.posix__basic_stream_descriptor.get_implementation.overload2 more...]]``
-
-
-[section:overload1 posix::basic_stream_descriptor::get_implementation (1 of 2 overloads)]
-
 
-['Inherited from basic_io_object.]
 
+[section:id posix::stream_descriptor_service::id]
 
-Get the underlying implementation of the I/O object.
+[indexterm2 id..posix::stream_descriptor_service]
+The unique service identifier.
 
 
- implementation_type & get_implementation();
+ static boost::asio::io_service::id id;
 
 
 
@@ -70654,109 +74208,102 @@
 
 
 
-[section:overload2 posix::basic_stream_descriptor::get_implementation (2 of 2 overloads)]
-
+[section:implementation_type posix::stream_descriptor_service::implementation_type]
 
-['Inherited from basic_io_object.]
+[indexterm2 implementation_type..posix::stream_descriptor_service]
+The type of a stream descriptor implementation.
 
 
-Get the underlying implementation of the I/O object.
+ typedef implementation_defined implementation_type;
 
 
- const implementation_type & get_implementation() const;
 
+[heading Requirements]
 
+[*Header: ][^boost/asio/posix/stream_descriptor_service.hpp]
 
-[endsect]
+[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
-[section:get_io_service posix::basic_stream_descriptor::get_io_service]
-
-
-['Inherited from basic_io_object.]
-
-[indexterm2 get_io_service..posix::basic_stream_descriptor]
-Get the [link boost_asio.reference.io_service `io_service`] associated with the object.
-
-
- boost::asio::io_service & get_io_service();
-
 
-This function may be used to obtain the [link boost_asio.reference.io_service `io_service`] object that the I/O object uses to dispatch handlers for asynchronous operations.
+[section:io_control posix::stream_descriptor_service::io_control]
 
+[indexterm2 io_control..posix::stream_descriptor_service]
+Perform an IO control command on the descriptor.
 
-[heading Return Value]
-
-A reference to the [link boost_asio.reference.io_service `io_service`] object that the I/O object will use to dispatch handlers. Ownership is not transferred to the caller.
 
+ template<
+ typename ``[link boost_asio.reference.IoControlCommand IoControlCommand]``>
+ boost::system::error_code io_control(
+ implementation_type & impl,
+ IoControlCommand & command,
+ boost::system::error_code & ec);
 
 
 
 [endsect]
 
 
-[section:get_service posix::basic_stream_descriptor::get_service]
-
-[indexterm2 get_service..posix::basic_stream_descriptor]
-Get the service associated with the I/O object.
-
-
- service_type & ``[link boost_asio.reference.posix__basic_stream_descriptor.get_service.overload1 get_service]``();
- `` [''''&raquo;''' [link boost_asio.reference.posix__basic_stream_descriptor.get_service.overload1 more...]]``
-
- const service_type & ``[link boost_asio.reference.posix__basic_stream_descriptor.get_service.overload2 get_service]``() const;
- `` [''''&raquo;''' [link boost_asio.reference.posix__basic_stream_descriptor.get_service.overload2 more...]]``
 
+[section:is_open posix::stream_descriptor_service::is_open]
 
-[section:overload1 posix::basic_stream_descriptor::get_service (1 of 2 overloads)]
+[indexterm2 is_open..posix::stream_descriptor_service]
+Determine whether the descriptor is open.
 
 
-['Inherited from basic_io_object.]
+ bool is_open(
+ const implementation_type & impl) const;
 
 
-Get the service associated with the I/O object.
 
+[endsect]
 
- service_type & get_service();
 
 
+[section:move_assign posix::stream_descriptor_service::move_assign]
 
-[endsect]
+[indexterm2 move_assign..posix::stream_descriptor_service]
+Move-assign from another stream descriptor implementation.
 
 
+ void move_assign(
+ implementation_type & impl,
+ stream_descriptor_service & other_service,
+ implementation_type & other_impl);
 
-[section:overload2 posix::basic_stream_descriptor::get_service (2 of 2 overloads)]
 
 
-['Inherited from basic_io_object.]
+[endsect]
 
 
-Get the service associated with the I/O object.
 
+[section:move_construct posix::stream_descriptor_service::move_construct]
 
- const service_type & get_service() const;
+[indexterm2 move_construct..posix::stream_descriptor_service]
+Move-construct a new stream descriptor implementation.
 
 
+ void move_construct(
+ implementation_type & impl,
+ implementation_type & other_impl);
 
-[endsect]
 
 
 [endsect]
 
 
-[section:implementation posix::basic_stream_descriptor::implementation]
-
 
-['Inherited from basic_io_object.]
+[section:native posix::stream_descriptor_service::native]
 
-[indexterm2 implementation..posix::basic_stream_descriptor]
-(Deprecated: Use `get_implementation()`.) The underlying implementation of the I/O object.
+[indexterm2 native..posix::stream_descriptor_service]
+(Deprecated: Use `native_handle()`.) Get the native descriptor implementation.
 
 
- implementation_type implementation;
+ native_type native(
+ implementation_type & impl);
 
 
 
@@ -70764,215 +74311,198 @@
 
 
 
-[section:implementation_type posix::basic_stream_descriptor::implementation_type]
+[section:native_handle posix::stream_descriptor_service::native_handle]
 
+[indexterm2 native_handle..posix::stream_descriptor_service]
+Get the native descriptor implementation.
 
-['Inherited from basic_io_object.]
 
-[indexterm2 implementation_type..posix::basic_stream_descriptor]
-The underlying implementation type of I/O object.
+ native_handle_type native_handle(
+ implementation_type & impl);
 
 
- typedef service_type::implementation_type implementation_type;
 
+[endsect]
 
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/posix/basic_stream_descriptor.hpp]
+[section:native_handle_type posix::stream_descriptor_service::native_handle_type]
 
-[*Convenience header: ][^boost/asio.hpp]
+[indexterm2 native_handle_type..posix::stream_descriptor_service]
+The native descriptor type.
 
 
-[endsect]
+ typedef implementation_defined native_handle_type;
 
 
-[section:io_control posix::basic_stream_descriptor::io_control]
 
-[indexterm2 io_control..posix::basic_stream_descriptor]
-Perform an IO control command on the descriptor.
+[heading Requirements]
 
+[*Header: ][^boost/asio/posix/stream_descriptor_service.hpp]
 
- void ``[link boost_asio.reference.posix__basic_stream_descriptor.io_control.overload1 io_control]``(
- IoControlCommand & command);
- `` [''''&raquo;''' [link boost_asio.reference.posix__basic_stream_descriptor.io_control.overload1 more...]]``
+[*Convenience header: ][^boost/asio.hpp]
 
- boost::system::error_code ``[link boost_asio.reference.posix__basic_stream_descriptor.io_control.overload2 io_control]``(
- IoControlCommand & command,
- boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.posix__basic_stream_descriptor.io_control.overload2 more...]]``
 
+[endsect]
 
-[section:overload1 posix::basic_stream_descriptor::io_control (1 of 2 overloads)]
 
+[section:native_non_blocking posix::stream_descriptor_service::native_non_blocking]
 
-['Inherited from posix::basic_descriptor.]
+[indexterm2 native_non_blocking..posix::stream_descriptor_service]
+Gets the non-blocking mode of the native descriptor implementation.
 
 
-Perform an IO control command on the descriptor.
+ bool ``[link boost_asio.reference.posix__stream_descriptor_service.native_non_blocking.overload1 native_non_blocking]``(
+ const implementation_type & impl) const;
+ `` [''''&raquo;''' [link boost_asio.reference.posix__stream_descriptor_service.native_non_blocking.overload1 more...]]``
 
 
- template<
- typename ``[link boost_asio.reference.IoControlCommand IoControlCommand]``>
- void io_control(
- IoControlCommand & command);
+Sets the non-blocking mode of the native descriptor implementation.
 
 
-This function is used to execute an IO control command on the descriptor.
+ boost::system::error_code ``[link boost_asio.reference.posix__stream_descriptor_service.native_non_blocking.overload2 native_non_blocking]``(
+ implementation_type & impl,
+ bool mode,
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.posix__stream_descriptor_service.native_non_blocking.overload2 more...]]``
 
 
-[heading Parameters]
-
+[section:overload1 posix::stream_descriptor_service::native_non_blocking (1 of 2 overloads)]
 
-[variablelist
-
-[[command][The IO control command to be performed on the descriptor.]]
 
-]
+Gets the non-blocking mode of the native descriptor implementation.
 
 
-[heading Exceptions]
-
+ bool native_non_blocking(
+ const implementation_type & impl) const;
 
-[variablelist
-
-[[boost::system::system_error][Thrown on failure.]]
 
-]
 
+[endsect]
 
 
-[heading Example]
-
-Getting the number of bytes ready to read:
 
- boost::asio::posix::stream_descriptor descriptor(io_service);
- ...
- boost::asio::posix::stream_descriptor::bytes_readable command;
- descriptor.io_control(command);
- std::size_t bytes_readable = command.get();
+[section:overload2 posix::stream_descriptor_service::native_non_blocking (2 of 2 overloads)]
 
 
+Sets the non-blocking mode of the native descriptor implementation.
 
 
+ boost::system::error_code native_non_blocking(
+ implementation_type & impl,
+ bool mode,
+ boost::system::error_code & ec);
 
 
 
 [endsect]
 
 
-
-[section:overload2 posix::basic_stream_descriptor::io_control (2 of 2 overloads)]
-
-
-['Inherited from posix::basic_descriptor.]
+[endsect]
 
 
-Perform an IO control command on the descriptor.
+[section:native_type posix::stream_descriptor_service::native_type]
 
+[indexterm2 native_type..posix::stream_descriptor_service]
+(Deprecated: Use native\_handle\_type.) The native descriptor type.
 
- template<
- typename ``[link boost_asio.reference.IoControlCommand IoControlCommand]``>
- boost::system::error_code io_control(
- IoControlCommand & command,
- boost::system::error_code & ec);
 
+ typedef implementation_defined native_type;
 
-This function is used to execute an IO control command on the descriptor.
 
 
-[heading Parameters]
-
+[heading Requirements]
 
-[variablelist
-
-[[command][The IO control command to be performed on the descriptor.]]
+[*Header: ][^boost/asio/posix/stream_descriptor_service.hpp]
 
-[[ec][Set to indicate what error occurred, if any.]]
+[*Convenience header: ][^boost/asio.hpp]
 
-]
 
+[endsect]
 
 
-[heading Example]
-
-Getting the number of bytes ready to read:
+[section:non_blocking posix::stream_descriptor_service::non_blocking]
 
- boost::asio::posix::stream_descriptor descriptor(io_service);
- ...
- boost::asio::posix::stream_descriptor::bytes_readable command;
- boost::system::error_code ec;
- descriptor.io_control(command, ec);
- if (ec)
- {
- // An error occurred.
- }
- std::size_t bytes_readable = command.get();
+[indexterm2 non_blocking..posix::stream_descriptor_service]
+Gets the non-blocking mode of the descriptor.
 
 
+ bool ``[link boost_asio.reference.posix__stream_descriptor_service.non_blocking.overload1 non_blocking]``(
+ const implementation_type & impl) const;
+ `` [''''&raquo;''' [link boost_asio.reference.posix__stream_descriptor_service.non_blocking.overload1 more...]]``
 
 
+Sets the non-blocking mode of the descriptor.
 
 
+ boost::system::error_code ``[link boost_asio.reference.posix__stream_descriptor_service.non_blocking.overload2 non_blocking]``(
+ implementation_type & impl,
+ bool mode,
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.posix__stream_descriptor_service.non_blocking.overload2 more...]]``
 
-[endsect]
 
+[section:overload1 posix::stream_descriptor_service::non_blocking (1 of 2 overloads)]
 
-[endsect]
 
+Gets the non-blocking mode of the descriptor.
 
-[section:is_open posix::basic_stream_descriptor::is_open]
 
+ bool non_blocking(
+ const implementation_type & impl) const;
 
-['Inherited from posix::basic_descriptor.]
 
-[indexterm2 is_open..posix::basic_stream_descriptor]
-Determine whether the descriptor is open.
 
+[endsect]
 
- bool is_open() const;
 
 
+[section:overload2 posix::stream_descriptor_service::non_blocking (2 of 2 overloads)]
 
-[endsect]
 
+Sets the non-blocking mode of the descriptor.
 
-[section:lowest_layer posix::basic_stream_descriptor::lowest_layer]
 
-[indexterm2 lowest_layer..posix::basic_stream_descriptor]
-Get a reference to the lowest layer.
+ boost::system::error_code non_blocking(
+ implementation_type & impl,
+ bool mode,
+ boost::system::error_code & ec);
 
 
- lowest_layer_type & ``[link boost_asio.reference.posix__basic_stream_descriptor.lowest_layer.overload1 lowest_layer]``();
- `` [''''&raquo;''' [link boost_asio.reference.posix__basic_stream_descriptor.lowest_layer.overload1 more...]]``
 
+[endsect]
 
-Get a const reference to the lowest layer.
 
+[endsect]
 
- const lowest_layer_type & ``[link boost_asio.reference.posix__basic_stream_descriptor.lowest_layer.overload2 lowest_layer]``() const;
- `` [''''&raquo;''' [link boost_asio.reference.posix__basic_stream_descriptor.lowest_layer.overload2 more...]]``
 
+[section:read_some posix::stream_descriptor_service::read_some]
 
-[section:overload1 posix::basic_stream_descriptor::lowest_layer (1 of 2 overloads)]
+[indexterm2 read_some..posix::stream_descriptor_service]
+Read some data from the stream.
 
 
-['Inherited from posix::basic_descriptor.]
+ template<
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
+ std::size_t read_some(
+ implementation_type & impl,
+ const MutableBufferSequence & buffers,
+ boost::system::error_code & ec);
 
 
-Get a reference to the lowest layer.
 
+[endsect]
 
- lowest_layer_type & lowest_layer();
 
 
-This function returns a reference to the lowest layer in a stack of layers. Since a [link boost_asio.reference.posix__basic_descriptor `posix::basic_descriptor`] cannot contain any further layers, it simply returns a reference to itself.
+[section:release posix::stream_descriptor_service::release]
 
+[indexterm2 release..posix::stream_descriptor_service]
+Release ownership of the native descriptor implementation.
 
-[heading Return Value]
-
-A reference to the lowest layer in the stack of layers. Ownership is not transferred to the caller.
 
+ native_handle_type release(
+ implementation_type & impl);
 
 
 
@@ -70980,44 +74510,52 @@
 
 
 
-[section:overload2 posix::basic_stream_descriptor::lowest_layer (2 of 2 overloads)]
-
+[section:stream_descriptor_service posix::stream_descriptor_service::stream_descriptor_service]
 
-['Inherited from posix::basic_descriptor.]
+[indexterm2 stream_descriptor_service..posix::stream_descriptor_service]
+Construct a new stream descriptor service for the specified [link boost_asio.reference.io_service `io_service`].
 
 
-Get a const reference to the lowest layer.
+ stream_descriptor_service(
+ boost::asio::io_service & io_service);
 
 
- const lowest_layer_type & lowest_layer() const;
 
+[endsect]
 
-This function returns a const reference to the lowest layer in a stack of layers. Since a [link boost_asio.reference.posix__basic_descriptor `posix::basic_descriptor`] cannot contain any further layers, it simply returns a reference to itself.
 
 
-[heading Return Value]
-
-A const reference to the lowest layer in the stack of layers. Ownership is not transferred to the caller.
+[section:write_some posix::stream_descriptor_service::write_some]
 
+[indexterm2 write_some..posix::stream_descriptor_service]
+Write the given data to the stream.
 
 
+ template<
+ typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
+ std::size_t write_some(
+ implementation_type & impl,
+ const ConstBufferSequence & buffers,
+ boost::system::error_code & ec);
 
-[endsect]
 
 
 [endsect]
 
 
-[section:lowest_layer_type posix::basic_stream_descriptor::lowest_layer_type]
 
+[endsect]
 
-['Inherited from posix::basic_descriptor.]
+[section:raw_socket_service raw_socket_service]
 
-[indexterm2 lowest_layer_type..posix::basic_stream_descriptor]
-A [link boost_asio.reference.posix__basic_descriptor `posix::basic_descriptor`] is always the lowest layer.
 
+Default service implementation for a raw socket.
 
- typedef basic_descriptor< StreamDescriptorService > lowest_layer_type;
+
+ template<
+ typename ``[link boost_asio.reference.Protocol Protocol]``>
+ class raw_socket_service :
+ public io_service::service
 
 
 [heading Types]
@@ -71026,50 +74564,36 @@
 
   [
 
- [[link boost_asio.reference.posix__basic_descriptor.bytes_readable [*bytes_readable]]]
- [IO control command to get the amount of data that can be read without blocking. ]
-
- ]
-
- [
-
- [[link boost_asio.reference.posix__basic_descriptor.implementation_type [*implementation_type]]]
- [The underlying implementation type of I/O object. ]
-
- ]
-
- [
-
- [[link boost_asio.reference.posix__basic_descriptor.lowest_layer_type [*lowest_layer_type]]]
- [A basic_descriptor is always the lowest layer. ]
+ [[link boost_asio.reference.raw_socket_service.endpoint_type [*endpoint_type]]]
+ [The endpoint type. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.posix__basic_descriptor.native_handle_type [*native_handle_type]]]
- [The native representation of a descriptor. ]
+ [[link boost_asio.reference.raw_socket_service.implementation_type [*implementation_type]]]
+ [The type of a raw socket. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.posix__basic_descriptor.native_type [*native_type]]]
- [(Deprecated: Use native_handle_type.) The native representation of a descriptor. ]
+ [[link boost_asio.reference.raw_socket_service.native_handle_type [*native_handle_type]]]
+ [The native socket type. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.posix__basic_descriptor.non_blocking_io [*non_blocking_io]]]
- [(Deprecated: Use non_blocking().) IO control command to set the blocking mode of the descriptor. ]
+ [[link boost_asio.reference.raw_socket_service.native_type [*native_type]]]
+ [(Deprecated: Use native_handle_type.) The native socket type. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.posix__basic_descriptor.service_type [*service_type]]]
- [The type of the service that will be used to provide I/O operations. ]
+ [[link boost_asio.reference.raw_socket_service.protocol_type [*protocol_type]]]
+ [The protocol type. ]
   
   ]
 
@@ -71080,252 +74604,229 @@
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.posix__basic_descriptor.assign [*assign]]]
- [Assign an existing native descriptor to the descriptor. ]
+ [[link boost_asio.reference.raw_socket_service.assign [*assign]]]
+ [Assign an existing native socket to a raw socket. ]
   ]
   
   [
- [[link boost_asio.reference.posix__basic_descriptor.basic_descriptor [*basic_descriptor]]]
- [Construct a basic_descriptor without opening it.
-
- Construct a basic_descriptor on an existing native descriptor.
-
- Move-construct a basic_descriptor from another. ]
+ [[link boost_asio.reference.raw_socket_service.async_connect [*async_connect]]]
+ [Start an asynchronous connect. ]
   ]
   
   [
- [[link boost_asio.reference.posix__basic_descriptor.cancel [*cancel]]]
- [Cancel all asynchronous operations associated with the descriptor. ]
+ [[link boost_asio.reference.raw_socket_service.async_receive [*async_receive]]]
+ [Start an asynchronous receive. ]
   ]
   
   [
- [[link boost_asio.reference.posix__basic_descriptor.close [*close]]]
- [Close the descriptor. ]
+ [[link boost_asio.reference.raw_socket_service.async_receive_from [*async_receive_from]]]
+ [Start an asynchronous receive that will get the endpoint of the sender. ]
   ]
   
   [
- [[link boost_asio.reference.posix__basic_descriptor.get_io_service [*get_io_service]]]
- [Get the io_service associated with the object. ]
+ [[link boost_asio.reference.raw_socket_service.async_send [*async_send]]]
+ [Start an asynchronous send. ]
   ]
   
   [
- [[link boost_asio.reference.posix__basic_descriptor.io_control [*io_control]]]
- [Perform an IO control command on the descriptor. ]
+ [[link boost_asio.reference.raw_socket_service.async_send_to [*async_send_to]]]
+ [Start an asynchronous send. ]
   ]
   
   [
- [[link boost_asio.reference.posix__basic_descriptor.is_open [*is_open]]]
- [Determine whether the descriptor is open. ]
+ [[link boost_asio.reference.raw_socket_service.at_mark [*at_mark]]]
+ [Determine whether the socket is at the out-of-band data mark. ]
   ]
   
   [
- [[link boost_asio.reference.posix__basic_descriptor.lowest_layer [*lowest_layer]]]
- [Get a reference to the lowest layer.
-
- Get a const reference to the lowest layer. ]
+ [[link boost_asio.reference.raw_socket_service.available [*available]]]
+ [Determine the number of bytes available for reading. ]
   ]
   
   [
- [[link boost_asio.reference.posix__basic_descriptor.native [*native]]]
- [(Deprecated: Use native_handle().) Get the native descriptor representation. ]
+ [[link boost_asio.reference.raw_socket_service.bind [*bind]]]
+ []
   ]
   
   [
- [[link boost_asio.reference.posix__basic_descriptor.native_handle [*native_handle]]]
- [Get the native descriptor representation. ]
+ [[link boost_asio.reference.raw_socket_service.cancel [*cancel]]]
+ [Cancel all asynchronous operations associated with the socket. ]
   ]
   
   [
- [[link boost_asio.reference.posix__basic_descriptor.native_non_blocking [*native_non_blocking]]]
- [Gets the non-blocking mode of the native descriptor implementation.
-
- Sets the non-blocking mode of the native descriptor implementation. ]
+ [[link boost_asio.reference.raw_socket_service.close [*close]]]
+ [Close a raw socket implementation. ]
   ]
   
   [
- [[link boost_asio.reference.posix__basic_descriptor.non_blocking [*non_blocking]]]
- [Gets the non-blocking mode of the descriptor.
-
- Sets the non-blocking mode of the descriptor. ]
+ [[link boost_asio.reference.raw_socket_service.connect [*connect]]]
+ [Connect the raw socket to the specified endpoint. ]
   ]
   
   [
- [[link boost_asio.reference.posix__basic_descriptor.operator_eq_ [*operator=]]]
- [Move-assign a basic_descriptor from another. ]
+ [[link boost_asio.reference.raw_socket_service.construct [*construct]]]
+ [Construct a new raw socket implementation. ]
   ]
   
   [
- [[link boost_asio.reference.posix__basic_descriptor.release [*release]]]
- [Release ownership of the native descriptor implementation. ]
+ [[link boost_asio.reference.raw_socket_service.destroy [*destroy]]]
+ [Destroy a raw socket implementation. ]
   ]
   
-]
-
-[heading Protected Member Functions]
-[table
- [[Name][Description]]
-
   [
- [[link boost_asio.reference.posix__basic_descriptor.get_implementation [*get_implementation]]]
- [Get the underlying implementation of the I/O object. ]
+ [[link boost_asio.reference.raw_socket_service.get_io_service [*get_io_service]]]
+ [Get the io_service object that owns the service. ]
   ]
   
   [
- [[link boost_asio.reference.posix__basic_descriptor.get_service [*get_service]]]
- [Get the service associated with the I/O object. ]
+ [[link boost_asio.reference.raw_socket_service.get_option [*get_option]]]
+ [Get a socket option. ]
   ]
   
   [
- [[link boost_asio.reference.posix__basic_descriptor._basic_descriptor [*~basic_descriptor]]]
- [Protected destructor to prevent deletion through this type. ]
+ [[link boost_asio.reference.raw_socket_service.io_control [*io_control]]]
+ [Perform an IO control command on the socket. ]
   ]
   
-]
-
-[heading Protected Data Members]
-[table
- [[Name][Description]]
-
   [
- [[link boost_asio.reference.posix__basic_descriptor.implementation [*implementation]]]
- [(Deprecated: Use get_implementation().) The underlying implementation of the I/O object. ]
+ [[link boost_asio.reference.raw_socket_service.is_open [*is_open]]]
+ [Determine whether the socket is open. ]
   ]
-
+
   [
- [[link boost_asio.reference.posix__basic_descriptor.service [*service]]]
- [(Deprecated: Use get_service().) The service associated with the I/O object. ]
+ [[link boost_asio.reference.raw_socket_service.local_endpoint [*local_endpoint]]]
+ [Get the local endpoint. ]
   ]
-
-]
-
-The [link boost_asio.reference.posix__basic_descriptor `posix::basic_descriptor`] class template provides the ability to wrap a POSIX descriptor.
-
-
-[heading Thread Safety]
   
-[*Distinct] [*objects:] Safe.
-
-[*Shared] [*objects:] Unsafe.
-
-
-
-
-[heading Requirements]
-
-[*Header: ][^boost/asio/posix/basic_stream_descriptor.hpp]
-
-[*Convenience header: ][^boost/asio.hpp]
-
-
-[endsect]
-
-
-
-[section:native posix::basic_stream_descriptor::native]
-
-
-['Inherited from posix::basic_descriptor.]
-
-[indexterm2 native..posix::basic_stream_descriptor]
-(Deprecated: Use `native_handle()`.) Get the native descriptor representation.
-
-
- native_type native();
-
-
-This function may be used to obtain the underlying representation of the descriptor. This is intended to allow access to native descriptor functionality that is not otherwise provided.
-
-
-[endsect]
-
-
-
-[section:native_handle posix::basic_stream_descriptor::native_handle]
-
-
-['Inherited from posix::basic_descriptor.]
-
-[indexterm2 native_handle..posix::basic_stream_descriptor]
-Get the native descriptor representation.
-
-
- native_handle_type native_handle();
-
-
-This function may be used to obtain the underlying representation of the descriptor. This is intended to allow access to native descriptor functionality that is not otherwise provided.
-
-
-[endsect]
-
-
-
-[section:native_handle_type posix::basic_stream_descriptor::native_handle_type]
+ [
+ [[link boost_asio.reference.raw_socket_service.move_assign [*move_assign]]]
+ [Move-assign from another raw socket implementation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.raw_socket_service.move_construct [*move_construct]]]
+ [Move-construct a new raw socket implementation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.raw_socket_service.native [*native]]]
+ [(Deprecated: Use native_handle().) Get the native socket implementation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.raw_socket_service.native_handle [*native_handle]]]
+ [Get the native socket implementation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.raw_socket_service.native_non_blocking [*native_non_blocking]]]
+ [Gets the non-blocking mode of the native socket implementation.
 
-[indexterm2 native_handle_type..posix::basic_stream_descriptor]
-The native representation of a descriptor.
+ Sets the non-blocking mode of the native socket implementation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.raw_socket_service.non_blocking [*non_blocking]]]
+ [Gets the non-blocking mode of the socket.
 
+ Sets the non-blocking mode of the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.raw_socket_service.open [*open]]]
+ []
+ ]
+
+ [
+ [[link boost_asio.reference.raw_socket_service.raw_socket_service [*raw_socket_service]]]
+ [Construct a new raw socket service for the specified io_service. ]
+ ]
+
+ [
+ [[link boost_asio.reference.raw_socket_service.receive [*receive]]]
+ [Receive some data from the peer. ]
+ ]
+
+ [
+ [[link boost_asio.reference.raw_socket_service.receive_from [*receive_from]]]
+ [Receive raw data with the endpoint of the sender. ]
+ ]
+
+ [
+ [[link boost_asio.reference.raw_socket_service.remote_endpoint [*remote_endpoint]]]
+ [Get the remote endpoint. ]
+ ]
+
+ [
+ [[link boost_asio.reference.raw_socket_service.send [*send]]]
+ [Send the given data to the peer. ]
+ ]
+
+ [
+ [[link boost_asio.reference.raw_socket_service.send_to [*send_to]]]
+ [Send raw data to the specified endpoint. ]
+ ]
+
+ [
+ [[link boost_asio.reference.raw_socket_service.set_option [*set_option]]]
+ [Set a socket option. ]
+ ]
+
+ [
+ [[link boost_asio.reference.raw_socket_service.shutdown [*shutdown]]]
+ [Disable sends or receives on the socket. ]
+ ]
+
+]
 
- typedef StreamDescriptorService::native_handle_type native_handle_type;
+[heading Data Members]
+[table
+ [[Name][Description]]
 
+ [
+ [[link boost_asio.reference.raw_socket_service.id [*id]]]
+ [The unique service identifier. ]
+ ]
 
+]
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/posix/basic_stream_descriptor.hpp]
+[*Header: ][^boost/asio/raw_socket_service.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
 
-[endsect]
-
-
-[section:native_non_blocking posix::basic_stream_descriptor::native_non_blocking]
-
-[indexterm2 native_non_blocking..posix::basic_stream_descriptor]
-Gets the non-blocking mode of the native descriptor implementation.
-
-
- bool ``[link boost_asio.reference.posix__basic_stream_descriptor.native_non_blocking.overload1 native_non_blocking]``() const;
- `` [''''&raquo;''' [link boost_asio.reference.posix__basic_stream_descriptor.native_non_blocking.overload1 more...]]``
-
-
-Sets the non-blocking mode of the native descriptor implementation.
+[section:assign raw_socket_service::assign]
 
+[indexterm2 assign..raw_socket_service]
+Assign an existing native socket to a raw socket.
 
- void ``[link boost_asio.reference.posix__basic_stream_descriptor.native_non_blocking.overload2 native_non_blocking]``(
- bool mode);
- `` [''''&raquo;''' [link boost_asio.reference.posix__basic_stream_descriptor.native_non_blocking.overload2 more...]]``
 
- boost::system::error_code ``[link boost_asio.reference.posix__basic_stream_descriptor.native_non_blocking.overload3 native_non_blocking]``(
- bool mode,
+ boost::system::error_code assign(
+ implementation_type & impl,
+ const protocol_type & protocol,
+ const native_handle_type & native_socket,
       boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.posix__basic_stream_descriptor.native_non_blocking.overload3 more...]]``
-
-
-[section:overload1 posix::basic_stream_descriptor::native_non_blocking (1 of 3 overloads)]
-
-
-['Inherited from posix::basic_descriptor.]
-
-
-Gets the non-blocking mode of the native descriptor implementation.
 
 
- bool native_non_blocking() const;
 
+[endsect]
 
-This function is used to retrieve the non-blocking mode of the underlying native descriptor. This mode has no effect on the behaviour of the descriptor object's synchronous operations.
 
 
-[heading Return Value]
-
-`true` if the underlying descriptor is in non-blocking mode and direct system calls may fail with `boost::asio::error::would_block` (or the equivalent system error).
+[section:async_connect raw_socket_service::async_connect]
 
+[indexterm2 async_connect..raw_socket_service]
+Start an asynchronous connect.
 
-[heading Remarks]
-
-The current non-blocking mode is cached by the descriptor object. Consequently, the return value may be incorrect if the non-blocking mode was set directly on the native descriptor.
 
+ template<
+ typename ``[link boost_asio.reference.ConnectHandler ConnectHandler]``>
+ void async_connect(
+ implementation_type & impl,
+ const endpoint_type & peer_endpoint,
+ ConnectHandler handler);
 
 
 
@@ -71333,41 +74834,42 @@
 
 
 
-[section:overload2 posix::basic_stream_descriptor::native_non_blocking (2 of 3 overloads)]
-
-
-['Inherited from posix::basic_descriptor.]
-
-
-Sets the non-blocking mode of the native descriptor implementation.
-
+[section:async_receive raw_socket_service::async_receive]
 
- void native_non_blocking(
- bool mode);
+[indexterm2 async_receive..raw_socket_service]
+Start an asynchronous receive.
 
 
-This function is used to modify the non-blocking mode of the underlying native descriptor. It has no effect on the behaviour of the descriptor object's synchronous operations.
+ template<
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
+ typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
+ void async_receive(
+ implementation_type & impl,
+ const MutableBufferSequence & buffers,
+ socket_base::message_flags flags,
+ ReadHandler handler);
 
 
-[heading Parameters]
-
 
-[variablelist
-
-[[mode][If `true`, the underlying descriptor is put into non-blocking mode and direct system calls may fail with `boost::asio::error::would_block` (or the equivalent system error).]]
+[endsect]
 
-]
 
 
-[heading Exceptions]
-
+[section:async_receive_from raw_socket_service::async_receive_from]
 
-[variablelist
-
-[[boost::system::system_error][Thrown on failure. If the `mode` is `false`, but the current value of `non_blocking()` is `true`, this function fails with `boost::asio::error::invalid_argument`, as the combination does not make sense. ]]
+[indexterm2 async_receive_from..raw_socket_service]
+Start an asynchronous receive that will get the endpoint of the sender.
 
-]
 
+ template<
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
+ typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
+ void async_receive_from(
+ implementation_type & impl,
+ const MutableBufferSequence & buffers,
+ endpoint_type & sender_endpoint,
+ socket_base::message_flags flags,
+ ReadHandler handler);
 
 
 
@@ -71375,153 +74877,153 @@
 
 
 
-[section:overload3 posix::basic_stream_descriptor::native_non_blocking (3 of 3 overloads)]
-
-
-['Inherited from posix::basic_descriptor.]
+[section:async_send raw_socket_service::async_send]
 
+[indexterm2 async_send..raw_socket_service]
+Start an asynchronous send.
 
-Sets the non-blocking mode of the native descriptor implementation.
 
+ template<
+ typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
+ typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
+ void async_send(
+ implementation_type & impl,
+ const ConstBufferSequence & buffers,
+ socket_base::message_flags flags,
+ WriteHandler handler);
 
- boost::system::error_code native_non_blocking(
- bool mode,
- boost::system::error_code & ec);
 
 
-This function is used to modify the non-blocking mode of the underlying native descriptor. It has no effect on the behaviour of the descriptor object's synchronous operations.
+[endsect]
 
 
-[heading Parameters]
-
 
-[variablelist
-
-[[mode][If `true`, the underlying descriptor is put into non-blocking mode and direct system calls may fail with `boost::asio::error::would_block` (or the equivalent system error).]]
+[section:async_send_to raw_socket_service::async_send_to]
 
-[[ec][Set to indicate what error occurred, if any. If the `mode` is `false`, but the current value of `non_blocking()` is `true`, this function fails with `boost::asio::error::invalid_argument`, as the combination does not make sense. ]]
+[indexterm2 async_send_to..raw_socket_service]
+Start an asynchronous send.
 
-]
 
+ template<
+ typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
+ typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
+ void async_send_to(
+ implementation_type & impl,
+ const ConstBufferSequence & buffers,
+ const endpoint_type & destination,
+ socket_base::message_flags flags,
+ WriteHandler handler);
 
 
 
 [endsect]
 
 
-[endsect]
-
 
-[section:native_type posix::basic_stream_descriptor::native_type]
+[section:at_mark raw_socket_service::at_mark]
 
-[indexterm2 native_type..posix::basic_stream_descriptor]
-(Deprecated: Use native\_handle\_type.) The native representation of a descriptor.
+[indexterm2 at_mark..raw_socket_service]
+Determine whether the socket is at the out-of-band data mark.
 
 
- typedef StreamDescriptorService::native_handle_type native_type;
+ bool at_mark(
+ const implementation_type & impl,
+ boost::system::error_code & ec) const;
 
 
 
-[heading Requirements]
+[endsect]
 
-[*Header: ][^boost/asio/posix/basic_stream_descriptor.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
 
+[section:available raw_socket_service::available]
 
-[endsect]
+[indexterm2 available..raw_socket_service]
+Determine the number of bytes available for reading.
 
 
-[section:non_blocking posix::basic_stream_descriptor::non_blocking]
+ std::size_t available(
+ const implementation_type & impl,
+ boost::system::error_code & ec) const;
 
-[indexterm2 non_blocking..posix::basic_stream_descriptor]
-Gets the non-blocking mode of the descriptor.
 
 
- bool ``[link boost_asio.reference.posix__basic_stream_descriptor.non_blocking.overload1 non_blocking]``() const;
- `` [''''&raquo;''' [link boost_asio.reference.posix__basic_stream_descriptor.non_blocking.overload1 more...]]``
+[endsect]
 
 
-Sets the non-blocking mode of the descriptor.
 
+[section:bind raw_socket_service::bind]
 
- void ``[link boost_asio.reference.posix__basic_stream_descriptor.non_blocking.overload2 non_blocking]``(
- bool mode);
- `` [''''&raquo;''' [link boost_asio.reference.posix__basic_stream_descriptor.non_blocking.overload2 more...]]``
+[indexterm2 bind..raw_socket_service]
 
- boost::system::error_code ``[link boost_asio.reference.posix__basic_stream_descriptor.non_blocking.overload3 non_blocking]``(
- bool mode,
+ boost::system::error_code bind(
+ implementation_type & impl,
+ const endpoint_type & endpoint,
       boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.posix__basic_stream_descriptor.non_blocking.overload3 more...]]``
-
-
-[section:overload1 posix::basic_stream_descriptor::non_blocking (1 of 3 overloads)]
 
 
-['Inherited from posix::basic_descriptor.]
 
+[endsect]
 
-Gets the non-blocking mode of the descriptor.
 
 
- bool non_blocking() const;
+[section:cancel raw_socket_service::cancel]
 
+[indexterm2 cancel..raw_socket_service]
+Cancel all asynchronous operations associated with the socket.
 
 
-[heading Return Value]
-
-`true` if the descriptor's synchronous operations will fail with `boost::asio::error::would_block` if they are unable to perform the requested operation immediately. If `false`, synchronous operations will block until complete.
+ boost::system::error_code cancel(
+ implementation_type & impl,
+ boost::system::error_code & ec);
 
 
-[heading Remarks]
-
-The non-blocking mode has no effect on the behaviour of asynchronous operations. Asynchronous operations will never fail with the error `boost::asio::error::would_block`.
 
+[endsect]
 
 
 
-[endsect]
+[section:close raw_socket_service::close]
 
+[indexterm2 close..raw_socket_service]
+Close a raw socket implementation.
 
 
-[section:overload2 posix::basic_stream_descriptor::non_blocking (2 of 3 overloads)]
+ boost::system::error_code close(
+ implementation_type & impl,
+ boost::system::error_code & ec);
 
 
-['Inherited from posix::basic_descriptor.]
 
+[endsect]
 
-Sets the non-blocking mode of the descriptor.
 
 
- void non_blocking(
- bool mode);
+[section:connect raw_socket_service::connect]
 
+[indexterm2 connect..raw_socket_service]
+Connect the raw socket to the specified endpoint.
 
 
-[heading Parameters]
-
+ boost::system::error_code connect(
+ implementation_type & impl,
+ const endpoint_type & peer_endpoint,
+ boost::system::error_code & ec);
 
-[variablelist
-
-[[mode][If `true`, the descriptor's synchronous operations will fail with `boost::asio::error::would_block` if they are unable to perform the requested operation immediately. If `false`, synchronous operations will block until complete.]]
 
-]
 
+[endsect]
 
-[heading Exceptions]
-
 
-[variablelist
-
-[[boost::system::system_error][Thrown on failure.]]
 
-]
+[section:construct raw_socket_service::construct]
 
+[indexterm2 construct..raw_socket_service]
+Construct a new raw socket implementation.
 
-[heading Remarks]
-
-The non-blocking mode has no effect on the behaviour of asynchronous operations. Asynchronous operations will never fail with the error `boost::asio::error::would_block`.
 
+ void construct(
+ implementation_type & impl);
 
 
 
@@ -71529,195 +75031,156 @@
 
 
 
-[section:overload3 posix::basic_stream_descriptor::non_blocking (3 of 3 overloads)]
-
+[section:destroy raw_socket_service::destroy]
 
-['Inherited from posix::basic_descriptor.]
+[indexterm2 destroy..raw_socket_service]
+Destroy a raw socket implementation.
 
 
-Sets the non-blocking mode of the descriptor.
+ void destroy(
+ implementation_type & impl);
 
 
- boost::system::error_code non_blocking(
- bool mode,
- boost::system::error_code & ec);
 
+[endsect]
 
 
-[heading Parameters]
-
 
-[variablelist
-
-[[mode][If `true`, the descriptor's synchronous operations will fail with `boost::asio::error::would_block` if they are unable to perform the requested operation immediately. If `false`, synchronous operations will block until complete.]]
+[section:endpoint_type raw_socket_service::endpoint_type]
 
-[[ec][Set to indicate what error occurred, if any.]]
+[indexterm2 endpoint_type..raw_socket_service]
+The endpoint type.
 
-]
 
+ typedef Protocol::endpoint endpoint_type;
 
-[heading Remarks]
-
-The non-blocking mode has no effect on the behaviour of asynchronous operations. Asynchronous operations will never fail with the error `boost::asio::error::would_block`.
 
 
+[heading Requirements]
 
+[*Header: ][^boost/asio/raw_socket_service.hpp]
 
-[endsect]
+[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
-[section:non_blocking_io posix::basic_stream_descriptor::non_blocking_io]
-
 
-['Inherited from posix::descriptor_base.]
+[section:get_io_service raw_socket_service::get_io_service]
 
-[indexterm2 non_blocking_io..posix::basic_stream_descriptor]
-(Deprecated: Use non\_blocking().) IO control command to set the blocking mode of the descriptor.
 
+['Inherited from io_service.]
 
- typedef implementation_defined non_blocking_io;
+[indexterm2 get_io_service..raw_socket_service]
+Get the [link boost_asio.reference.io_service `io_service`] object that owns the service.
 
 
+ boost::asio::io_service & get_io_service();
 
-Implements the FIONBIO IO control command.
 
 
-[heading Example]
-
+[endsect]
 
 
- boost::asio::posix::stream_descriptor descriptor(io_service);
- ...
- boost::asio::descriptor_base::non_blocking_io command(true);
- descriptor.io_control(command);
 
+[section:get_option raw_socket_service::get_option]
 
+[indexterm2 get_option..raw_socket_service]
+Get a socket option.
 
 
+ template<
+ typename ``[link boost_asio.reference.GettableSocketOption GettableSocketOption]``>
+ boost::system::error_code get_option(
+ const implementation_type & impl,
+ GettableSocketOption & option,
+ boost::system::error_code & ec) const;
 
 
 
-[heading Requirements]
+[endsect]
 
-[*Header: ][^boost/asio/posix/basic_stream_descriptor.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
 
+[section:id raw_socket_service::id]
 
-[endsect]
+[indexterm2 id..raw_socket_service]
+The unique service identifier.
 
 
+ static boost::asio::io_service::id id;
 
-[section:operator_eq_ posix::basic_stream_descriptor::operator=]
 
-[indexterm2 operator=..posix::basic_stream_descriptor]
-Move-assign a [link boost_asio.reference.posix__basic_stream_descriptor `posix::basic_stream_descriptor`] from another.
 
+[endsect]
 
- basic_stream_descriptor & operator=(
- basic_stream_descriptor && other);
 
 
-This assignment operator moves a stream descriptor from one object to another.
+[section:implementation_type raw_socket_service::implementation_type]
 
+[indexterm2 implementation_type..raw_socket_service]
+The type of a raw socket.
 
-[heading Parameters]
-
 
-[variablelist
-
-[[other][The other [link boost_asio.reference.posix__basic_stream_descriptor `posix::basic_stream_descriptor`] object from which the move will occur.]]
+ typedef implementation_defined implementation_type;
 
-]
 
 
-[heading Remarks]
-
-Following the move, the moved-from object is in the same state as if constructed using the `basic_stream_descriptor(io_service&) constructor`.
+[heading Requirements]
 
+[*Header: ][^boost/asio/raw_socket_service.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
-[section:read_some posix::basic_stream_descriptor::read_some]
 
-[indexterm2 read_some..posix::basic_stream_descriptor]
-Read some data from the descriptor.
+[section:io_control raw_socket_service::io_control]
 
+[indexterm2 io_control..raw_socket_service]
+Perform an IO control command on the socket.
 
- template<
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
- std::size_t ``[link boost_asio.reference.posix__basic_stream_descriptor.read_some.overload1 read_some]``(
- const MutableBufferSequence & buffers);
- `` [''''&raquo;''' [link boost_asio.reference.posix__basic_stream_descriptor.read_some.overload1 more...]]``
 
   template<
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
- std::size_t ``[link boost_asio.reference.posix__basic_stream_descriptor.read_some.overload2 read_some]``(
- const MutableBufferSequence & buffers,
+ typename ``[link boost_asio.reference.IoControlCommand IoControlCommand]``>
+ boost::system::error_code io_control(
+ implementation_type & impl,
+ IoControlCommand & command,
       boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.posix__basic_stream_descriptor.read_some.overload2 more...]]``
-
-
-[section:overload1 posix::basic_stream_descriptor::read_some (1 of 2 overloads)]
-
-
-Read some data from the descriptor.
-
-
- template<
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
- std::size_t read_some(
- const MutableBufferSequence & buffers);
-
-
-This function is used to read data from the stream descriptor. The function call will block until one or more bytes of data has been read successfully, or until an error occurs.
 
 
-[heading Parameters]
-
 
-[variablelist
-
-[[buffers][One or more buffers into which the data will be read.]]
+[endsect]
 
-]
 
 
-[heading Return Value]
-
-The number of bytes read.
+[section:is_open raw_socket_service::is_open]
 
+[indexterm2 is_open..raw_socket_service]
+Determine whether the socket is open.
 
-[heading Exceptions]
-
 
-[variablelist
-
-[[boost::system::system_error][Thrown on failure. An error code of `boost::asio::error::eof` indicates that the connection was closed by the peer.]]
+ bool is_open(
+ const implementation_type & impl) const;
 
-]
 
 
-[heading Remarks]
-
-The read\_some operation may not read all of the requested number of bytes. Consider using the [link boost_asio.reference.read `read`] function if you need to ensure that the requested amount of data is read before the blocking operation completes.
+[endsect]
 
 
-[heading Example]
-
-To read into a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
 
- descriptor.read_some(boost::asio::buffer(data, size));
+[section:local_endpoint raw_socket_service::local_endpoint]
 
+[indexterm2 local_endpoint..raw_socket_service]
+Get the local endpoint.
 
-See the [link boost_asio.reference.buffer `buffer`] documentation for information on reading into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
 
+ endpoint_type local_endpoint(
+ const implementation_type & impl,
+ boost::system::error_code & ec) const;
 
 
 
@@ -71725,90 +75188,62 @@
 
 
 
-[section:overload2 posix::basic_stream_descriptor::read_some (2 of 2 overloads)]
-
-
-Read some data from the descriptor.
-
-
- template<
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
- std::size_t read_some(
- const MutableBufferSequence & buffers,
- boost::system::error_code & ec);
-
-
-This function is used to read data from the stream descriptor. The function call will block until one or more bytes of data has been read successfully, or until an error occurs.
+[section:move_assign raw_socket_service::move_assign]
 
+[indexterm2 move_assign..raw_socket_service]
+Move-assign from another raw socket implementation.
 
-[heading Parameters]
-
 
-[variablelist
-
-[[buffers][One or more buffers into which the data will be read.]]
+ void move_assign(
+ implementation_type & impl,
+ raw_socket_service & other_service,
+ implementation_type & other_impl);
 
-[[ec][Set to indicate what error occurred, if any.]]
 
-]
 
+[endsect]
 
-[heading Return Value]
-
-The number of bytes read. Returns 0 if an error occurred.
 
 
-[heading Remarks]
-
-The read\_some operation may not read all of the requested number of bytes. Consider using the [link boost_asio.reference.read `read`] function if you need to ensure that the requested amount of data is read before the blocking operation completes.
+[section:move_construct raw_socket_service::move_construct]
 
+[indexterm2 move_construct..raw_socket_service]
+Move-construct a new raw socket implementation.
 
 
+ void move_construct(
+ implementation_type & impl,
+ implementation_type & other_impl);
 
-[endsect]
 
 
 [endsect]
 
 
-[section:release posix::basic_stream_descriptor::release]
-
-
-['Inherited from posix::basic_descriptor.]
-
-[indexterm2 release..posix::basic_stream_descriptor]
-Release ownership of the native descriptor implementation.
 
+[section:native raw_socket_service::native]
 
- native_handle_type release();
+[indexterm2 native..raw_socket_service]
+(Deprecated: Use `native_handle()`.) Get the native socket implementation.
 
 
-This function may be used to obtain the underlying representation of the descriptor. After calling this function, `is_open()` returns false. The caller is responsible for closing the descriptor.
+ native_type native(
+ implementation_type & impl);
 
-All outstanding asynchronous read or write operations will finish immediately, and the handlers for cancelled operations will be passed the `boost::asio::error::operation_aborted` error.
 
 
 [endsect]
 
 
 
-[section:service posix::basic_stream_descriptor::service]
-
-
-['Inherited from basic_io_object.]
-
-[indexterm2 service..posix::basic_stream_descriptor]
-(Deprecated: Use `get_service()`.) The service associated with the I/O object.
-
-
- service_type & service;
-
+[section:native_handle raw_socket_service::native_handle]
 
+[indexterm2 native_handle..raw_socket_service]
+Get the native socket implementation.
 
-[heading Remarks]
-
-Available only for services that do not support movability.
 
+ native_handle_type native_handle(
+ implementation_type & impl);
 
 
 
@@ -71816,22 +75251,19 @@
 
 
 
-[section:service_type posix::basic_stream_descriptor::service_type]
-
-
-['Inherited from basic_io_object.]
+[section:native_handle_type raw_socket_service::native_handle_type]
 
-[indexterm2 service_type..posix::basic_stream_descriptor]
-The type of the service that will be used to provide I/O operations.
+[indexterm2 native_handle_type..raw_socket_service]
+The native socket type.
 
 
- typedef StreamDescriptorService service_type;
+ typedef implementation_defined native_handle_type;
 
 
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/posix/basic_stream_descriptor.hpp]
+[*Header: ][^boost/asio/raw_socket_service.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
@@ -71839,268 +75271,257 @@
 [endsect]
 
 
-[section:write_some posix::basic_stream_descriptor::write_some]
+[section:native_non_blocking raw_socket_service::native_non_blocking]
 
-[indexterm2 write_some..posix::basic_stream_descriptor]
-Write some data to the descriptor.
+[indexterm2 native_non_blocking..raw_socket_service]
+Gets the non-blocking mode of the native socket implementation.
+
+
+ bool ``[link boost_asio.reference.raw_socket_service.native_non_blocking.overload1 native_non_blocking]``(
+ const implementation_type & impl) const;
+ `` [''''&raquo;''' [link boost_asio.reference.raw_socket_service.native_non_blocking.overload1 more...]]``
 
 
- template<
- typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
- std::size_t ``[link boost_asio.reference.posix__basic_stream_descriptor.write_some.overload1 write_some]``(
- const ConstBufferSequence & buffers);
- `` [''''&raquo;''' [link boost_asio.reference.posix__basic_stream_descriptor.write_some.overload1 more...]]``
+Sets the non-blocking mode of the native socket implementation.
 
- template<
- typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
- std::size_t ``[link boost_asio.reference.posix__basic_stream_descriptor.write_some.overload2 write_some]``(
- const ConstBufferSequence & buffers,
+
+ boost::system::error_code ``[link boost_asio.reference.raw_socket_service.native_non_blocking.overload2 native_non_blocking]``(
+ implementation_type & impl,
+ bool mode,
       boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.posix__basic_stream_descriptor.write_some.overload2 more...]]``
+ `` [''''&raquo;''' [link boost_asio.reference.raw_socket_service.native_non_blocking.overload2 more...]]``
 
 
-[section:overload1 posix::basic_stream_descriptor::write_some (1 of 2 overloads)]
+[section:overload1 raw_socket_service::native_non_blocking (1 of 2 overloads)]
 
 
-Write some data to the descriptor.
+Gets the non-blocking mode of the native socket implementation.
 
 
- template<
- typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
- std::size_t write_some(
- const ConstBufferSequence & buffers);
+ bool native_non_blocking(
+ const implementation_type & impl) const;
 
 
-This function is used to write data to the stream descriptor. The function call will block until one or more bytes of the data has been written successfully, or until an error occurs.
 
+[endsect]
 
-[heading Parameters]
-
 
-[variablelist
-
-[[buffers][One or more data buffers to be written to the descriptor.]]
 
-]
+[section:overload2 raw_socket_service::native_non_blocking (2 of 2 overloads)]
 
 
-[heading Return Value]
-
-The number of bytes written.
+Sets the non-blocking mode of the native socket implementation.
 
 
-[heading Exceptions]
-
+ boost::system::error_code native_non_blocking(
+ implementation_type & impl,
+ bool mode,
+ boost::system::error_code & ec);
 
-[variablelist
-
-[[boost::system::system_error][Thrown on failure. An error code of `boost::asio::error::eof` indicates that the connection was closed by the peer.]]
 
-]
 
+[endsect]
 
-[heading Remarks]
-
-The write\_some operation may not transmit all of the data to the peer. Consider using the [link boost_asio.reference.write `write`] function if you need to ensure that all data is written before the blocking operation completes.
 
+[endsect]
 
-[heading Example]
-
-To write a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
 
- descriptor.write_some(boost::asio::buffer(data, size));
+[section:native_type raw_socket_service::native_type]
 
+[indexterm2 native_type..raw_socket_service]
+(Deprecated: Use native\_handle\_type.) The native socket type.
 
-See the [link boost_asio.reference.buffer `buffer`] documentation for information on writing multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
 
+ typedef implementation_defined native_type;
 
 
 
-[endsect]
+[heading Requirements]
 
+[*Header: ][^boost/asio/raw_socket_service.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
-[section:overload2 posix::basic_stream_descriptor::write_some (2 of 2 overloads)]
 
+[endsect]
 
-Write some data to the descriptor.
 
+[section:non_blocking raw_socket_service::non_blocking]
 
- template<
- typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
- std::size_t write_some(
- const ConstBufferSequence & buffers,
- boost::system::error_code & ec);
+[indexterm2 non_blocking..raw_socket_service]
+Gets the non-blocking mode of the socket.
 
 
-This function is used to write data to the stream descriptor. The function call will block until one or more bytes of the data has been written successfully, or until an error occurs.
+ bool ``[link boost_asio.reference.raw_socket_service.non_blocking.overload1 non_blocking]``(
+ const implementation_type & impl) const;
+ `` [''''&raquo;''' [link boost_asio.reference.raw_socket_service.non_blocking.overload1 more...]]``
 
 
-[heading Parameters]
-
+Sets the non-blocking mode of the socket.
 
-[variablelist
-
-[[buffers][One or more data buffers to be written to the descriptor.]]
 
-[[ec][Set to indicate what error occurred, if any.]]
+ boost::system::error_code ``[link boost_asio.reference.raw_socket_service.non_blocking.overload2 non_blocking]``(
+ implementation_type & impl,
+ bool mode,
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.raw_socket_service.non_blocking.overload2 more...]]``
 
-]
 
+[section:overload1 raw_socket_service::non_blocking (1 of 2 overloads)]
 
-[heading Return Value]
-
-The number of bytes written. Returns 0 if an error occurred.
 
+Gets the non-blocking mode of the socket.
 
-[heading Remarks]
-
-The write\_some operation may not transmit all of the data to the peer. Consider using the [link boost_asio.reference.write `write`] function if you need to ensure that all data is written before the blocking operation completes.
 
+ bool non_blocking(
+ const implementation_type & impl) const;
 
 
 
 [endsect]
 
 
-[endsect]
 
+[section:overload2 raw_socket_service::non_blocking (2 of 2 overloads)]
 
-[endsect]
 
-[section:posix__descriptor_base posix::descriptor_base]
+Sets the non-blocking mode of the socket.
 
 
-The [link boost_asio.reference.posix__descriptor_base `posix::descriptor_base`] class is used as a base for the [link boost_asio.reference.posix__basic_stream_descriptor `posix::basic_stream_descriptor`] class template so that we have a common place to define the associated IO control commands.
+ boost::system::error_code non_blocking(
+ implementation_type & impl,
+ bool mode,
+ boost::system::error_code & ec);
 
 
- class descriptor_base
 
+[endsect]
 
-[heading Types]
-[table
- [[Name][Description]]
 
- [
+[endsect]
 
- [[link boost_asio.reference.posix__descriptor_base.bytes_readable [*bytes_readable]]]
- [IO control command to get the amount of data that can be read without blocking. ]
-
- ]
 
- [
+[section:open raw_socket_service::open]
 
- [[link boost_asio.reference.posix__descriptor_base.non_blocking_io [*non_blocking_io]]]
- [(Deprecated: Use non_blocking().) IO control command to set the blocking mode of the descriptor. ]
-
- ]
+[indexterm2 open..raw_socket_service]
 
-]
+ boost::system::error_code open(
+ implementation_type & impl,
+ const protocol_type & protocol,
+ boost::system::error_code & ec);
 
-[heading Protected Member Functions]
-[table
- [[Name][Description]]
 
- [
- [[link boost_asio.reference.posix__descriptor_base._descriptor_base [*~descriptor_base]]]
- [Protected destructor to prevent deletion through this type. ]
- ]
-
-]
 
-[heading Requirements]
+[endsect]
 
-[*Header: ][^boost/asio/posix/descriptor_base.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
 
+[section:protocol_type raw_socket_service::protocol_type]
 
-[section:bytes_readable posix::descriptor_base::bytes_readable]
+[indexterm2 protocol_type..raw_socket_service]
+The protocol type.
 
-[indexterm2 bytes_readable..posix::descriptor_base]
-IO control command to get the amount of data that can be read without blocking.
 
+ typedef Protocol protocol_type;
 
- typedef implementation_defined bytes_readable;
 
 
+[heading Requirements]
 
-Implements the FIONREAD IO control command.
+[*Header: ][^boost/asio/raw_socket_service.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
-[heading Example]
-
 
+[endsect]
 
- boost::asio::posix::stream_descriptor descriptor(io_service);
- ...
- boost::asio::descriptor_base::bytes_readable command(true);
- descriptor.io_control(command);
- std::size_t bytes_readable = command.get();
 
 
+[section:raw_socket_service raw_socket_service::raw_socket_service]
 
+[indexterm2 raw_socket_service..raw_socket_service]
+Construct a new raw socket service for the specified [link boost_asio.reference.io_service `io_service`].
 
 
+ raw_socket_service(
+ boost::asio::io_service & io_service);
 
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/posix/descriptor_base.hpp]
+[endsect]
 
-[*Convenience header: ][^boost/asio.hpp]
 
 
-[endsect]
+[section:receive raw_socket_service::receive]
 
+[indexterm2 receive..raw_socket_service]
+Receive some data from the peer.
 
 
-[section:non_blocking_io posix::descriptor_base::non_blocking_io]
+ template<
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
+ std::size_t receive(
+ implementation_type & impl,
+ const MutableBufferSequence & buffers,
+ socket_base::message_flags flags,
+ boost::system::error_code & ec);
 
-[indexterm2 non_blocking_io..posix::descriptor_base]
-(Deprecated: Use non\_blocking().) IO control command to set the blocking mode of the descriptor.
 
 
- typedef implementation_defined non_blocking_io;
+[endsect]
 
 
 
-Implements the FIONBIO IO control command.
+[section:receive_from raw_socket_service::receive_from]
 
+[indexterm2 receive_from..raw_socket_service]
+Receive raw data with the endpoint of the sender.
 
-[heading Example]
-
 
+ template<
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
+ std::size_t receive_from(
+ implementation_type & impl,
+ const MutableBufferSequence & buffers,
+ endpoint_type & sender_endpoint,
+ socket_base::message_flags flags,
+ boost::system::error_code & ec);
 
- boost::asio::posix::stream_descriptor descriptor(io_service);
- ...
- boost::asio::descriptor_base::non_blocking_io command(true);
- descriptor.io_control(command);
 
 
+[endsect]
 
 
 
+[section:remote_endpoint raw_socket_service::remote_endpoint]
 
+[indexterm2 remote_endpoint..raw_socket_service]
+Get the remote endpoint.
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/posix/descriptor_base.hpp]
+ endpoint_type remote_endpoint(
+ const implementation_type & impl,
+ boost::system::error_code & ec) const;
 
-[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
 
-[section:_descriptor_base posix::descriptor_base::~descriptor_base]
+[section:send raw_socket_service::send]
 
-[indexterm2 ~descriptor_base..posix::descriptor_base]
-Protected destructor to prevent deletion through this type.
+[indexterm2 send..raw_socket_service]
+Send the given data to the peer.
 
 
- ~descriptor_base();
+ template<
+ typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
+ std::size_t send(
+ implementation_type & impl,
+ const ConstBufferSequence & buffers,
+ socket_base::message_flags flags,
+ boost::system::error_code & ec);
 
 
 
@@ -72108,409 +75529,227 @@
 
 
 
-[endsect]
+[section:send_to raw_socket_service::send_to]
 
+[indexterm2 send_to..raw_socket_service]
+Send raw data to the specified endpoint.
 
-[section:posix__stream_descriptor posix::stream_descriptor]
 
-[indexterm1 posix::stream_descriptor]
-Typedef for the typical usage of a stream-oriented descriptor.
+ template<
+ typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
+ std::size_t send_to(
+ implementation_type & impl,
+ const ConstBufferSequence & buffers,
+ const endpoint_type & destination,
+ socket_base::message_flags flags,
+ boost::system::error_code & ec);
 
 
- typedef basic_stream_descriptor stream_descriptor;
 
+[endsect]
 
-[heading Types]
-[table
- [[Name][Description]]
 
- [
 
- [[link boost_asio.reference.posix__basic_stream_descriptor.bytes_readable [*bytes_readable]]]
- [IO control command to get the amount of data that can be read without blocking. ]
-
- ]
+[section:set_option raw_socket_service::set_option]
 
- [
+[indexterm2 set_option..raw_socket_service]
+Set a socket option.
 
- [[link boost_asio.reference.posix__basic_stream_descriptor.implementation_type [*implementation_type]]]
- [The underlying implementation type of I/O object. ]
-
- ]
 
- [
+ template<
+ typename ``[link boost_asio.reference.SettableSocketOption SettableSocketOption]``>
+ boost::system::error_code set_option(
+ implementation_type & impl,
+ const SettableSocketOption & option,
+ boost::system::error_code & ec);
 
- [[link boost_asio.reference.posix__basic_stream_descriptor.lowest_layer_type [*lowest_layer_type]]]
- [A basic_descriptor is always the lowest layer. ]
-
- ]
 
- [
 
- [[link boost_asio.reference.posix__basic_stream_descriptor.native_handle_type [*native_handle_type]]]
- [The native representation of a descriptor. ]
-
- ]
+[endsect]
 
- [
 
- [[link boost_asio.reference.posix__basic_stream_descriptor.native_type [*native_type]]]
- [(Deprecated: Use native_handle_type.) The native representation of a descriptor. ]
-
- ]
 
- [
+[section:shutdown raw_socket_service::shutdown]
 
- [[link boost_asio.reference.posix__basic_stream_descriptor.non_blocking_io [*non_blocking_io]]]
- [(Deprecated: Use non_blocking().) IO control command to set the blocking mode of the descriptor. ]
-
- ]
+[indexterm2 shutdown..raw_socket_service]
+Disable sends or receives on the socket.
 
- [
 
- [[link boost_asio.reference.posix__basic_stream_descriptor.service_type [*service_type]]]
- [The type of the service that will be used to provide I/O operations. ]
-
- ]
+ boost::system::error_code shutdown(
+ implementation_type & impl,
+ socket_base::shutdown_type what,
+ boost::system::error_code & ec);
 
-]
 
-[heading Member Functions]
-[table
- [[Name][Description]]
 
- [
- [[link boost_asio.reference.posix__basic_stream_descriptor.assign [*assign]]]
- [Assign an existing native descriptor to the descriptor. ]
- ]
-
- [
- [[link boost_asio.reference.posix__basic_stream_descriptor.async_read_some [*async_read_some]]]
- [Start an asynchronous read. ]
- ]
-
- [
- [[link boost_asio.reference.posix__basic_stream_descriptor.async_write_some [*async_write_some]]]
- [Start an asynchronous write. ]
- ]
-
- [
- [[link boost_asio.reference.posix__basic_stream_descriptor.basic_stream_descriptor [*basic_stream_descriptor]]]
- [Construct a basic_stream_descriptor without opening it.
+[endsect]
 
- Construct a basic_stream_descriptor on an existing native descriptor.
 
- Move-construct a basic_stream_descriptor from another. ]
- ]
-
- [
- [[link boost_asio.reference.posix__basic_stream_descriptor.cancel [*cancel]]]
- [Cancel all asynchronous operations associated with the descriptor. ]
- ]
-
- [
- [[link boost_asio.reference.posix__basic_stream_descriptor.close [*close]]]
- [Close the descriptor. ]
- ]
-
- [
- [[link boost_asio.reference.posix__basic_stream_descriptor.get_io_service [*get_io_service]]]
- [Get the io_service associated with the object. ]
- ]
-
- [
- [[link boost_asio.reference.posix__basic_stream_descriptor.io_control [*io_control]]]
- [Perform an IO control command on the descriptor. ]
- ]
-
- [
- [[link boost_asio.reference.posix__basic_stream_descriptor.is_open [*is_open]]]
- [Determine whether the descriptor is open. ]
- ]
-
- [
- [[link boost_asio.reference.posix__basic_stream_descriptor.lowest_layer [*lowest_layer]]]
- [Get a reference to the lowest layer.
 
- Get a const reference to the lowest layer. ]
- ]
-
- [
- [[link boost_asio.reference.posix__basic_stream_descriptor.native [*native]]]
- [(Deprecated: Use native_handle().) Get the native descriptor representation. ]
- ]
-
- [
- [[link boost_asio.reference.posix__basic_stream_descriptor.native_handle [*native_handle]]]
- [Get the native descriptor representation. ]
- ]
-
- [
- [[link boost_asio.reference.posix__basic_stream_descriptor.native_non_blocking [*native_non_blocking]]]
- [Gets the non-blocking mode of the native descriptor implementation.
+[endsect]
 
- Sets the non-blocking mode of the native descriptor implementation. ]
- ]
-
- [
- [[link boost_asio.reference.posix__basic_stream_descriptor.non_blocking [*non_blocking]]]
- [Gets the non-blocking mode of the descriptor.
+[section:read read]
 
- Sets the non-blocking mode of the descriptor. ]
- ]
-
- [
- [[link boost_asio.reference.posix__basic_stream_descriptor.operator_eq_ [*operator=]]]
- [Move-assign a basic_stream_descriptor from another. ]
- ]
-
- [
- [[link boost_asio.reference.posix__basic_stream_descriptor.read_some [*read_some]]]
- [Read some data from the descriptor. ]
- ]
-
- [
- [[link boost_asio.reference.posix__basic_stream_descriptor.release [*release]]]
- [Release ownership of the native descriptor implementation. ]
- ]
-
- [
- [[link boost_asio.reference.posix__basic_stream_descriptor.write_some [*write_some]]]
- [Write some data to the descriptor. ]
- ]
-
-]
+[indexterm1 read]
+Attempt to read a certain amount of data from a stream before returning.
 
-[heading Protected Member Functions]
-[table
- [[Name][Description]]
+
+ template<
+ typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
+ std::size_t ``[link boost_asio.reference.read.overload1 read]``(
+ SyncReadStream & s,
+ const MutableBufferSequence & buffers);
+ `` [''''&raquo;''' [link boost_asio.reference.read.overload1 more...]]``
 
- [
- [[link boost_asio.reference.posix__basic_stream_descriptor.get_implementation [*get_implementation]]]
- [Get the underlying implementation of the I/O object. ]
- ]
-
- [
- [[link boost_asio.reference.posix__basic_stream_descriptor.get_service [*get_service]]]
- [Get the service associated with the I/O object. ]
- ]
-
-]
+ template<
+ typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
+ std::size_t ``[link boost_asio.reference.read.overload2 read]``(
+ SyncReadStream & s,
+ const MutableBufferSequence & buffers,
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.read.overload2 more...]]``
 
-[heading Protected Data Members]
-[table
- [[Name][Description]]
+ template<
+ typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
+ typename CompletionCondition>
+ std::size_t ``[link boost_asio.reference.read.overload3 read]``(
+ SyncReadStream & s,
+ const MutableBufferSequence & buffers,
+ CompletionCondition completion_condition);
+ `` [''''&raquo;''' [link boost_asio.reference.read.overload3 more...]]``
 
- [
- [[link boost_asio.reference.posix__basic_stream_descriptor.implementation [*implementation]]]
- [(Deprecated: Use get_implementation().) The underlying implementation of the I/O object. ]
- ]
+ template<
+ typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
+ typename CompletionCondition>
+ std::size_t ``[link boost_asio.reference.read.overload4 read]``(
+ SyncReadStream & s,
+ const MutableBufferSequence & buffers,
+ CompletionCondition completion_condition,
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.read.overload4 more...]]``
 
- [
- [[link boost_asio.reference.posix__basic_stream_descriptor.service [*service]]]
- [(Deprecated: Use get_service().) The service associated with the I/O object. ]
- ]
+ template<
+ typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
+ typename Allocator>
+ std::size_t ``[link boost_asio.reference.read.overload5 read]``(
+ SyncReadStream & s,
+ basic_streambuf< Allocator > & b);
+ `` [''''&raquo;''' [link boost_asio.reference.read.overload5 more...]]``
 
-]
+ template<
+ typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
+ typename Allocator>
+ std::size_t ``[link boost_asio.reference.read.overload6 read]``(
+ SyncReadStream & s,
+ basic_streambuf< Allocator > & b,
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.read.overload6 more...]]``
 
-The [link boost_asio.reference.posix__basic_stream_descriptor `posix::basic_stream_descriptor`] class template provides asynchronous and blocking stream-oriented descriptor functionality.
+ template<
+ typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
+ typename Allocator,
+ typename CompletionCondition>
+ std::size_t ``[link boost_asio.reference.read.overload7 read]``(
+ SyncReadStream & s,
+ basic_streambuf< Allocator > & b,
+ CompletionCondition completion_condition);
+ `` [''''&raquo;''' [link boost_asio.reference.read.overload7 more...]]``
+
+ template<
+ typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
+ typename Allocator,
+ typename CompletionCondition>
+ std::size_t ``[link boost_asio.reference.read.overload8 read]``(
+ SyncReadStream & s,
+ basic_streambuf< Allocator > & b,
+ CompletionCondition completion_condition,
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.read.overload8 more...]]``
 
+[heading Requirements]
 
-[heading Thread Safety]
-
-[*Distinct] [*objects:] Safe.
+[*Header: ][^boost/asio/read.hpp]
 
-[*Shared] [*objects:] Unsafe.
+[*Convenience header: ][^boost/asio.hpp]
 
 
+[section:overload1 read (1 of 8 overloads)]
 
 
+Attempt to read a certain amount of data from a stream before returning.
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/posix/stream_descriptor.hpp]
+ template<
+ typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
+ std::size_t read(
+ SyncReadStream & s,
+ const MutableBufferSequence & buffers);
 
-[*Convenience header: ][^boost/asio.hpp]
 
+This function is used to read a certain number of bytes of data from a stream. The call will block until one of the following conditions is true:
 
-[endsect]
 
+* The supplied buffers are full. That is, the bytes transferred is equal to the sum of the buffer sizes.
 
-[section:posix__stream_descriptor_service posix::stream_descriptor_service]
 
+* An error occurred.
 
-Default service implementation for a stream descriptor.
+This operation is implemented in terms of zero or more calls to the stream's read\_some function.
 
 
- class stream_descriptor_service :
- public io_service::service
+[heading Parameters]
+
 
+[variablelist
+
+[[s][The stream from which the data is to be read. The type must support the SyncReadStream concept.]]
 
-[heading Types]
-[table
- [[Name][Description]]
+[[buffers][One or more buffers into which the data will be read. The sum of the buffer sizes indicates the maximum number of bytes to read from the stream.]]
 
- [
+]
 
- [[link boost_asio.reference.posix__stream_descriptor_service.implementation_type [*implementation_type]]]
- [The type of a stream descriptor implementation. ]
-
- ]
 
- [
+[heading Return Value]
+
+The number of bytes transferred.
 
- [[link boost_asio.reference.posix__stream_descriptor_service.native_handle_type [*native_handle_type]]]
- [The native descriptor type. ]
-
- ]
 
- [
+[heading Exceptions]
+
 
- [[link boost_asio.reference.posix__stream_descriptor_service.native_type [*native_type]]]
- [(Deprecated: Use native_handle_type.) The native descriptor type. ]
+[variablelist
   
- ]
+[[boost::system::system_error][Thrown on failure.]]
 
 ]
 
-[heading Member Functions]
-[table
- [[Name][Description]]
-
- [
- [[link boost_asio.reference.posix__stream_descriptor_service.assign [*assign]]]
- [Assign an existing native descriptor to a stream descriptor. ]
- ]
-
- [
- [[link boost_asio.reference.posix__stream_descriptor_service.async_read_some [*async_read_some]]]
- [Start an asynchronous read. ]
- ]
-
- [
- [[link boost_asio.reference.posix__stream_descriptor_service.async_write_some [*async_write_some]]]
- [Start an asynchronous write. ]
- ]
-
- [
- [[link boost_asio.reference.posix__stream_descriptor_service.cancel [*cancel]]]
- [Cancel all asynchronous operations associated with the descriptor. ]
- ]
-
- [
- [[link boost_asio.reference.posix__stream_descriptor_service.close [*close]]]
- [Close a stream descriptor implementation. ]
- ]
-
- [
- [[link boost_asio.reference.posix__stream_descriptor_service.construct [*construct]]]
- [Construct a new stream descriptor implementation. ]
- ]
-
- [
- [[link boost_asio.reference.posix__stream_descriptor_service.destroy [*destroy]]]
- [Destroy a stream descriptor implementation. ]
- ]
-
- [
- [[link boost_asio.reference.posix__stream_descriptor_service.get_io_service [*get_io_service]]]
- [Get the io_service object that owns the service. ]
- ]
-
- [
- [[link boost_asio.reference.posix__stream_descriptor_service.io_control [*io_control]]]
- [Perform an IO control command on the descriptor. ]
- ]
-
- [
- [[link boost_asio.reference.posix__stream_descriptor_service.is_open [*is_open]]]
- [Determine whether the descriptor is open. ]
- ]
-
- [
- [[link boost_asio.reference.posix__stream_descriptor_service.move_assign [*move_assign]]]
- [Move-assign from another stream descriptor implementation. ]
- ]
-
- [
- [[link boost_asio.reference.posix__stream_descriptor_service.move_construct [*move_construct]]]
- [Move-construct a new stream descriptor implementation. ]
- ]
-
- [
- [[link boost_asio.reference.posix__stream_descriptor_service.native [*native]]]
- [(Deprecated: Use native_handle().) Get the native descriptor implementation. ]
- ]
-
- [
- [[link boost_asio.reference.posix__stream_descriptor_service.native_handle [*native_handle]]]
- [Get the native descriptor implementation. ]
- ]
-
- [
- [[link boost_asio.reference.posix__stream_descriptor_service.native_non_blocking [*native_non_blocking]]]
- [Gets the non-blocking mode of the native descriptor implementation.
-
- Sets the non-blocking mode of the native descriptor implementation. ]
- ]
-
- [
- [[link boost_asio.reference.posix__stream_descriptor_service.non_blocking [*non_blocking]]]
- [Gets the non-blocking mode of the descriptor.
 
- Sets the non-blocking mode of the descriptor. ]
- ]
-
- [
- [[link boost_asio.reference.posix__stream_descriptor_service.read_some [*read_some]]]
- [Read some data from the stream. ]
- ]
-
- [
- [[link boost_asio.reference.posix__stream_descriptor_service.release [*release]]]
- [Release ownership of the native descriptor implementation. ]
- ]
-
- [
- [[link boost_asio.reference.posix__stream_descriptor_service.stream_descriptor_service [*stream_descriptor_service]]]
- [Construct a new stream descriptor service for the specified io_service. ]
- ]
-
- [
- [[link boost_asio.reference.posix__stream_descriptor_service.write_some [*write_some]]]
- [Write the given data to the stream. ]
- ]
+[heading Example]
   
-]
-
-[heading Data Members]
-[table
- [[Name][Description]]
+To read into a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
 
- [
- [[link boost_asio.reference.posix__stream_descriptor_service.id [*id]]]
- [The unique service identifier. ]
- ]
+ boost::asio::read(s, boost::asio::buffer(data, size));
 
-]
 
-[heading Requirements]
+See the [link boost_asio.reference.buffer `buffer`] documentation for information on reading into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
 
-[*Header: ][^boost/asio/posix/stream_descriptor_service.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
+[heading Remarks]
+
+This overload is equivalent to calling:
 
+ boost::asio::read(
+ s, buffers,
+ boost::asio::transfer_all());
 
-[section:assign posix::stream_descriptor_service::assign]
 
-[indexterm2 assign..posix::stream_descriptor_service]
-Assign an existing native descriptor to a stream descriptor.
 
 
- boost::system::error_code assign(
- implementation_type & impl,
- const native_handle_type & native_descriptor,
- boost::system::error_code & ec);
 
 
 
@@ -72518,71 +75757,72 @@
 
 
 
-[section:async_read_some posix::stream_descriptor_service::async_read_some]
+[section:overload2 read (2 of 8 overloads)]
 
-[indexterm2 async_read_some..posix::stream_descriptor_service]
-Start an asynchronous read.
+
+Attempt to read a certain amount of data from a stream before returning.
 
 
   template<
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
- typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void async_read_some(
- implementation_type & impl,
+ typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
+ std::size_t read(
+ SyncReadStream & s,
       const MutableBufferSequence & buffers,
- ReadHandler handler);
+ boost::system::error_code & ec);
 
 
+This function is used to read a certain number of bytes of data from a stream. The call will block until one of the following conditions is true:
 
-[endsect]
 
+* The supplied buffers are full. That is, the bytes transferred is equal to the sum of the buffer sizes.
 
 
-[section:async_write_some posix::stream_descriptor_service::async_write_some]
+* An error occurred.
 
-[indexterm2 async_write_some..posix::stream_descriptor_service]
-Start an asynchronous write.
+This operation is implemented in terms of zero or more calls to the stream's read\_some function.
 
 
- template<
- typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
- typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
- void async_write_some(
- implementation_type & impl,
- const ConstBufferSequence & buffers,
- WriteHandler handler);
+[heading Parameters]
+
 
+[variablelist
+
+[[s][The stream from which the data is to be read. The type must support the SyncReadStream concept.]]
 
+[[buffers][One or more buffers into which the data will be read. The sum of the buffer sizes indicates the maximum number of bytes to read from the stream.]]
 
-[endsect]
+[[ec][Set to indicate what error occurred, if any.]]
 
+]
 
 
-[section:cancel posix::stream_descriptor_service::cancel]
+[heading Return Value]
+
+The number of bytes transferred.
 
-[indexterm2 cancel..posix::stream_descriptor_service]
-Cancel all asynchronous operations associated with the descriptor.
 
+[heading Example]
+
+To read into a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
 
- boost::system::error_code cancel(
- implementation_type & impl,
- boost::system::error_code & ec);
+ boost::asio::read(s, boost::asio::buffer(data, size), ec);
 
 
+See the [link boost_asio.reference.buffer `buffer`] documentation for information on reading into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
 
-[endsect]
 
+[heading Remarks]
+
+This overload is equivalent to calling:
 
+ boost::asio::read(
+ s, buffers,
+ boost::asio::transfer_all(), ec);
 
-[section:close posix::stream_descriptor_service::close]
 
-[indexterm2 close..posix::stream_descriptor_service]
-Close a stream descriptor implementation.
 
 
- boost::system::error_code close(
- implementation_type & impl,
- boost::system::error_code & ec);
 
 
 
@@ -72590,326 +75830,417 @@
 
 
 
-[section:construct posix::stream_descriptor_service::construct]
+[section:overload3 read (3 of 8 overloads)]
 
-[indexterm2 construct..posix::stream_descriptor_service]
-Construct a new stream descriptor implementation.
 
+Attempt to read a certain amount of data from a stream before returning.
 
- void construct(
- implementation_type & impl);
 
+ template<
+ typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
+ typename CompletionCondition>
+ std::size_t read(
+ SyncReadStream & s,
+ const MutableBufferSequence & buffers,
+ CompletionCondition completion_condition);
 
 
-[endsect]
+This function is used to read a certain number of bytes of data from a stream. The call will block until one of the following conditions is true:
 
 
+* The supplied buffers are full. That is, the bytes transferred is equal to the sum of the buffer sizes.
 
-[section:destroy posix::stream_descriptor_service::destroy]
 
-[indexterm2 destroy..posix::stream_descriptor_service]
-Destroy a stream descriptor implementation.
+* The completion\_condition function object returns 0.
 
+This operation is implemented in terms of zero or more calls to the stream's read\_some function.
 
- void destroy(
- implementation_type & impl);
 
+[heading Parameters]
+
 
+[variablelist
+
+[[s][The stream from which the data is to be read. The type must support the SyncReadStream concept.]]
 
-[endsect]
+[[buffers][One or more buffers into which the data will be read. The sum of the buffer sizes indicates the maximum number of bytes to read from the stream.]]
 
+[[completion_condition][The function object to be called to determine whether the read operation is complete. The signature of the function object must be:
+``
+ std::size_t completion_condition(
+ // Result of latest read_some operation.
+ const boost::system::error_code& error,
 
+ // Number of bytes transferred so far.
+ std::size_t bytes_transferred
+ );
+``
+A return value of 0 indicates that the read operation is complete. A non-zero return value indicates the maximum number of bytes to be read on the next call to the stream's read\_some function.]]
 
-[section:get_io_service posix::stream_descriptor_service::get_io_service]
+]
 
 
-['Inherited from io_service.]
+[heading Return Value]
+
+The number of bytes transferred.
 
-[indexterm2 get_io_service..posix::stream_descriptor_service]
-Get the [link boost_asio.reference.io_service `io_service`] object that owns the service.
 
+[heading Exceptions]
+
 
- boost::asio::io_service & get_io_service();
+[variablelist
+
+[[boost::system::system_error][Thrown on failure.]]
 
+]
 
 
-[endsect]
+[heading Example]
+
+To read into a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
 
+ boost::asio::read(s, boost::asio::buffer(data, size),
+ boost::asio::transfer_at_least(32));
 
 
-[section:id posix::stream_descriptor_service::id]
+See the [link boost_asio.reference.buffer `buffer`] documentation for information on reading into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
 
-[indexterm2 id..posix::stream_descriptor_service]
-The unique service identifier.
 
 
- static boost::asio::io_service::id id;
 
+[endsect]
 
 
-[endsect]
 
+[section:overload4 read (4 of 8 overloads)]
 
 
-[section:implementation_type posix::stream_descriptor_service::implementation_type]
+Attempt to read a certain amount of data from a stream before returning.
 
-[indexterm2 implementation_type..posix::stream_descriptor_service]
-The type of a stream descriptor implementation.
 
+ template<
+ typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
+ typename CompletionCondition>
+ std::size_t read(
+ SyncReadStream & s,
+ const MutableBufferSequence & buffers,
+ CompletionCondition completion_condition,
+ boost::system::error_code & ec);
 
- typedef implementation_defined implementation_type;
 
+This function is used to read a certain number of bytes of data from a stream. The call will block until one of the following conditions is true:
 
 
-[heading Requirements]
+* The supplied buffers are full. That is, the bytes transferred is equal to the sum of the buffer sizes.
 
-[*Header: ][^boost/asio/posix/stream_descriptor_service.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
+* The completion\_condition function object returns 0.
 
+This operation is implemented in terms of zero or more calls to the stream's read\_some function.
 
-[endsect]
 
+[heading Parameters]
+
 
+[variablelist
+
+[[s][The stream from which the data is to be read. The type must support the SyncReadStream concept.]]
 
-[section:io_control posix::stream_descriptor_service::io_control]
+[[buffers][One or more buffers into which the data will be read. The sum of the buffer sizes indicates the maximum number of bytes to read from the stream.]]
 
-[indexterm2 io_control..posix::stream_descriptor_service]
-Perform an IO control command on the descriptor.
+[[completion_condition][The function object to be called to determine whether the read operation is complete. The signature of the function object must be:
+``
+ std::size_t completion_condition(
+ // Result of latest read_some operation.
+ const boost::system::error_code& error,
 
+ // Number of bytes transferred so far.
+ std::size_t bytes_transferred
+ );
+``
+A return value of 0 indicates that the read operation is complete. A non-zero return value indicates the maximum number of bytes to be read on the next call to the stream's read\_some function.]]
 
- template<
- typename ``[link boost_asio.reference.IoControlCommand IoControlCommand]``>
- boost::system::error_code io_control(
- implementation_type & impl,
- IoControlCommand & command,
- boost::system::error_code & ec);
+[[ec][Set to indicate what error occurred, if any.]]
 
+]
 
 
-[endsect]
+[heading Return Value]
+
+The number of bytes read. If an error occurs, returns the total number of bytes successfully transferred prior to the error.
 
 
 
-[section:is_open posix::stream_descriptor_service::is_open]
 
-[indexterm2 is_open..posix::stream_descriptor_service]
-Determine whether the descriptor is open.
+[endsect]
 
 
- bool is_open(
- const implementation_type & impl) const;
 
+[section:overload5 read (5 of 8 overloads)]
 
 
-[endsect]
+Attempt to read a certain amount of data from a stream before returning.
 
 
+ template<
+ typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
+ typename Allocator>
+ std::size_t read(
+ SyncReadStream & s,
+ basic_streambuf< Allocator > & b);
 
-[section:move_assign posix::stream_descriptor_service::move_assign]
 
-[indexterm2 move_assign..posix::stream_descriptor_service]
-Move-assign from another stream descriptor implementation.
+This function is used to read a certain number of bytes of data from a stream. The call will block until one of the following conditions is true:
 
 
- void move_assign(
- implementation_type & impl,
- stream_descriptor_service & other_service,
- implementation_type & other_impl);
+* The supplied buffer is full (that is, it has reached maximum size).
 
 
+* An error occurred.
 
-[endsect]
+This operation is implemented in terms of zero or more calls to the stream's read\_some function.
 
 
+[heading Parameters]
+
 
-[section:move_construct posix::stream_descriptor_service::move_construct]
+[variablelist
+
+[[s][The stream from which the data is to be read. The type must support the SyncReadStream concept.]]
 
-[indexterm2 move_construct..posix::stream_descriptor_service]
-Move-construct a new stream descriptor implementation.
+[[b][The [link boost_asio.reference.basic_streambuf `basic_streambuf`] object into which the data will be read.]]
 
+]
 
- void move_construct(
- implementation_type & impl,
- implementation_type & other_impl);
 
+[heading Return Value]
+
+The number of bytes transferred.
 
 
-[endsect]
+[heading Exceptions]
+
 
+[variablelist
+
+[[boost::system::system_error][Thrown on failure.]]
 
+]
 
-[section:native posix::stream_descriptor_service::native]
 
-[indexterm2 native..posix::stream_descriptor_service]
-(Deprecated: Use `native_handle()`.) Get the native descriptor implementation.
+[heading Remarks]
+
+This overload is equivalent to calling:
 
+ boost::asio::read(
+ s, b,
+ boost::asio::transfer_all());
 
- native_type native(
- implementation_type & impl);
 
 
 
-[endsect]
 
 
 
-[section:native_handle posix::stream_descriptor_service::native_handle]
+[endsect]
 
-[indexterm2 native_handle..posix::stream_descriptor_service]
-Get the native descriptor implementation.
 
 
- native_handle_type native_handle(
- implementation_type & impl);
+[section:overload6 read (6 of 8 overloads)]
 
 
+Attempt to read a certain amount of data from a stream before returning.
 
-[endsect]
 
+ template<
+ typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
+ typename Allocator>
+ std::size_t read(
+ SyncReadStream & s,
+ basic_streambuf< Allocator > & b,
+ boost::system::error_code & ec);
 
 
-[section:native_handle_type posix::stream_descriptor_service::native_handle_type]
+This function is used to read a certain number of bytes of data from a stream. The call will block until one of the following conditions is true:
 
-[indexterm2 native_handle_type..posix::stream_descriptor_service]
-The native descriptor type.
 
+* The supplied buffer is full (that is, it has reached maximum size).
 
- typedef implementation_defined native_handle_type;
 
+* An error occurred.
 
+This operation is implemented in terms of zero or more calls to the stream's read\_some function.
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/posix/stream_descriptor_service.hpp]
+[heading Parameters]
+
 
-[*Convenience header: ][^boost/asio.hpp]
+[variablelist
+
+[[s][The stream from which the data is to be read. The type must support the SyncReadStream concept.]]
+
+[[b][The [link boost_asio.reference.basic_streambuf `basic_streambuf`] object into which the data will be read.]]
 
+[[ec][Set to indicate what error occurred, if any.]]
 
-[endsect]
+]
 
 
-[section:native_non_blocking posix::stream_descriptor_service::native_non_blocking]
+[heading Return Value]
+
+The number of bytes transferred.
 
-[indexterm2 native_non_blocking..posix::stream_descriptor_service]
-Gets the non-blocking mode of the native descriptor implementation.
 
+[heading Remarks]
+
+This overload is equivalent to calling:
 
- bool ``[link boost_asio.reference.posix__stream_descriptor_service.native_non_blocking.overload1 native_non_blocking]``(
- const implementation_type & impl) const;
- `` [''''&raquo;''' [link boost_asio.reference.posix__stream_descriptor_service.native_non_blocking.overload1 more...]]``
+ boost::asio::read(
+ s, b,
+ boost::asio::transfer_all(), ec);
 
 
-Sets the non-blocking mode of the native descriptor implementation.
 
 
- boost::system::error_code ``[link boost_asio.reference.posix__stream_descriptor_service.native_non_blocking.overload2 native_non_blocking]``(
- implementation_type & impl,
- bool mode,
- boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.posix__stream_descriptor_service.native_non_blocking.overload2 more...]]``
 
 
-[section:overload1 posix::stream_descriptor_service::native_non_blocking (1 of 2 overloads)]
 
+[endsect]
 
-Gets the non-blocking mode of the native descriptor implementation.
 
 
- bool native_non_blocking(
- const implementation_type & impl) const;
+[section:overload7 read (7 of 8 overloads)]
+
 
+Attempt to read a certain amount of data from a stream before returning.
 
 
-[endsect]
+ template<
+ typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
+ typename Allocator,
+ typename CompletionCondition>
+ std::size_t read(
+ SyncReadStream & s,
+ basic_streambuf< Allocator > & b,
+ CompletionCondition completion_condition);
 
 
+This function is used to read a certain number of bytes of data from a stream. The call will block until one of the following conditions is true:
 
-[section:overload2 posix::stream_descriptor_service::native_non_blocking (2 of 2 overloads)]
 
+* The supplied buffer is full (that is, it has reached maximum size).
 
-Sets the non-blocking mode of the native descriptor implementation.
 
+* The completion\_condition function object returns 0.
 
- boost::system::error_code native_non_blocking(
- implementation_type & impl,
- bool mode,
- boost::system::error_code & ec);
+This operation is implemented in terms of zero or more calls to the stream's read\_some function.
 
 
+[heading Parameters]
+
 
-[endsect]
+[variablelist
+
+[[s][The stream from which the data is to be read. The type must support the SyncReadStream concept.]]
 
+[[b][The [link boost_asio.reference.basic_streambuf `basic_streambuf`] object into which the data will be read.]]
 
-[endsect]
+[[completion_condition][The function object to be called to determine whether the read operation is complete. The signature of the function object must be:
+``
+ std::size_t completion_condition(
+ // Result of latest read_some operation.
+ const boost::system::error_code& error,
 
+ // Number of bytes transferred so far.
+ std::size_t bytes_transferred
+ );
+``
+A return value of 0 indicates that the read operation is complete. A non-zero return value indicates the maximum number of bytes to be read on the next call to the stream's read\_some function.]]
 
-[section:native_type posix::stream_descriptor_service::native_type]
+]
 
-[indexterm2 native_type..posix::stream_descriptor_service]
-(Deprecated: Use native\_handle\_type.) The native descriptor type.
 
+[heading Return Value]
+
+The number of bytes transferred.
 
- typedef implementation_defined native_type;
 
+[heading Exceptions]
+
 
+[variablelist
+
+[[boost::system::system_error][Thrown on failure. ]]
 
-[heading Requirements]
+]
 
-[*Header: ][^boost/asio/posix/stream_descriptor_service.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
-[section:non_blocking posix::stream_descriptor_service::non_blocking]
 
-[indexterm2 non_blocking..posix::stream_descriptor_service]
-Gets the non-blocking mode of the descriptor.
+[section:overload8 read (8 of 8 overloads)]
 
 
- bool ``[link boost_asio.reference.posix__stream_descriptor_service.non_blocking.overload1 non_blocking]``(
- const implementation_type & impl) const;
- `` [''''&raquo;''' [link boost_asio.reference.posix__stream_descriptor_service.non_blocking.overload1 more...]]``
+Attempt to read a certain amount of data from a stream before returning.
 
 
-Sets the non-blocking mode of the descriptor.
+ template<
+ typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
+ typename Allocator,
+ typename CompletionCondition>
+ std::size_t read(
+ SyncReadStream & s,
+ basic_streambuf< Allocator > & b,
+ CompletionCondition completion_condition,
+ boost::system::error_code & ec);
 
 
- boost::system::error_code ``[link boost_asio.reference.posix__stream_descriptor_service.non_blocking.overload2 non_blocking]``(
- implementation_type & impl,
- bool mode,
- boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.posix__stream_descriptor_service.non_blocking.overload2 more...]]``
+This function is used to read a certain number of bytes of data from a stream. The call will block until one of the following conditions is true:
 
 
-[section:overload1 posix::stream_descriptor_service::non_blocking (1 of 2 overloads)]
+* The supplied buffer is full (that is, it has reached maximum size).
 
 
-Gets the non-blocking mode of the descriptor.
+* The completion\_condition function object returns 0.
 
+This operation is implemented in terms of zero or more calls to the stream's read\_some function.
 
- bool non_blocking(
- const implementation_type & impl) const;
 
+[heading Parameters]
+
 
+[variablelist
+
+[[s][The stream from which the data is to be read. The type must support the SyncReadStream concept.]]
 
-[endsect]
+[[b][The [link boost_asio.reference.basic_streambuf `basic_streambuf`] object into which the data will be read.]]
 
+[[completion_condition][The function object to be called to determine whether the read operation is complete. The signature of the function object must be:
+``
+ std::size_t completion_condition(
+ // Result of latest read_some operation.
+ const boost::system::error_code& error,
 
+ // Number of bytes transferred so far.
+ std::size_t bytes_transferred
+ );
+``
+A return value of 0 indicates that the read operation is complete. A non-zero return value indicates the maximum number of bytes to be read on the next call to the stream's read\_some function.]]
 
-[section:overload2 posix::stream_descriptor_service::non_blocking (2 of 2 overloads)]
+[[ec][Set to indicate what error occurred, if any.]]
 
+]
 
-Sets the non-blocking mode of the descriptor.
 
+[heading Return Value]
+
+The number of bytes read. If an error occurs, returns the total number of bytes successfully transferred prior to the error.
 
- boost::system::error_code non_blocking(
- implementation_type & impl,
- bool mode,
- boost::system::error_code & ec);
 
 
 
@@ -72918,379 +76249,256 @@
 
 [endsect]
 
+[section:read_at read_at]
 
-[section:read_some posix::stream_descriptor_service::read_some]
-
-[indexterm2 read_some..posix::stream_descriptor_service]
-Read some data from the stream.
+[indexterm1 read_at]
+Attempt to read a certain amount of data at the specified offset before returning.
 
+
+ template<
+ typename ``[link boost_asio.reference.SyncRandomAccessReadDevice SyncRandomAccessReadDevice]``,
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
+ std::size_t ``[link boost_asio.reference.read_at.overload1 read_at]``(
+ SyncRandomAccessReadDevice & d,
+ boost::uint64_t offset,
+ const MutableBufferSequence & buffers);
+ `` [''''&raquo;''' [link boost_asio.reference.read_at.overload1 more...]]``
 
   template<
+ typename ``[link boost_asio.reference.SyncRandomAccessReadDevice SyncRandomAccessReadDevice]``,
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
- std::size_t read_some(
- implementation_type & impl,
+ std::size_t ``[link boost_asio.reference.read_at.overload2 read_at]``(
+ SyncRandomAccessReadDevice & d,
+ boost::uint64_t offset,
       const MutableBufferSequence & buffers,
       boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.read_at.overload2 more...]]``
 
+ template<
+ typename ``[link boost_asio.reference.SyncRandomAccessReadDevice SyncRandomAccessReadDevice]``,
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
+ typename CompletionCondition>
+ std::size_t ``[link boost_asio.reference.read_at.overload3 read_at]``(
+ SyncRandomAccessReadDevice & d,
+ boost::uint64_t offset,
+ const MutableBufferSequence & buffers,
+ CompletionCondition completion_condition);
+ `` [''''&raquo;''' [link boost_asio.reference.read_at.overload3 more...]]``
 
+ template<
+ typename ``[link boost_asio.reference.SyncRandomAccessReadDevice SyncRandomAccessReadDevice]``,
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
+ typename CompletionCondition>
+ std::size_t ``[link boost_asio.reference.read_at.overload4 read_at]``(
+ SyncRandomAccessReadDevice & d,
+ boost::uint64_t offset,
+ const MutableBufferSequence & buffers,
+ CompletionCondition completion_condition,
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.read_at.overload4 more...]]``
 
-[endsect]
-
+ template<
+ typename ``[link boost_asio.reference.SyncRandomAccessReadDevice SyncRandomAccessReadDevice]``,
+ typename Allocator>
+ std::size_t ``[link boost_asio.reference.read_at.overload5 read_at]``(
+ SyncRandomAccessReadDevice & d,
+ boost::uint64_t offset,
+ basic_streambuf< Allocator > & b);
+ `` [''''&raquo;''' [link boost_asio.reference.read_at.overload5 more...]]``
 
+ template<
+ typename ``[link boost_asio.reference.SyncRandomAccessReadDevice SyncRandomAccessReadDevice]``,
+ typename Allocator>
+ std::size_t ``[link boost_asio.reference.read_at.overload6 read_at]``(
+ SyncRandomAccessReadDevice & d,
+ boost::uint64_t offset,
+ basic_streambuf< Allocator > & b,
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.read_at.overload6 more...]]``
 
-[section:release posix::stream_descriptor_service::release]
+ template<
+ typename ``[link boost_asio.reference.SyncRandomAccessReadDevice SyncRandomAccessReadDevice]``,
+ typename Allocator,
+ typename CompletionCondition>
+ std::size_t ``[link boost_asio.reference.read_at.overload7 read_at]``(
+ SyncRandomAccessReadDevice & d,
+ boost::uint64_t offset,
+ basic_streambuf< Allocator > & b,
+ CompletionCondition completion_condition);
+ `` [''''&raquo;''' [link boost_asio.reference.read_at.overload7 more...]]``
 
-[indexterm2 release..posix::stream_descriptor_service]
-Release ownership of the native descriptor implementation.
+ template<
+ typename ``[link boost_asio.reference.SyncRandomAccessReadDevice SyncRandomAccessReadDevice]``,
+ typename Allocator,
+ typename CompletionCondition>
+ std::size_t ``[link boost_asio.reference.read_at.overload8 read_at]``(
+ SyncRandomAccessReadDevice & d,
+ boost::uint64_t offset,
+ basic_streambuf< Allocator > & b,
+ CompletionCondition completion_condition,
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.read_at.overload8 more...]]``
 
+[heading Requirements]
 
- native_handle_type release(
- implementation_type & impl);
+[*Header: ][^boost/asio/read_at.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
 
-[endsect]
+[section:overload1 read_at (1 of 8 overloads)]
 
 
+Attempt to read a certain amount of data at the specified offset before returning.
 
-[section:stream_descriptor_service posix::stream_descriptor_service::stream_descriptor_service]
 
-[indexterm2 stream_descriptor_service..posix::stream_descriptor_service]
-Construct a new stream descriptor service for the specified [link boost_asio.reference.io_service `io_service`].
+ template<
+ typename ``[link boost_asio.reference.SyncRandomAccessReadDevice SyncRandomAccessReadDevice]``,
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
+ std::size_t read_at(
+ SyncRandomAccessReadDevice & d,
+ boost::uint64_t offset,
+ const MutableBufferSequence & buffers);
 
 
- stream_descriptor_service(
- boost::asio::io_service & io_service);
+This function is used to read a certain number of bytes of data from a random access device at the specified offset. The call will block until one of the following conditions is true:
 
 
+* The supplied buffers are full. That is, the bytes transferred is equal to the sum of the buffer sizes.
 
-[endsect]
 
+* An error occurred.
 
+This operation is implemented in terms of zero or more calls to the device's read\_some\_at function.
 
-[section:write_some posix::stream_descriptor_service::write_some]
 
-[indexterm2 write_some..posix::stream_descriptor_service]
-Write the given data to the stream.
+[heading Parameters]
+
 
+[variablelist
+
+[[d][The device from which the data is to be read. The type must support the SyncRandomAccessReadDevice concept.]]
 
- template<
- typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
- std::size_t write_some(
- implementation_type & impl,
- const ConstBufferSequence & buffers,
- boost::system::error_code & ec);
+[[offset][The offset at which the data will be read.]]
 
+[[buffers][One or more buffers into which the data will be read. The sum of the buffer sizes indicates the maximum number of bytes to read from the device.]]
 
+]
 
-[endsect]
 
+[heading Return Value]
+
+The number of bytes transferred.
 
 
-[endsect]
+[heading Exceptions]
+
 
-[section:raw_socket_service raw_socket_service]
+[variablelist
+
+[[boost::system::system_error][Thrown on failure.]]
 
+]
 
-Default service implementation for a raw socket.
 
+[heading Example]
+
+To read into a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
 
- template<
- typename ``[link boost_asio.reference.Protocol Protocol]``>
- class raw_socket_service :
- public io_service::service
+ boost::asio::read_at(d, 42, boost::asio::buffer(data, size));
 
 
-[heading Types]
-[table
- [[Name][Description]]
+See the [link boost_asio.reference.buffer `buffer`] documentation for information on reading into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
 
- [
 
- [[link boost_asio.reference.raw_socket_service.endpoint_type [*endpoint_type]]]
- [The endpoint type. ]
-
- ]
+[heading Remarks]
+
+This overload is equivalent to calling:
 
- [
+ boost::asio::read_at(
+ d, 42, buffers,
+ boost::asio::transfer_all());
 
- [[link boost_asio.reference.raw_socket_service.implementation_type [*implementation_type]]]
- [The type of a raw socket. ]
-
- ]
 
- [
 
- [[link boost_asio.reference.raw_socket_service.native_handle_type [*native_handle_type]]]
- [The native socket type. ]
-
- ]
 
- [
 
- [[link boost_asio.reference.raw_socket_service.native_type [*native_type]]]
- [(Deprecated: Use native_handle_type.) The native socket type. ]
-
- ]
 
- [
 
- [[link boost_asio.reference.raw_socket_service.protocol_type [*protocol_type]]]
- [The protocol type. ]
-
- ]
+[endsect]
 
-]
 
-[heading Member Functions]
-[table
- [[Name][Description]]
 
- [
- [[link boost_asio.reference.raw_socket_service.assign [*assign]]]
- [Assign an existing native socket to a raw socket. ]
- ]
-
- [
- [[link boost_asio.reference.raw_socket_service.async_connect [*async_connect]]]
- [Start an asynchronous connect. ]
- ]
-
- [
- [[link boost_asio.reference.raw_socket_service.async_receive [*async_receive]]]
- [Start an asynchronous receive. ]
- ]
-
- [
- [[link boost_asio.reference.raw_socket_service.async_receive_from [*async_receive_from]]]
- [Start an asynchronous receive that will get the endpoint of the sender. ]
- ]
-
- [
- [[link boost_asio.reference.raw_socket_service.async_send [*async_send]]]
- [Start an asynchronous send. ]
- ]
-
- [
- [[link boost_asio.reference.raw_socket_service.async_send_to [*async_send_to]]]
- [Start an asynchronous send. ]
- ]
-
- [
- [[link boost_asio.reference.raw_socket_service.at_mark [*at_mark]]]
- [Determine whether the socket is at the out-of-band data mark. ]
- ]
-
- [
- [[link boost_asio.reference.raw_socket_service.available [*available]]]
- [Determine the number of bytes available for reading. ]
- ]
-
- [
- [[link boost_asio.reference.raw_socket_service.bind [*bind]]]
- []
- ]
-
- [
- [[link boost_asio.reference.raw_socket_service.cancel [*cancel]]]
- [Cancel all asynchronous operations associated with the socket. ]
- ]
-
- [
- [[link boost_asio.reference.raw_socket_service.close [*close]]]
- [Close a raw socket implementation. ]
- ]
-
- [
- [[link boost_asio.reference.raw_socket_service.connect [*connect]]]
- [Connect the raw socket to the specified endpoint. ]
- ]
-
- [
- [[link boost_asio.reference.raw_socket_service.construct [*construct]]]
- [Construct a new raw socket implementation. ]
- ]
-
- [
- [[link boost_asio.reference.raw_socket_service.destroy [*destroy]]]
- [Destroy a raw socket implementation. ]
- ]
-
- [
- [[link boost_asio.reference.raw_socket_service.get_io_service [*get_io_service]]]
- [Get the io_service object that owns the service. ]
- ]
-
- [
- [[link boost_asio.reference.raw_socket_service.get_option [*get_option]]]
- [Get a socket option. ]
- ]
-
- [
- [[link boost_asio.reference.raw_socket_service.io_control [*io_control]]]
- [Perform an IO control command on the socket. ]
- ]
-
- [
- [[link boost_asio.reference.raw_socket_service.is_open [*is_open]]]
- [Determine whether the socket is open. ]
- ]
-
- [
- [[link boost_asio.reference.raw_socket_service.local_endpoint [*local_endpoint]]]
- [Get the local endpoint. ]
- ]
-
- [
- [[link boost_asio.reference.raw_socket_service.move_assign [*move_assign]]]
- [Move-assign from another raw socket implementation. ]
- ]
-
- [
- [[link boost_asio.reference.raw_socket_service.move_construct [*move_construct]]]
- [Move-construct a new raw socket implementation. ]
- ]
-
- [
- [[link boost_asio.reference.raw_socket_service.native [*native]]]
- [(Deprecated: Use native_handle().) Get the native socket implementation. ]
- ]
-
- [
- [[link boost_asio.reference.raw_socket_service.native_handle [*native_handle]]]
- [Get the native socket implementation. ]
- ]
-
- [
- [[link boost_asio.reference.raw_socket_service.native_non_blocking [*native_non_blocking]]]
- [Gets the non-blocking mode of the native socket implementation.
+[section:overload2 read_at (2 of 8 overloads)]
 
- Sets the non-blocking mode of the native socket implementation. ]
- ]
-
- [
- [[link boost_asio.reference.raw_socket_service.non_blocking [*non_blocking]]]
- [Gets the non-blocking mode of the socket.
 
- Sets the non-blocking mode of the socket. ]
- ]
-
- [
- [[link boost_asio.reference.raw_socket_service.open [*open]]]
- []
- ]
-
- [
- [[link boost_asio.reference.raw_socket_service.raw_socket_service [*raw_socket_service]]]
- [Construct a new raw socket service for the specified io_service. ]
- ]
-
- [
- [[link boost_asio.reference.raw_socket_service.receive [*receive]]]
- [Receive some data from the peer. ]
- ]
-
- [
- [[link boost_asio.reference.raw_socket_service.receive_from [*receive_from]]]
- [Receive raw data with the endpoint of the sender. ]
- ]
-
- [
- [[link boost_asio.reference.raw_socket_service.remote_endpoint [*remote_endpoint]]]
- [Get the remote endpoint. ]
- ]
-
- [
- [[link boost_asio.reference.raw_socket_service.send [*send]]]
- [Send the given data to the peer. ]
- ]
-
- [
- [[link boost_asio.reference.raw_socket_service.send_to [*send_to]]]
- [Send raw data to the specified endpoint. ]
- ]
-
- [
- [[link boost_asio.reference.raw_socket_service.set_option [*set_option]]]
- [Set a socket option. ]
- ]
-
- [
- [[link boost_asio.reference.raw_socket_service.shutdown [*shutdown]]]
- [Disable sends or receives on the socket. ]
- ]
-
-]
+Attempt to read a certain amount of data at the specified offset before returning.
 
-[heading Data Members]
-[table
- [[Name][Description]]
 
- [
- [[link boost_asio.reference.raw_socket_service.id [*id]]]
- [The unique service identifier. ]
- ]
+ template<
+ typename ``[link boost_asio.reference.SyncRandomAccessReadDevice SyncRandomAccessReadDevice]``,
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
+ std::size_t read_at(
+ SyncRandomAccessReadDevice & d,
+ boost::uint64_t offset,
+ const MutableBufferSequence & buffers,
+ boost::system::error_code & ec);
 
-]
 
-[heading Requirements]
+This function is used to read a certain number of bytes of data from a random access device at the specified offset. The call will block until one of the following conditions is true:
 
-[*Header: ][^boost/asio/raw_socket_service.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
+* The supplied buffers are full. That is, the bytes transferred is equal to the sum of the buffer sizes.
 
 
-[section:assign raw_socket_service::assign]
+* An error occurred.
 
-[indexterm2 assign..raw_socket_service]
-Assign an existing native socket to a raw socket.
+This operation is implemented in terms of zero or more calls to the device's read\_some\_at function.
 
 
- boost::system::error_code assign(
- implementation_type & impl,
- const protocol_type & protocol,
- const native_handle_type & native_socket,
- boost::system::error_code & ec);
+[heading Parameters]
+
 
+[variablelist
+
+[[d][The device from which the data is to be read. The type must support the SyncRandomAccessReadDevice concept.]]
 
+[[offset][The offset at which the data will be read.]]
 
-[endsect]
+[[buffers][One or more buffers into which the data will be read. The sum of the buffer sizes indicates the maximum number of bytes to read from the device.]]
 
+[[ec][Set to indicate what error occurred, if any.]]
 
+]
 
-[section:async_connect raw_socket_service::async_connect]
 
-[indexterm2 async_connect..raw_socket_service]
-Start an asynchronous connect.
+[heading Return Value]
+
+The number of bytes transferred.
 
 
- template<
- typename ``[link boost_asio.reference.ConnectHandler ConnectHandler]``>
- void async_connect(
- implementation_type & impl,
- const endpoint_type & peer_endpoint,
- ConnectHandler handler);
+[heading Example]
+
+To read into a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
 
+ boost::asio::read_at(d, 42,
+ boost::asio::buffer(data, size), ec);
 
 
-[endsect]
+See the [link boost_asio.reference.buffer `buffer`] documentation for information on reading into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
 
 
+[heading Remarks]
+
+This overload is equivalent to calling:
+
+ boost::asio::read_at(
+ d, 42, buffers,
+ boost::asio::transfer_all(), ec);
 
-[section:async_receive raw_socket_service::async_receive]
 
-[indexterm2 async_receive..raw_socket_service]
-Start an asynchronous receive.
 
 
- template<
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
- typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void async_receive(
- implementation_type & impl,
- const MutableBufferSequence & buffers,
- socket_base::message_flags flags,
- ReadHandler handler);
 
 
 
@@ -73298,80 +76506,85 @@
 
 
 
-[section:async_receive_from raw_socket_service::async_receive_from]
+[section:overload3 read_at (3 of 8 overloads)]
 
-[indexterm2 async_receive_from..raw_socket_service]
-Start an asynchronous receive that will get the endpoint of the sender.
+
+Attempt to read a certain amount of data at the specified offset before returning.
 
 
   template<
+ typename ``[link boost_asio.reference.SyncRandomAccessReadDevice SyncRandomAccessReadDevice]``,
       typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
- typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void async_receive_from(
- implementation_type & impl,
+ typename CompletionCondition>
+ std::size_t read_at(
+ SyncRandomAccessReadDevice & d,
+ boost::uint64_t offset,
       const MutableBufferSequence & buffers,
- endpoint_type & sender_endpoint,
- socket_base::message_flags flags,
- ReadHandler handler);
+ CompletionCondition completion_condition);
 
 
+This function is used to read a certain number of bytes of data from a random access device at the specified offset. The call will block until one of the following conditions is true:
 
-[endsect]
 
+* The supplied buffers are full. That is, the bytes transferred is equal to the sum of the buffer sizes.
 
 
-[section:async_send raw_socket_service::async_send]
+* The completion\_condition function object returns 0.
 
-[indexterm2 async_send..raw_socket_service]
-Start an asynchronous send.
+This operation is implemented in terms of zero or more calls to the device's read\_some\_at function.
 
 
- template<
- typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
- typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
- void async_send(
- implementation_type & impl,
- const ConstBufferSequence & buffers,
- socket_base::message_flags flags,
- WriteHandler handler);
+[heading Parameters]
+
 
+[variablelist
+
+[[d][The device from which the data is to be read. The type must support the SyncRandomAccessReadDevice concept.]]
 
+[[offset][The offset at which the data will be read.]]
 
-[endsect]
+[[buffers][One or more buffers into which the data will be read. The sum of the buffer sizes indicates the maximum number of bytes to read from the device.]]
 
+[[completion_condition][The function object to be called to determine whether the read operation is complete. The signature of the function object must be:
+``
+ std::size_t completion_condition(
+ // Result of latest read_some_at operation.
+ const boost::system::error_code& error,
 
+ // Number of bytes transferred so far.
+ std::size_t bytes_transferred
+ );
+``
+A return value of 0 indicates that the read operation is complete. A non-zero return value indicates the maximum number of bytes to be read on the next call to the device's read\_some\_at function.]]
 
-[section:async_send_to raw_socket_service::async_send_to]
+]
 
-[indexterm2 async_send_to..raw_socket_service]
-Start an asynchronous send.
 
+[heading Return Value]
+
+The number of bytes transferred.
 
- template<
- typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
- typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
- void async_send_to(
- implementation_type & impl,
- const ConstBufferSequence & buffers,
- const endpoint_type & destination,
- socket_base::message_flags flags,
- WriteHandler handler);
 
+[heading Exceptions]
+
 
+[variablelist
+
+[[boost::system::system_error][Thrown on failure.]]
 
-[endsect]
+]
 
 
+[heading Example]
+
+To read into a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
 
-[section:at_mark raw_socket_service::at_mark]
+ boost::asio::read_at(d, 42, boost::asio::buffer(data, size),
+ boost::asio::transfer_at_least(32));
 
-[indexterm2 at_mark..raw_socket_service]
-Determine whether the socket is at the out-of-band data mark.
 
+See the [link boost_asio.reference.buffer `buffer`] documentation for information on reading into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
 
- bool at_mark(
- const implementation_type & impl,
- boost::system::error_code & ec) const;
 
 
 
@@ -73379,166 +76592,200 @@
 
 
 
-[section:available raw_socket_service::available]
-
-[indexterm2 available..raw_socket_service]
-Determine the number of bytes available for reading.
+[section:overload4 read_at (4 of 8 overloads)]
 
 
- std::size_t available(
- const implementation_type & impl,
- boost::system::error_code & ec) const;
+Attempt to read a certain amount of data at the specified offset before returning.
 
 
+ template<
+ typename ``[link boost_asio.reference.SyncRandomAccessReadDevice SyncRandomAccessReadDevice]``,
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
+ typename CompletionCondition>
+ std::size_t read_at(
+ SyncRandomAccessReadDevice & d,
+ boost::uint64_t offset,
+ const MutableBufferSequence & buffers,
+ CompletionCondition completion_condition,
+ boost::system::error_code & ec);
 
-[endsect]
 
+This function is used to read a certain number of bytes of data from a random access device at the specified offset. The call will block until one of the following conditions is true:
 
 
-[section:bind raw_socket_service::bind]
+* The supplied buffers are full. That is, the bytes transferred is equal to the sum of the buffer sizes.
 
-[indexterm2 bind..raw_socket_service]
 
- boost::system::error_code bind(
- implementation_type & impl,
- const endpoint_type & endpoint,
- boost::system::error_code & ec);
+* The completion\_condition function object returns 0.
 
+This operation is implemented in terms of zero or more calls to the device's read\_some\_at function.
 
 
-[endsect]
+[heading Parameters]
+
 
+[variablelist
+
+[[d][The device from which the data is to be read. The type must support the SyncRandomAccessReadDevice concept.]]
 
+[[offset][The offset at which the data will be read.]]
 
-[section:cancel raw_socket_service::cancel]
+[[buffers][One or more buffers into which the data will be read. The sum of the buffer sizes indicates the maximum number of bytes to read from the device.]]
 
-[indexterm2 cancel..raw_socket_service]
-Cancel all asynchronous operations associated with the socket.
+[[completion_condition][The function object to be called to determine whether the read operation is complete. The signature of the function object must be:
+``
+ std::size_t completion_condition(
+ // Result of latest read_some_at operation.
+ const boost::system::error_code& error,
 
+ // Number of bytes transferred so far.
+ std::size_t bytes_transferred
+ );
+``
+A return value of 0 indicates that the read operation is complete. A non-zero return value indicates the maximum number of bytes to be read on the next call to the device's read\_some\_at function.]]
 
- boost::system::error_code cancel(
- implementation_type & impl,
- boost::system::error_code & ec);
+[[ec][Set to indicate what error occurred, if any.]]
 
+]
 
 
-[endsect]
+[heading Return Value]
+
+The number of bytes read. If an error occurs, returns the total number of bytes successfully transferred prior to the error.
 
 
 
-[section:close raw_socket_service::close]
 
-[indexterm2 close..raw_socket_service]
-Close a raw socket implementation.
+[endsect]
 
 
- boost::system::error_code close(
- implementation_type & impl,
- boost::system::error_code & ec);
 
+[section:overload5 read_at (5 of 8 overloads)]
 
 
-[endsect]
+Attempt to read a certain amount of data at the specified offset before returning.
 
 
+ template<
+ typename ``[link boost_asio.reference.SyncRandomAccessReadDevice SyncRandomAccessReadDevice]``,
+ typename Allocator>
+ std::size_t read_at(
+ SyncRandomAccessReadDevice & d,
+ boost::uint64_t offset,
+ basic_streambuf< Allocator > & b);
 
-[section:connect raw_socket_service::connect]
 
-[indexterm2 connect..raw_socket_service]
-Connect the raw socket to the specified endpoint.
+This function is used to read a certain number of bytes of data from a random access device at the specified offset. The call will block until one of the following conditions is true:
 
 
- boost::system::error_code connect(
- implementation_type & impl,
- const endpoint_type & peer_endpoint,
- boost::system::error_code & ec);
+* An error occurred.
 
+This operation is implemented in terms of zero or more calls to the device's read\_some\_at function.
 
 
-[endsect]
+[heading Parameters]
+
 
+[variablelist
+
+[[d][The device from which the data is to be read. The type must support the SyncRandomAccessReadDevice concept.]]
 
+[[offset][The offset at which the data will be read.]]
 
-[section:construct raw_socket_service::construct]
+[[b][The [link boost_asio.reference.basic_streambuf `basic_streambuf`] object into which the data will be read.]]
 
-[indexterm2 construct..raw_socket_service]
-Construct a new raw socket implementation.
+]
 
 
- void construct(
- implementation_type & impl);
+[heading Return Value]
+
+The number of bytes transferred.
 
 
+[heading Exceptions]
+
 
-[endsect]
+[variablelist
+
+[[boost::system::system_error][Thrown on failure.]]
 
+]
 
 
-[section:destroy raw_socket_service::destroy]
+[heading Remarks]
+
+This overload is equivalent to calling:
 
-[indexterm2 destroy..raw_socket_service]
-Destroy a raw socket implementation.
+ boost::asio::read_at(
+ d, 42, b,
+ boost::asio::transfer_all());
 
 
- void destroy(
- implementation_type & impl);
 
 
 
-[endsect]
 
 
+[endsect]
 
-[section:endpoint_type raw_socket_service::endpoint_type]
 
-[indexterm2 endpoint_type..raw_socket_service]
-The endpoint type.
 
+[section:overload6 read_at (6 of 8 overloads)]
 
- typedef Protocol::endpoint endpoint_type;
 
+Attempt to read a certain amount of data at the specified offset before returning.
 
 
-[heading Requirements]
+ template<
+ typename ``[link boost_asio.reference.SyncRandomAccessReadDevice SyncRandomAccessReadDevice]``,
+ typename Allocator>
+ std::size_t read_at(
+ SyncRandomAccessReadDevice & d,
+ boost::uint64_t offset,
+ basic_streambuf< Allocator > & b,
+ boost::system::error_code & ec);
 
-[*Header: ][^boost/asio/raw_socket_service.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
+This function is used to read a certain number of bytes of data from a random access device at the specified offset. The call will block until one of the following conditions is true:
 
 
-[endsect]
+* An error occurred.
 
+This operation is implemented in terms of zero or more calls to the device's read\_some\_at function.
 
 
-[section:get_io_service raw_socket_service::get_io_service]
+[heading Parameters]
+
 
+[variablelist
+
+[[d][The device from which the data is to be read. The type must support the SyncRandomAccessReadDevice concept.]]
 
-['Inherited from io_service.]
+[[offset][The offset at which the data will be read.]]
 
-[indexterm2 get_io_service..raw_socket_service]
-Get the [link boost_asio.reference.io_service `io_service`] object that owns the service.
+[[b][The [link boost_asio.reference.basic_streambuf `basic_streambuf`] object into which the data will be read.]]
 
+[[ec][Set to indicate what error occurred, if any.]]
 
- boost::asio::io_service & get_io_service();
+]
 
 
+[heading Return Value]
+
+The number of bytes transferred.
 
-[endsect]
 
+[heading Remarks]
+
+This overload is equivalent to calling:
 
+ boost::asio::read_at(
+ d, 42, b,
+ boost::asio::transfer_all(), ec);
 
-[section:get_option raw_socket_service::get_option]
 
-[indexterm2 get_option..raw_socket_service]
-Get a socket option.
 
 
- template<
- typename ``[link boost_asio.reference.GettableSocketOption GettableSocketOption]``>
- boost::system::error_code get_option(
- const implementation_type & impl,
- GettableSocketOption & option,
- boost::system::error_code & ec) const;
 
 
 
@@ -73546,53 +76793,71 @@
 
 
 
-[section:id raw_socket_service::id]
-
-[indexterm2 id..raw_socket_service]
-The unique service identifier.
+[section:overload7 read_at (7 of 8 overloads)]
 
 
- static boost::asio::io_service::id id;
+Attempt to read a certain amount of data at the specified offset before returning.
 
 
+ template<
+ typename ``[link boost_asio.reference.SyncRandomAccessReadDevice SyncRandomAccessReadDevice]``,
+ typename Allocator,
+ typename CompletionCondition>
+ std::size_t read_at(
+ SyncRandomAccessReadDevice & d,
+ boost::uint64_t offset,
+ basic_streambuf< Allocator > & b,
+ CompletionCondition completion_condition);
 
-[endsect]
 
+This function is used to read a certain number of bytes of data from a random access device at the specified offset. The call will block until one of the following conditions is true:
 
 
-[section:implementation_type raw_socket_service::implementation_type]
+* The completion\_condition function object returns 0.
 
-[indexterm2 implementation_type..raw_socket_service]
-The type of a raw socket.
+This operation is implemented in terms of zero or more calls to the device's read\_some\_at function.
 
 
- typedef implementation_defined implementation_type;
+[heading Parameters]
+
 
+[variablelist
+
+[[d][The device from which the data is to be read. The type must support the SyncRandomAccessReadDevice concept.]]
 
+[[offset][The offset at which the data will be read.]]
 
-[heading Requirements]
+[[b][The [link boost_asio.reference.basic_streambuf `basic_streambuf`] object into which the data will be read.]]
 
-[*Header: ][^boost/asio/raw_socket_service.hpp]
+[[completion_condition][The function object to be called to determine whether the read operation is complete. The signature of the function object must be:
+``
+ std::size_t completion_condition(
+ // Result of latest read_some_at operation.
+ const boost::system::error_code& error,
 
-[*Convenience header: ][^boost/asio.hpp]
+ // Number of bytes transferred so far.
+ std::size_t bytes_transferred
+ );
+``
+A return value of 0 indicates that the read operation is complete. A non-zero return value indicates the maximum number of bytes to be read on the next call to the device's read\_some\_at function.]]
 
+]
 
-[endsect]
 
+[heading Return Value]
+
+The number of bytes transferred.
 
 
-[section:io_control raw_socket_service::io_control]
+[heading Exceptions]
+
 
-[indexterm2 io_control..raw_socket_service]
-Perform an IO control command on the socket.
+[variablelist
+
+[[boost::system::system_error][Thrown on failure. ]]
 
+]
 
- template<
- typename ``[link boost_asio.reference.IoControlCommand IoControlCommand]``>
- boost::system::error_code io_control(
- implementation_type & impl,
- IoControlCommand & command,
- boost::system::error_code & ec);
 
 
 
@@ -73600,149 +76865,253 @@
 
 
 
-[section:is_open raw_socket_service::is_open]
+[section:overload8 read_at (8 of 8 overloads)]
 
-[indexterm2 is_open..raw_socket_service]
-Determine whether the socket is open.
 
+Attempt to read a certain amount of data at the specified offset before returning.
 
- bool is_open(
- const implementation_type & impl) const;
+
+ template<
+ typename ``[link boost_asio.reference.SyncRandomAccessReadDevice SyncRandomAccessReadDevice]``,
+ typename Allocator,
+ typename CompletionCondition>
+ std::size_t read_at(
+ SyncRandomAccessReadDevice & d,
+ boost::uint64_t offset,
+ basic_streambuf< Allocator > & b,
+ CompletionCondition completion_condition,
+ boost::system::error_code & ec);
 
 
+This function is used to read a certain number of bytes of data from a random access device at the specified offset. The call will block until one of the following conditions is true:
 
-[endsect]
 
+* The completion\_condition function object returns 0.
 
+This operation is implemented in terms of zero or more calls to the device's read\_some\_at function.
 
-[section:local_endpoint raw_socket_service::local_endpoint]
 
-[indexterm2 local_endpoint..raw_socket_service]
-Get the local endpoint.
+[heading Parameters]
+
 
+[variablelist
+
+[[d][The device from which the data is to be read. The type must support the SyncRandomAccessReadDevice concept.]]
 
- endpoint_type local_endpoint(
- const implementation_type & impl,
- boost::system::error_code & ec) const;
+[[offset][The offset at which the data will be read.]]
 
+[[b][The [link boost_asio.reference.basic_streambuf `basic_streambuf`] object into which the data will be read.]]
 
+[[completion_condition][The function object to be called to determine whether the read operation is complete. The signature of the function object must be:
+``
+ std::size_t completion_condition(
+ // Result of latest read_some_at operation.
+ const boost::system::error_code& error,
 
-[endsect]
+ // Number of bytes transferred so far.
+ std::size_t bytes_transferred
+ );
+``
+A return value of 0 indicates that the read operation is complete. A non-zero return value indicates the maximum number of bytes to be read on the next call to the device's read\_some\_at function.]]
 
+[[ec][Set to indicate what error occurred, if any.]]
 
+]
 
-[section:move_assign raw_socket_service::move_assign]
 
-[indexterm2 move_assign..raw_socket_service]
-Move-assign from another raw socket implementation.
+[heading Return Value]
+
+The number of bytes read. If an error occurs, returns the total number of bytes successfully transferred prior to the error.
 
 
- void move_assign(
- implementation_type & impl,
- raw_socket_service & other_service,
- implementation_type & other_impl);
 
 
+[endsect]
+
 
 [endsect]
 
+[section:read_until read_until]
 
+[indexterm1 read_until]
+Read data into a streambuf until it contains a delimiter, matches a regular expression, or a function object indicates a match.
 
-[section:move_construct raw_socket_service::move_construct]
+
+ template<
+ typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
+ typename Allocator>
+ std::size_t ``[link boost_asio.reference.read_until.overload1 read_until]``(
+ SyncReadStream & s,
+ boost::asio::basic_streambuf< Allocator > & b,
+ char delim);
+ `` [''''&raquo;''' [link boost_asio.reference.read_until.overload1 more...]]``
 
-[indexterm2 move_construct..raw_socket_service]
-Move-construct a new raw socket implementation.
+ template<
+ typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
+ typename Allocator>
+ std::size_t ``[link boost_asio.reference.read_until.overload2 read_until]``(
+ SyncReadStream & s,
+ boost::asio::basic_streambuf< Allocator > & b,
+ char delim,
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.read_until.overload2 more...]]``
 
+ template<
+ typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
+ typename Allocator>
+ std::size_t ``[link boost_asio.reference.read_until.overload3 read_until]``(
+ SyncReadStream & s,
+ boost::asio::basic_streambuf< Allocator > & b,
+ const std::string & delim);
+ `` [''''&raquo;''' [link boost_asio.reference.read_until.overload3 more...]]``
 
- void move_construct(
- implementation_type & impl,
- implementation_type & other_impl);
+ template<
+ typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
+ typename Allocator>
+ std::size_t ``[link boost_asio.reference.read_until.overload4 read_until]``(
+ SyncReadStream & s,
+ boost::asio::basic_streambuf< Allocator > & b,
+ const std::string & delim,
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.read_until.overload4 more...]]``
 
+ template<
+ typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
+ typename Allocator>
+ std::size_t ``[link boost_asio.reference.read_until.overload5 read_until]``(
+ SyncReadStream & s,
+ boost::asio::basic_streambuf< Allocator > & b,
+ const boost::regex & expr);
+ `` [''''&raquo;''' [link boost_asio.reference.read_until.overload5 more...]]``
 
+ template<
+ typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
+ typename Allocator>
+ std::size_t ``[link boost_asio.reference.read_until.overload6 read_until]``(
+ SyncReadStream & s,
+ boost::asio::basic_streambuf< Allocator > & b,
+ const boost::regex & expr,
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.read_until.overload6 more...]]``
 
-[endsect]
+ template<
+ typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
+ typename Allocator,
+ typename MatchCondition>
+ std::size_t ``[link boost_asio.reference.read_until.overload7 read_until]``(
+ SyncReadStream & s,
+ boost::asio::basic_streambuf< Allocator > & b,
+ MatchCondition match_condition,
+ typename boost::enable_if< is_match_condition< MatchCondition > >::type * = 0);
+ `` [''''&raquo;''' [link boost_asio.reference.read_until.overload7 more...]]``
 
+ template<
+ typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
+ typename Allocator,
+ typename MatchCondition>
+ std::size_t ``[link boost_asio.reference.read_until.overload8 read_until]``(
+ SyncReadStream & s,
+ boost::asio::basic_streambuf< Allocator > & b,
+ MatchCondition match_condition,
+ boost::system::error_code & ec,
+ typename boost::enable_if< is_match_condition< MatchCondition > >::type * = 0);
+ `` [''''&raquo;''' [link boost_asio.reference.read_until.overload8 more...]]``
 
+[heading Requirements]
 
-[section:native raw_socket_service::native]
+[*Header: ][^boost/asio/read_until.hpp]
 
-[indexterm2 native..raw_socket_service]
-(Deprecated: Use `native_handle()`.) Get the native socket implementation.
+[*Convenience header: ][^boost/asio.hpp]
 
 
- native_type native(
- implementation_type & impl);
+[section:overload1 read_until (1 of 8 overloads)]
 
 
+Read data into a streambuf until it contains a specified delimiter.
 
-[endsect]
 
+ template<
+ typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
+ typename Allocator>
+ std::size_t read_until(
+ SyncReadStream & s,
+ boost::asio::basic_streambuf< Allocator > & b,
+ char delim);
 
 
-[section:native_handle raw_socket_service::native_handle]
+This function is used to read data into the specified streambuf until the streambuf's get area contains the specified delimiter. The call will block until one of the following conditions is true:
 
-[indexterm2 native_handle..raw_socket_service]
-Get the native socket implementation.
 
+* The get area of the streambuf contains the specified delimiter.
 
- native_handle_type native_handle(
- implementation_type & impl);
 
+* An error occurred.
 
+This operation is implemented in terms of zero or more calls to the stream's read\_some function. If the streambuf's get area already contains the delimiter, the function returns immediately.
 
-[endsect]
 
+[heading Parameters]
+
 
+[variablelist
+
+[[s][The stream from which the data is to be read. The type must support the SyncReadStream concept.]]
 
-[section:native_handle_type raw_socket_service::native_handle_type]
+[[b][A streambuf object into which the data will be read.]]
 
-[indexterm2 native_handle_type..raw_socket_service]
-The native socket type.
+[[delim][The delimiter character.]]
 
+]
 
- typedef implementation_defined native_handle_type;
 
+[heading Return Value]
+
+The number of bytes in the streambuf's get area up to and including the delimiter.
 
 
-[heading Requirements]
+[heading Exceptions]
+
 
-[*Header: ][^boost/asio/raw_socket_service.hpp]
+[variablelist
+
+[[boost::system::system_error][Thrown on failure.]]
 
-[*Convenience header: ][^boost/asio.hpp]
+]
 
 
-[endsect]
+[heading Remarks]
+
+After a successful read\_until operation, the streambuf may contain additional data beyond the delimiter. An application will typically leave that data in the streambuf for a subsequent read\_until operation to examine.
 
 
-[section:native_non_blocking raw_socket_service::native_non_blocking]
+[heading Example]
+
+To read data into a streambuf until a newline is encountered:
 
-[indexterm2 native_non_blocking..raw_socket_service]
-Gets the non-blocking mode of the native socket implementation.
+ boost::asio::streambuf b;
+ boost::asio::read_until(s, b, '\n');
+ std::istream is(&b);
+ std::string line;
+ std::getline(is, line);
 
 
- bool ``[link boost_asio.reference.raw_socket_service.native_non_blocking.overload1 native_non_blocking]``(
- const implementation_type & impl) const;
- `` [''''&raquo;''' [link boost_asio.reference.raw_socket_service.native_non_blocking.overload1 more...]]``
+After the `read_until` operation completes successfully, the buffer `b` contains the delimiter:
 
+ { 'a', 'b', ..., 'c', '\n', 'd', 'e', ... }
 
-Sets the non-blocking mode of the native socket implementation.
 
+The call to `std::getline` then extracts the data up to and including the delimiter, so that the string `line` contains:
 
- boost::system::error_code ``[link boost_asio.reference.raw_socket_service.native_non_blocking.overload2 native_non_blocking]``(
- implementation_type & impl,
- bool mode,
- boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.raw_socket_service.native_non_blocking.overload2 more...]]``
+ { 'a', 'b', ..., 'c', '\n' }
 
 
-[section:overload1 raw_socket_service::native_non_blocking (1 of 2 overloads)]
+The remaining data is left in the buffer `b` as follows:
 
+ { 'd', 'e', ... }
 
-Gets the non-blocking mode of the native socket implementation.
 
+This data may be the start of a new line, to be extracted by a subsequent `read_until` operation.
 
- bool native_non_blocking(
- const implementation_type & impl) const;
 
 
 
@@ -73750,399 +77119,339 @@
 
 
 
-[section:overload2 raw_socket_service::native_non_blocking (2 of 2 overloads)]
+[section:overload2 read_until (2 of 8 overloads)]
 
 
-Sets the non-blocking mode of the native socket implementation.
+Read data into a streambuf until it contains a specified delimiter.
 
 
- boost::system::error_code native_non_blocking(
- implementation_type & impl,
- bool mode,
+ template<
+ typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
+ typename Allocator>
+ std::size_t read_until(
+ SyncReadStream & s,
+ boost::asio::basic_streambuf< Allocator > & b,
+ char delim,
       boost::system::error_code & ec);
 
 
+This function is used to read data into the specified streambuf until the streambuf's get area contains the specified delimiter. The call will block until one of the following conditions is true:
 
-[endsect]
 
+* The get area of the streambuf contains the specified delimiter.
 
-[endsect]
 
+* An error occurred.
 
-[section:native_type raw_socket_service::native_type]
+This operation is implemented in terms of zero or more calls to the stream's read\_some function. If the streambuf's get area already contains the delimiter, the function returns immediately.
 
-[indexterm2 native_type..raw_socket_service]
-(Deprecated: Use native\_handle\_type.) The native socket type.
 
+[heading Parameters]
+
 
- typedef implementation_defined native_type;
+[variablelist
+
+[[s][The stream from which the data is to be read. The type must support the SyncReadStream concept.]]
 
+[[b][A streambuf object into which the data will be read.]]
 
+[[delim][The delimiter character.]]
 
-[heading Requirements]
+[[ec][Set to indicate what error occurred, if any.]]
 
-[*Header: ][^boost/asio/raw_socket_service.hpp]
+]
 
-[*Convenience header: ][^boost/asio.hpp]
 
+[heading Return Value]
+
+The number of bytes in the streambuf's get area up to and including the delimiter. Returns 0 if an error occurred.
 
-[endsect]
 
+[heading Remarks]
+
+After a successful read\_until operation, the streambuf may contain additional data beyond the delimiter. An application will typically leave that data in the streambuf for a subsequent read\_until operation to examine.
 
-[section:non_blocking raw_socket_service::non_blocking]
 
-[indexterm2 non_blocking..raw_socket_service]
-Gets the non-blocking mode of the socket.
 
 
- bool ``[link boost_asio.reference.raw_socket_service.non_blocking.overload1 non_blocking]``(
- const implementation_type & impl) const;
- `` [''''&raquo;''' [link boost_asio.reference.raw_socket_service.non_blocking.overload1 more...]]``
+[endsect]
 
 
-Sets the non-blocking mode of the socket.
 
+[section:overload3 read_until (3 of 8 overloads)]
 
- boost::system::error_code ``[link boost_asio.reference.raw_socket_service.non_blocking.overload2 non_blocking]``(
- implementation_type & impl,
- bool mode,
- boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.raw_socket_service.non_blocking.overload2 more...]]``
 
+Read data into a streambuf until it contains a specified delimiter.
 
-[section:overload1 raw_socket_service::non_blocking (1 of 2 overloads)]
 
+ template<
+ typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
+ typename Allocator>
+ std::size_t read_until(
+ SyncReadStream & s,
+ boost::asio::basic_streambuf< Allocator > & b,
+ const std::string & delim);
 
-Gets the non-blocking mode of the socket.
 
+This function is used to read data into the specified streambuf until the streambuf's get area contains the specified delimiter. The call will block until one of the following conditions is true:
 
- bool non_blocking(
- const implementation_type & impl) const;
 
+* The get area of the streambuf contains the specified delimiter.
 
 
-[endsect]
+* An error occurred.
 
+This operation is implemented in terms of zero or more calls to the stream's read\_some function. If the streambuf's get area already contains the delimiter, the function returns immediately.
 
 
-[section:overload2 raw_socket_service::non_blocking (2 of 2 overloads)]
+[heading Parameters]
+
 
+[variablelist
+
+[[s][The stream from which the data is to be read. The type must support the SyncReadStream concept.]]
 
-Sets the non-blocking mode of the socket.
+[[b][A streambuf object into which the data will be read.]]
 
+[[delim][The delimiter string.]]
 
- boost::system::error_code non_blocking(
- implementation_type & impl,
- bool mode,
- boost::system::error_code & ec);
+]
 
 
+[heading Return Value]
+
+The number of bytes in the streambuf's get area up to and including the delimiter.
 
-[endsect]
 
+[heading Exceptions]
+
 
-[endsect]
+[variablelist
+
+[[boost::system::system_error][Thrown on failure.]]
 
+]
 
-[section:open raw_socket_service::open]
 
-[indexterm2 open..raw_socket_service]
+[heading Remarks]
+
+After a successful read\_until operation, the streambuf may contain additional data beyond the delimiter. An application will typically leave that data in the streambuf for a subsequent read\_until operation to examine.
 
- boost::system::error_code open(
- implementation_type & impl,
- const protocol_type & protocol,
- boost::system::error_code & ec);
 
+[heading Example]
+
+To read data into a streambuf until a newline is encountered:
+
+ boost::asio::streambuf b;
+ boost::asio::read_until(s, b, "\r\n");
+ std::istream is(&b);
+ std::string line;
+ std::getline(is, line);
 
 
-[endsect]
+After the `read_until` operation completes successfully, the buffer `b` contains the delimiter:
 
+ { 'a', 'b', ..., 'c', '\r', '\n', 'd', 'e', ... }
 
 
-[section:protocol_type raw_socket_service::protocol_type]
+The call to `std::getline` then extracts the data up to and including the delimiter, so that the string `line` contains:
 
-[indexterm2 protocol_type..raw_socket_service]
-The protocol type.
+ { 'a', 'b', ..., 'c', '\r', '\n' }
 
 
- typedef Protocol protocol_type;
+The remaining data is left in the buffer `b` as follows:
 
+ { 'd', 'e', ... }
 
 
-[heading Requirements]
+This data may be the start of a new line, to be extracted by a subsequent `read_until` operation.
 
-[*Header: ][^boost/asio/raw_socket_service.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
 
-[section:raw_socket_service raw_socket_service::raw_socket_service]
+[section:overload4 read_until (4 of 8 overloads)]
 
-[indexterm2 raw_socket_service..raw_socket_service]
-Construct a new raw socket service for the specified [link boost_asio.reference.io_service `io_service`].
 
+Read data into a streambuf until it contains a specified delimiter.
 
- raw_socket_service(
- boost::asio::io_service & io_service);
 
+ template<
+ typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
+ typename Allocator>
+ std::size_t read_until(
+ SyncReadStream & s,
+ boost::asio::basic_streambuf< Allocator > & b,
+ const std::string & delim,
+ boost::system::error_code & ec);
 
 
-[endsect]
+This function is used to read data into the specified streambuf until the streambuf's get area contains the specified delimiter. The call will block until one of the following conditions is true:
 
 
+* The get area of the streambuf contains the specified delimiter.
 
-[section:receive raw_socket_service::receive]
 
-[indexterm2 receive..raw_socket_service]
-Receive some data from the peer.
+* An error occurred.
 
+This operation is implemented in terms of zero or more calls to the stream's read\_some function. If the streambuf's get area already contains the delimiter, the function returns immediately.
 
- template<
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
- std::size_t receive(
- implementation_type & impl,
- const MutableBufferSequence & buffers,
- socket_base::message_flags flags,
- boost::system::error_code & ec);
 
+[heading Parameters]
+
 
+[variablelist
+
+[[s][The stream from which the data is to be read. The type must support the SyncReadStream concept.]]
 
-[endsect]
+[[b][A streambuf object into which the data will be read.]]
 
+[[delim][The delimiter string.]]
 
+[[ec][Set to indicate what error occurred, if any.]]
 
-[section:receive_from raw_socket_service::receive_from]
+]
 
-[indexterm2 receive_from..raw_socket_service]
-Receive raw data with the endpoint of the sender.
 
+[heading Return Value]
+
+The number of bytes in the streambuf's get area up to and including the delimiter. Returns 0 if an error occurred.
 
- template<
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
- std::size_t receive_from(
- implementation_type & impl,
- const MutableBufferSequence & buffers,
- endpoint_type & sender_endpoint,
- socket_base::message_flags flags,
- boost::system::error_code & ec);
 
+[heading Remarks]
+
+After a successful read\_until operation, the streambuf may contain additional data beyond the delimiter. An application will typically leave that data in the streambuf for a subsequent read\_until operation to examine.
 
 
-[endsect]
 
 
+[endsect]
 
-[section:remote_endpoint raw_socket_service::remote_endpoint]
 
-[indexterm2 remote_endpoint..raw_socket_service]
-Get the remote endpoint.
 
+[section:overload5 read_until (5 of 8 overloads)]
 
- endpoint_type remote_endpoint(
- const implementation_type & impl,
- boost::system::error_code & ec) const;
 
+Read data into a streambuf until some part of the data it contains matches a regular expression.
 
 
-[endsect]
+ template<
+ typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
+ typename Allocator>
+ std::size_t read_until(
+ SyncReadStream & s,
+ boost::asio::basic_streambuf< Allocator > & b,
+ const boost::regex & expr);
 
 
+This function is used to read data into the specified streambuf until the streambuf's get area contains some data that matches a regular expression. The call will block until one of the following conditions is true:
 
-[section:send raw_socket_service::send]
 
-[indexterm2 send..raw_socket_service]
-Send the given data to the peer.
+* A substring of the streambuf's get area matches the regular expression.
 
 
- template<
- typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
- std::size_t send(
- implementation_type & impl,
- const ConstBufferSequence & buffers,
- socket_base::message_flags flags,
- boost::system::error_code & ec);
+* An error occurred.
 
+This operation is implemented in terms of zero or more calls to the stream's read\_some function. If the streambuf's get area already contains data that matches the regular expression, the function returns immediately.
 
 
-[endsect]
+[heading Parameters]
+
 
+[variablelist
+
+[[s][The stream from which the data is to be read. The type must support the SyncReadStream concept.]]
 
+[[b][A streambuf object into which the data will be read.]]
 
-[section:send_to raw_socket_service::send_to]
+[[expr][The regular expression.]]
 
-[indexterm2 send_to..raw_socket_service]
-Send raw data to the specified endpoint.
+]
 
 
- template<
- typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
- std::size_t send_to(
- implementation_type & impl,
- const ConstBufferSequence & buffers,
- const endpoint_type & destination,
- socket_base::message_flags flags,
- boost::system::error_code & ec);
+[heading Return Value]
+
+The number of bytes in the streambuf's get area up to and including the substring that matches the regular expression.
 
 
+[heading Exceptions]
+
 
-[endsect]
+[variablelist
+
+[[boost::system::system_error][Thrown on failure.]]
 
+]
 
 
-[section:set_option raw_socket_service::set_option]
+[heading Remarks]
+
+After a successful read\_until operation, the streambuf may contain additional data beyond that which matched the regular expression. An application will typically leave that data in the streambuf for a subsequent read\_until operation to examine.
 
-[indexterm2 set_option..raw_socket_service]
-Set a socket option.
 
+[heading Example]
+
+To read data into a streambuf until a CR-LF sequence is encountered:
 
- template<
- typename ``[link boost_asio.reference.SettableSocketOption SettableSocketOption]``>
- boost::system::error_code set_option(
- implementation_type & impl,
- const SettableSocketOption & option,
- boost::system::error_code & ec);
+ boost::asio::streambuf b;
+ boost::asio::read_until(s, b, boost::regex("\r\n"));
+ std::istream is(&b);
+ std::string line;
+ std::getline(is, line);
 
 
+After the `read_until` operation completes successfully, the buffer `b` contains the data which matched the regular expression:
 
-[endsect]
+ { 'a', 'b', ..., 'c', '\r', '\n', 'd', 'e', ... }
 
 
+The call to `std::getline` then extracts the data up to and including the match, so that the string `line` contains:
 
-[section:shutdown raw_socket_service::shutdown]
+ { 'a', 'b', ..., 'c', '\r', '\n' }
 
-[indexterm2 shutdown..raw_socket_service]
-Disable sends or receives on the socket.
 
+The remaining data is left in the buffer `b` as follows:
 
- boost::system::error_code shutdown(
- implementation_type & impl,
- socket_base::shutdown_type what,
- boost::system::error_code & ec);
+ { 'd', 'e', ... }
 
 
+This data may be the start of a new line, to be extracted by a subsequent `read_until` operation.
 
-[endsect]
 
 
 
 [endsect]
 
-[section:read read]
-
-[indexterm1 read]
-Attempt to read a certain amount of data from a stream before returning.
 
-
- template<
- typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
- std::size_t ``[link boost_asio.reference.read.overload1 read]``(
- SyncReadStream & s,
- const MutableBufferSequence & buffers);
- `` [''''&raquo;''' [link boost_asio.reference.read.overload1 more...]]``
 
- template<
- typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
- std::size_t ``[link boost_asio.reference.read.overload2 read]``(
- SyncReadStream & s,
- const MutableBufferSequence & buffers,
- boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.read.overload2 more...]]``
+[section:overload6 read_until (6 of 8 overloads)]
 
- template<
- typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
- typename CompletionCondition>
- std::size_t ``[link boost_asio.reference.read.overload3 read]``(
- SyncReadStream & s,
- const MutableBufferSequence & buffers,
- CompletionCondition completion_condition);
- `` [''''&raquo;''' [link boost_asio.reference.read.overload3 more...]]``
 
- template<
- typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
- typename CompletionCondition>
- std::size_t ``[link boost_asio.reference.read.overload4 read]``(
- SyncReadStream & s,
- const MutableBufferSequence & buffers,
- CompletionCondition completion_condition,
- boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.read.overload4 more...]]``
+Read data into a streambuf until some part of the data it contains matches a regular expression.
 
- template<
- typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
- typename Allocator>
- std::size_t ``[link boost_asio.reference.read.overload5 read]``(
- SyncReadStream & s,
- basic_streambuf< Allocator > & b);
- `` [''''&raquo;''' [link boost_asio.reference.read.overload5 more...]]``
 
   template<
       typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
       typename Allocator>
- std::size_t ``[link boost_asio.reference.read.overload6 read]``(
- SyncReadStream & s,
- basic_streambuf< Allocator > & b,
- boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.read.overload6 more...]]``
-
- template<
- typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
- typename Allocator,
- typename CompletionCondition>
- std::size_t ``[link boost_asio.reference.read.overload7 read]``(
- SyncReadStream & s,
- basic_streambuf< Allocator > & b,
- CompletionCondition completion_condition);
- `` [''''&raquo;''' [link boost_asio.reference.read.overload7 more...]]``
-
- template<
- typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
- typename Allocator,
- typename CompletionCondition>
- std::size_t ``[link boost_asio.reference.read.overload8 read]``(
+ std::size_t read_until(
       SyncReadStream & s,
- basic_streambuf< Allocator > & b,
- CompletionCondition completion_condition,
+ boost::asio::basic_streambuf< Allocator > & b,
+ const boost::regex & expr,
       boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.read.overload8 more...]]``
-
-[heading Requirements]
-
-[*Header: ][^boost/asio/read.hpp]
-
-[*Convenience header: ][^boost/asio.hpp]
-
-
-[section:overload1 read (1 of 8 overloads)]
-
-
-Attempt to read a certain amount of data from a stream before returning.
-
-
- template<
- typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
- std::size_t read(
- SyncReadStream & s,
- const MutableBufferSequence & buffers);
 
 
-This function is used to read a certain number of bytes of data from a stream. The call will block until one of the following conditions is true:
+This function is used to read data into the specified streambuf until the streambuf's get area contains some data that matches a regular expression. The call will block until one of the following conditions is true:
 
 
-* The supplied buffers are full. That is, the bytes transferred is equal to the sum of the buffer sizes.
+* A substring of the streambuf's get area matches the regular expression.
 
 
 * An error occurred.
 
-This operation is implemented in terms of zero or more calls to the stream's read\_some function.
+This operation is implemented in terms of zero or more calls to the stream's read\_some function. If the streambuf's get area already contains data that matches the regular expression, the function returns immediately.
 
 
 [heading Parameters]
@@ -74152,46 +77461,23 @@
   
 [[s][The stream from which the data is to be read. The type must support the SyncReadStream concept.]]
 
-[[buffers][One or more buffers into which the data will be read. The sum of the buffer sizes indicates the maximum number of bytes to read from the stream.]]
-
-]
-
-
-[heading Return Value]
-
-The number of bytes transferred.
-
+[[b][A streambuf object into which the data will be read.]]
 
-[heading Exceptions]
-
+[[expr][The regular expression.]]
 
-[variablelist
-
-[[boost::system::system_error][Thrown on failure.]]
+[[ec][Set to indicate what error occurred, if any.]]
 
 ]
 
 
-[heading Example]
-
-To read into a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
-
- boost::asio::read(s, boost::asio::buffer(data, size));
-
-
-See the [link boost_asio.reference.buffer `buffer`] documentation for information on reading into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
-
-
-[heading Remarks]
-
-This overload is equivalent to calling:
-
- boost::asio::read(
- s, buffers,
- boost::asio::transfer_all());
-
+[heading Return Value]
+
+The number of bytes in the streambuf's get area up to and including the substring that matches the regular expression. Returns 0 if an error occurred.
 
 
+[heading Remarks]
+
+After a successful read\_until operation, the streambuf may contain additional data beyond that which matched the regular expression. An application will typically leave that data in the streambuf for a subsequent read\_until operation to examine.
 
 
 
@@ -74200,30 +77486,32 @@
 
 
 
-[section:overload2 read (2 of 8 overloads)]
+[section:overload7 read_until (7 of 8 overloads)]
 
 
-Attempt to read a certain amount of data from a stream before returning.
+Read data into a streambuf until a function object indicates a match.
 
 
   template<
       typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
- std::size_t read(
+ typename Allocator,
+ typename MatchCondition>
+ std::size_t read_until(
       SyncReadStream & s,
- const MutableBufferSequence & buffers,
- boost::system::error_code & ec);
+ boost::asio::basic_streambuf< Allocator > & b,
+ MatchCondition match_condition,
+ typename boost::enable_if< is_match_condition< MatchCondition > >::type * = 0);
 
 
-This function is used to read a certain number of bytes of data from a stream. The call will block until one of the following conditions is true:
+This function is used to read data into the specified streambuf until a user-defined match condition function object, when applied to the data contained in the streambuf, indicates a successful match. The call will block until one of the following conditions is true:
 
 
-* The supplied buffers are full. That is, the bytes transferred is equal to the sum of the buffer sizes.
+* The match condition function object returns a std::pair where the second element evaluates to true.
 
 
 * An error occurred.
 
-This operation is implemented in terms of zero or more calls to the stream's read\_some function.
+This operation is implemented in terms of zero or more calls to the stream's read\_some function. If the match condition function object already indicates a match, the function returns immediately.
 
 
 [heading Parameters]
@@ -74233,37 +77521,95 @@
   
 [[s][The stream from which the data is to be read. The type must support the SyncReadStream concept.]]
 
-[[buffers][One or more buffers into which the data will be read. The sum of the buffer sizes indicates the maximum number of bytes to read from the stream.]]
+[[b][A streambuf object into which the data will be read.]]
 
-[[ec][Set to indicate what error occurred, if any.]]
+[[match_condition][The function object to be called to determine whether a match exists. The signature of the function object must be:
+``
+ pair<iterator, bool> match_condition(iterator begin, iterator end);
+``
+where `iterator` represents the type:
+``
+ buffers_iterator<basic_streambuf<Allocator>::const_buffers_type>
+``
+The iterator parameters `begin` and `end` define the range of bytes to be scanned to determine whether there is a match. The `first` member of the return value is an iterator marking one-past-the-end of the bytes that have been consumed by the match function. This iterator is used to calculate the `begin` parameter for any subsequent invocation of the match condition. The `second` member of the return value is true if a match has been found, false otherwise.]]
 
 ]
 
 
 [heading Return Value]
       
-The number of bytes transferred.
-
+The number of bytes in the streambuf's get area that have been fully consumed by the match function.
 
-[heading Example]
-
-To read into a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
 
- boost::asio::read(s, boost::asio::buffer(data, size), ec);
+[heading Exceptions]
+
 
+[variablelist
+
+[[boost::system::system_error][Thrown on failure.]]
 
-See the [link boost_asio.reference.buffer `buffer`] documentation for information on reading into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+]
 
 
 [heading Remarks]
       
-This overload is equivalent to calling:
+After a successful read\_until operation, the streambuf may contain additional data beyond that which matched the function object. An application will typically leave that data in the streambuf for a subsequent
 
- boost::asio::read(
- s, buffers,
- boost::asio::transfer_all(), ec);
+The default implementation of the `is_match_condition` type trait evaluates to true for function pointers and function objects with a `result_type` typedef. It must be specialised for other user-defined function objects.
+
+
+[heading Examples]
+
+To read data into a streambuf until whitespace is encountered:
+
+ typedef boost::asio::buffers_iterator<
+ boost::asio::streambuf::const_buffers_type> iterator;
+
+ std::pair<iterator, bool>
+ match_whitespace(iterator begin, iterator end)
+ {
+ iterator i = begin;
+ while (i != end)
+ if (std::isspace(*i++))
+ return std::make_pair(i, true);
+ return std::make_pair(i, false);
+ }
+ ...
+ boost::asio::streambuf b;
+ boost::asio::read_until(s, b, match_whitespace);
+
+
+
+
+To read data into a streambuf until a matching character is found:
+
+ class match_char
+ {
+ public:
+ explicit match_char(char c) : c_(c) {}
+
+ template <typename Iterator>
+ std::pair<Iterator, bool> operator()(
+ Iterator begin, Iterator end) const
+ {
+ Iterator i = begin;
+ while (i != end)
+ if (c_ == *i++)
+ return std::make_pair(i, true);
+ return std::make_pair(i, false);
+ }
 
+ private:
+ char c_;
+ };
 
+ namespace asio {
+ template <> struct is_match_condition<match_char>
+ : public boost::true_type {};
+ } // namespace asio
+ ...
+ boost::asio::streambuf b;
+ boost::asio::read_until(s, b, match_char('a'));
 
 
 
@@ -74273,31 +77619,33 @@
 
 
 
-[section:overload3 read (3 of 8 overloads)]
+[section:overload8 read_until (8 of 8 overloads)]
 
 
-Attempt to read a certain amount of data from a stream before returning.
+Read data into a streambuf until a function object indicates a match.
 
 
   template<
       typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
- typename CompletionCondition>
- std::size_t read(
+ typename Allocator,
+ typename MatchCondition>
+ std::size_t read_until(
       SyncReadStream & s,
- const MutableBufferSequence & buffers,
- CompletionCondition completion_condition);
+ boost::asio::basic_streambuf< Allocator > & b,
+ MatchCondition match_condition,
+ boost::system::error_code & ec,
+ typename boost::enable_if< is_match_condition< MatchCondition > >::type * = 0);
 
 
-This function is used to read a certain number of bytes of data from a stream. The call will block until one of the following conditions is true:
+This function is used to read data into the specified streambuf until a user-defined match condition function object, when applied to the data contained in the streambuf, indicates a successful match. The call will block until one of the following conditions is true:
 
 
-* The supplied buffers are full. That is, the bytes transferred is equal to the sum of the buffer sizes.
+* The match condition function object returns a std::pair where the second element evaluates to true.
 
 
-* The completion\_condition function object returns 0.
+* An error occurred.
 
-This operation is implemented in terms of zero or more calls to the stream's read\_some function.
+This operation is implemented in terms of zero or more calls to the stream's read\_some function. If the match condition function object already indicates a match, the function returns immediately.
 
 
 [heading Parameters]
@@ -74307,183 +77655,362 @@
   
 [[s][The stream from which the data is to be read. The type must support the SyncReadStream concept.]]
 
-[[buffers][One or more buffers into which the data will be read. The sum of the buffer sizes indicates the maximum number of bytes to read from the stream.]]
+[[b][A streambuf object into which the data will be read.]]
 
-[[completion_condition][The function object to be called to determine whether the read operation is complete. The signature of the function object must be:
+[[match_condition][The function object to be called to determine whether a match exists. The signature of the function object must be:
 ``
- std::size_t completion_condition(
- // Result of latest read_some operation.
- const boost::system::error_code& error,
-
- // Number of bytes transferred so far.
- std::size_t bytes_transferred
- );
+ pair<iterator, bool> match_condition(iterator begin, iterator end);
 ``
-A return value of 0 indicates that the read operation is complete. A non-zero return value indicates the maximum number of bytes to be read on the next call to the stream's read\_some function.]]
+where `iterator` represents the type:
+``
+ buffers_iterator<basic_streambuf<Allocator>::const_buffers_type>
+``
+The iterator parameters `begin` and `end` define the range of bytes to be scanned to determine whether there is a match. The `first` member of the return value is an iterator marking one-past-the-end of the bytes that have been consumed by the match function. This iterator is used to calculate the `begin` parameter for any subsequent invocation of the match condition. The `second` member of the return value is true if a match has been found, false otherwise.]]
+
+[[ec][Set to indicate what error occurred, if any.]]
 
 ]
 
 
 [heading Return Value]
       
-The number of bytes transferred.
-
+The number of bytes in the streambuf's get area that have been fully consumed by the match function. Returns 0 if an error occurred.
 
-[heading Exceptions]
-
 
-[variablelist
-
-[[boost::system::system_error][Thrown on failure.]]
+[heading Remarks]
+
+After a successful read\_until operation, the streambuf may contain additional data beyond that which matched the function object. An application will typically leave that data in the streambuf for a subsequent
 
-]
+The default implementation of the `is_match_condition` type trait evaluates to true for function pointers and function objects with a `result_type` typedef. It must be specialised for other user-defined function objects.
 
 
-[heading Example]
-
-To read into a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
 
- boost::asio::read(s, boost::asio::buffer(data, size),
- boost::asio::transfer_at_least(32));
 
+[endsect]
 
-See the [link boost_asio.reference.buffer `buffer`] documentation for information on reading into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
 
+[endsect]
 
+[section:seq_packet_socket_service seq_packet_socket_service]
 
 
-[endsect]
+Default service implementation for a sequenced packet socket.
 
 
+ template<
+ typename ``[link boost_asio.reference.Protocol Protocol]``>
+ class seq_packet_socket_service :
+ public io_service::service
 
-[section:overload4 read (4 of 8 overloads)]
 
+[heading Types]
+[table
+ [[Name][Description]]
 
-Attempt to read a certain amount of data from a stream before returning.
+ [
 
+ [[link boost_asio.reference.seq_packet_socket_service.endpoint_type [*endpoint_type]]]
+ [The endpoint type. ]
+
+ ]
 
- template<
- typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
- typename CompletionCondition>
- std::size_t read(
- SyncReadStream & s,
- const MutableBufferSequence & buffers,
- CompletionCondition completion_condition,
- boost::system::error_code & ec);
+ [
 
+ [[link boost_asio.reference.seq_packet_socket_service.implementation_type [*implementation_type]]]
+ [The type of a sequenced packet socket implementation. ]
+
+ ]
 
-This function is used to read a certain number of bytes of data from a stream. The call will block until one of the following conditions is true:
+ [
 
+ [[link boost_asio.reference.seq_packet_socket_service.native_handle_type [*native_handle_type]]]
+ [The native socket type. ]
+
+ ]
 
-* The supplied buffers are full. That is, the bytes transferred is equal to the sum of the buffer sizes.
+ [
 
+ [[link boost_asio.reference.seq_packet_socket_service.native_type [*native_type]]]
+ [(Deprecated: Use native_handle_type.) The native socket type. ]
+
+ ]
 
-* The completion\_condition function object returns 0.
+ [
 
-This operation is implemented in terms of zero or more calls to the stream's read\_some function.
+ [[link boost_asio.reference.seq_packet_socket_service.protocol_type [*protocol_type]]]
+ [The protocol type. ]
+
+ ]
 
+]
 
-[heading Parameters]
-
+[heading Member Functions]
+[table
+ [[Name][Description]]
 
-[variablelist
+ [
+ [[link boost_asio.reference.seq_packet_socket_service.assign [*assign]]]
+ [Assign an existing native socket to a sequenced packet socket. ]
+ ]
   
-[[s][The stream from which the data is to be read. The type must support the SyncReadStream concept.]]
+ [
+ [[link boost_asio.reference.seq_packet_socket_service.async_connect [*async_connect]]]
+ [Start an asynchronous connect. ]
+ ]
+
+ [
+ [[link boost_asio.reference.seq_packet_socket_service.async_receive [*async_receive]]]
+ [Start an asynchronous receive. ]
+ ]
+
+ [
+ [[link boost_asio.reference.seq_packet_socket_service.async_send [*async_send]]]
+ [Start an asynchronous send. ]
+ ]
+
+ [
+ [[link boost_asio.reference.seq_packet_socket_service.at_mark [*at_mark]]]
+ [Determine whether the socket is at the out-of-band data mark. ]
+ ]
+
+ [
+ [[link boost_asio.reference.seq_packet_socket_service.available [*available]]]
+ [Determine the number of bytes available for reading. ]
+ ]
+
+ [
+ [[link boost_asio.reference.seq_packet_socket_service.bind [*bind]]]
+ [Bind the sequenced packet socket to the specified local endpoint. ]
+ ]
+
+ [
+ [[link boost_asio.reference.seq_packet_socket_service.cancel [*cancel]]]
+ [Cancel all asynchronous operations associated with the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.seq_packet_socket_service.close [*close]]]
+ [Close a sequenced packet socket implementation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.seq_packet_socket_service.connect [*connect]]]
+ [Connect the sequenced packet socket to the specified endpoint. ]
+ ]
+
+ [
+ [[link boost_asio.reference.seq_packet_socket_service.construct [*construct]]]
+ [Construct a new sequenced packet socket implementation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.seq_packet_socket_service.destroy [*destroy]]]
+ [Destroy a sequenced packet socket implementation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.seq_packet_socket_service.get_io_service [*get_io_service]]]
+ [Get the io_service object that owns the service. ]
+ ]
+
+ [
+ [[link boost_asio.reference.seq_packet_socket_service.get_option [*get_option]]]
+ [Get a socket option. ]
+ ]
+
+ [
+ [[link boost_asio.reference.seq_packet_socket_service.io_control [*io_control]]]
+ [Perform an IO control command on the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.seq_packet_socket_service.is_open [*is_open]]]
+ [Determine whether the socket is open. ]
+ ]
+
+ [
+ [[link boost_asio.reference.seq_packet_socket_service.local_endpoint [*local_endpoint]]]
+ [Get the local endpoint. ]
+ ]
+
+ [
+ [[link boost_asio.reference.seq_packet_socket_service.move_assign [*move_assign]]]
+ [Move-assign from another sequenced packet socket implementation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.seq_packet_socket_service.move_construct [*move_construct]]]
+ [Move-construct a new sequenced packet socket implementation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.seq_packet_socket_service.native [*native]]]
+ [(Deprecated: Use native_handle().) Get the native socket implementation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.seq_packet_socket_service.native_handle [*native_handle]]]
+ [Get the native socket implementation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.seq_packet_socket_service.native_non_blocking [*native_non_blocking]]]
+ [Gets the non-blocking mode of the native socket implementation.
 
-[[buffers][One or more buffers into which the data will be read. The sum of the buffer sizes indicates the maximum number of bytes to read from the stream.]]
+ Sets the non-blocking mode of the native socket implementation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.seq_packet_socket_service.non_blocking [*non_blocking]]]
+ [Gets the non-blocking mode of the socket.
 
-[[completion_condition][The function object to be called to determine whether the read operation is complete. The signature of the function object must be:
-``
- std::size_t completion_condition(
- // Result of latest read_some operation.
- const boost::system::error_code& error,
+ Sets the non-blocking mode of the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.seq_packet_socket_service.open [*open]]]
+ [Open a sequenced packet socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.seq_packet_socket_service.receive [*receive]]]
+ [Receive some data from the peer. ]
+ ]
+
+ [
+ [[link boost_asio.reference.seq_packet_socket_service.remote_endpoint [*remote_endpoint]]]
+ [Get the remote endpoint. ]
+ ]
+
+ [
+ [[link boost_asio.reference.seq_packet_socket_service.send [*send]]]
+ [Send the given data to the peer. ]
+ ]
+
+ [
+ [[link boost_asio.reference.seq_packet_socket_service.seq_packet_socket_service [*seq_packet_socket_service]]]
+ [Construct a new sequenced packet socket service for the specified io_service. ]
+ ]
+
+ [
+ [[link boost_asio.reference.seq_packet_socket_service.set_option [*set_option]]]
+ [Set a socket option. ]
+ ]
+
+ [
+ [[link boost_asio.reference.seq_packet_socket_service.shutdown [*shutdown]]]
+ [Disable sends or receives on the socket. ]
+ ]
+
+]
 
- // Number of bytes transferred so far.
- std::size_t bytes_transferred
- );
-``
-A return value of 0 indicates that the read operation is complete. A non-zero return value indicates the maximum number of bytes to be read on the next call to the stream's read\_some function.]]
+[heading Data Members]
+[table
+ [[Name][Description]]
 
-[[ec][Set to indicate what error occurred, if any.]]
+ [
+ [[link boost_asio.reference.seq_packet_socket_service.id [*id]]]
+ [The unique service identifier. ]
+ ]
 
 ]
 
+[heading Requirements]
 
-[heading Return Value]
-
-The number of bytes read. If an error occurs, returns the total number of bytes successfully transferred prior to the error.
+[*Header: ][^boost/asio/seq_packet_socket_service.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
 
+[section:assign seq_packet_socket_service::assign]
 
-[endsect]
+[indexterm2 assign..seq_packet_socket_service]
+Assign an existing native socket to a sequenced packet socket.
 
 
+ boost::system::error_code assign(
+ implementation_type & impl,
+ const protocol_type & protocol,
+ const native_handle_type & native_socket,
+ boost::system::error_code & ec);
 
-[section:overload5 read (5 of 8 overloads)]
 
 
-Attempt to read a certain amount of data from a stream before returning.
+[endsect]
+
+
+
+[section:async_connect seq_packet_socket_service::async_connect]
+
+[indexterm2 async_connect..seq_packet_socket_service]
+Start an asynchronous connect.
 
 
   template<
- typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
- typename Allocator>
- std::size_t read(
- SyncReadStream & s,
- basic_streambuf< Allocator > & b);
+ typename ``[link boost_asio.reference.ConnectHandler ConnectHandler]``>
+ void async_connect(
+ implementation_type & impl,
+ const endpoint_type & peer_endpoint,
+ ConnectHandler handler);
 
 
-This function is used to read a certain number of bytes of data from a stream. The call will block until one of the following conditions is true:
 
+[endsect]
 
-* The supplied buffer is full (that is, it has reached maximum size).
 
 
-* An error occurred.
+[section:async_receive seq_packet_socket_service::async_receive]
 
-This operation is implemented in terms of zero or more calls to the stream's read\_some function.
+[indexterm2 async_receive..seq_packet_socket_service]
+Start an asynchronous receive.
 
 
-[heading Parameters]
-
+ template<
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
+ typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
+ void async_receive(
+ implementation_type & impl,
+ const MutableBufferSequence & buffers,
+ socket_base::message_flags in_flags,
+ socket_base::message_flags & out_flags,
+ ReadHandler handler);
 
-[variablelist
-
-[[s][The stream from which the data is to be read. The type must support the SyncReadStream concept.]]
 
-[[b][The [link boost_asio.reference.basic_streambuf `basic_streambuf`] object into which the data will be read.]]
 
-]
+[endsect]
 
 
-[heading Return Value]
-
-The number of bytes transferred.
 
+[section:async_send seq_packet_socket_service::async_send]
 
-[heading Exceptions]
-
+[indexterm2 async_send..seq_packet_socket_service]
+Start an asynchronous send.
 
-[variablelist
-
-[[boost::system::system_error][Thrown on failure.]]
 
-]
+ template<
+ typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
+ typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
+ void async_send(
+ implementation_type & impl,
+ const ConstBufferSequence & buffers,
+ socket_base::message_flags flags,
+ WriteHandler handler);
 
 
-[heading Remarks]
-
-This overload is equivalent to calling:
 
- boost::asio::read(
- s, b,
- boost::asio::transfer_all());
+[endsect]
+
+
 
+[section:at_mark seq_packet_socket_service::at_mark]
 
+[indexterm2 at_mark..seq_packet_socket_service]
+Determine whether the socket is at the out-of-band data mark.
 
 
+ bool at_mark(
+ const implementation_type & impl,
+ boost::system::error_code & ec) const;
 
 
 
@@ -74491,62 +78018,64 @@
 
 
 
-[section:overload6 read (6 of 8 overloads)]
+[section:available seq_packet_socket_service::available]
+
+[indexterm2 available..seq_packet_socket_service]
+Determine the number of bytes available for reading.
+
+
+ std::size_t available(
+ const implementation_type & impl,
+ boost::system::error_code & ec) const;
+
 
 
-Attempt to read a certain amount of data from a stream before returning.
+[endsect]
 
 
- template<
- typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
- typename Allocator>
- std::size_t read(
- SyncReadStream & s,
- basic_streambuf< Allocator > & b,
- boost::system::error_code & ec);
 
+[section:bind seq_packet_socket_service::bind]
 
-This function is used to read a certain number of bytes of data from a stream. The call will block until one of the following conditions is true:
+[indexterm2 bind..seq_packet_socket_service]
+Bind the sequenced packet socket to the specified local endpoint.
 
 
-* The supplied buffer is full (that is, it has reached maximum size).
+ boost::system::error_code bind(
+ implementation_type & impl,
+ const endpoint_type & endpoint,
+ boost::system::error_code & ec);
 
 
-* An error occurred.
 
-This operation is implemented in terms of zero or more calls to the stream's read\_some function.
+[endsect]
 
 
-[heading Parameters]
-
 
-[variablelist
-
-[[s][The stream from which the data is to be read. The type must support the SyncReadStream concept.]]
+[section:cancel seq_packet_socket_service::cancel]
 
-[[b][The [link boost_asio.reference.basic_streambuf `basic_streambuf`] object into which the data will be read.]]
+[indexterm2 cancel..seq_packet_socket_service]
+Cancel all asynchronous operations associated with the socket.
 
-[[ec][Set to indicate what error occurred, if any.]]
 
-]
+ boost::system::error_code cancel(
+ implementation_type & impl,
+ boost::system::error_code & ec);
 
 
-[heading Return Value]
-
-The number of bytes transferred.
 
+[endsect]
 
-[heading Remarks]
-
-This overload is equivalent to calling:
 
- boost::asio::read(
- s, b,
- boost::asio::transfer_all(), ec);
 
+[section:close seq_packet_socket_service::close]
 
+[indexterm2 close..seq_packet_socket_service]
+Close a sequenced packet socket implementation.
 
 
+ boost::system::error_code close(
+ implementation_type & impl,
+ boost::system::error_code & ec);
 
 
 
@@ -74554,548 +78083,382 @@
 
 
 
-[section:overload7 read (7 of 8 overloads)]
-
+[section:connect seq_packet_socket_service::connect]
 
-Attempt to read a certain amount of data from a stream before returning.
+[indexterm2 connect..seq_packet_socket_service]
+Connect the sequenced packet socket to the specified endpoint.
 
 
- template<
- typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
- typename Allocator,
- typename CompletionCondition>
- std::size_t read(
- SyncReadStream & s,
- basic_streambuf< Allocator > & b,
- CompletionCondition completion_condition);
+ boost::system::error_code connect(
+ implementation_type & impl,
+ const endpoint_type & peer_endpoint,
+ boost::system::error_code & ec);
 
 
-This function is used to read a certain number of bytes of data from a stream. The call will block until one of the following conditions is true:
 
+[endsect]
 
-* The supplied buffer is full (that is, it has reached maximum size).
 
 
-* The completion\_condition function object returns 0.
+[section:construct seq_packet_socket_service::construct]
 
-This operation is implemented in terms of zero or more calls to the stream's read\_some function.
+[indexterm2 construct..seq_packet_socket_service]
+Construct a new sequenced packet socket implementation.
 
 
-[heading Parameters]
-
+ void construct(
+ implementation_type & impl);
 
-[variablelist
-
-[[s][The stream from which the data is to be read. The type must support the SyncReadStream concept.]]
 
-[[b][The [link boost_asio.reference.basic_streambuf `basic_streambuf`] object into which the data will be read.]]
 
-[[completion_condition][The function object to be called to determine whether the read operation is complete. The signature of the function object must be:
-``
- std::size_t completion_condition(
- // Result of latest read_some operation.
- const boost::system::error_code& error,
+[endsect]
 
- // Number of bytes transferred so far.
- std::size_t bytes_transferred
- );
-``
-A return value of 0 indicates that the read operation is complete. A non-zero return value indicates the maximum number of bytes to be read on the next call to the stream's read\_some function.]]
 
-]
 
+[section:destroy seq_packet_socket_service::destroy]
 
-[heading Return Value]
-
-The number of bytes transferred.
+[indexterm2 destroy..seq_packet_socket_service]
+Destroy a sequenced packet socket implementation.
 
 
-[heading Exceptions]
-
+ void destroy(
+ implementation_type & impl);
 
-[variablelist
-
-[[boost::system::system_error][Thrown on failure. ]]
 
-]
 
+[endsect]
 
 
 
-[endsect]
+[section:endpoint_type seq_packet_socket_service::endpoint_type]
 
+[indexterm2 endpoint_type..seq_packet_socket_service]
+The endpoint type.
 
 
-[section:overload8 read (8 of 8 overloads)]
+ typedef Protocol::endpoint endpoint_type;
 
 
-Attempt to read a certain amount of data from a stream before returning.
 
+[heading Requirements]
 
- template<
- typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
- typename Allocator,
- typename CompletionCondition>
- std::size_t read(
- SyncReadStream & s,
- basic_streambuf< Allocator > & b,
- CompletionCondition completion_condition,
- boost::system::error_code & ec);
+[*Header: ][^boost/asio/seq_packet_socket_service.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
-This function is used to read a certain number of bytes of data from a stream. The call will block until one of the following conditions is true:
 
+[endsect]
 
-* The supplied buffer is full (that is, it has reached maximum size).
 
 
-* The completion\_condition function object returns 0.
+[section:get_io_service seq_packet_socket_service::get_io_service]
 
-This operation is implemented in terms of zero or more calls to the stream's read\_some function.
 
+['Inherited from io_service.]
 
-[heading Parameters]
-
+[indexterm2 get_io_service..seq_packet_socket_service]
+Get the [link boost_asio.reference.io_service `io_service`] object that owns the service.
 
-[variablelist
-
-[[s][The stream from which the data is to be read. The type must support the SyncReadStream concept.]]
 
-[[b][The [link boost_asio.reference.basic_streambuf `basic_streambuf`] object into which the data will be read.]]
+ boost::asio::io_service & get_io_service();
 
-[[completion_condition][The function object to be called to determine whether the read operation is complete. The signature of the function object must be:
-``
- std::size_t completion_condition(
- // Result of latest read_some operation.
- const boost::system::error_code& error,
 
- // Number of bytes transferred so far.
- std::size_t bytes_transferred
- );
-``
-A return value of 0 indicates that the read operation is complete. A non-zero return value indicates the maximum number of bytes to be read on the next call to the stream's read\_some function.]]
 
-[[ec][Set to indicate what error occurred, if any.]]
+[endsect]
 
-]
 
 
-[heading Return Value]
-
-The number of bytes read. If an error occurs, returns the total number of bytes successfully transferred prior to the error.
+[section:get_option seq_packet_socket_service::get_option]
 
+[indexterm2 get_option..seq_packet_socket_service]
+Get a socket option.
 
 
+ template<
+ typename ``[link boost_asio.reference.GettableSocketOption GettableSocketOption]``>
+ boost::system::error_code get_option(
+ const implementation_type & impl,
+ GettableSocketOption & option,
+ boost::system::error_code & ec) const;
 
-[endsect]
 
 
 [endsect]
 
-[section:read_at read_at]
 
-[indexterm1 read_at]
-Attempt to read a certain amount of data at the specified offset before returning.
 
-
- template<
- typename ``[link boost_asio.reference.SyncRandomAccessReadDevice SyncRandomAccessReadDevice]``,
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
- std::size_t ``[link boost_asio.reference.read_at.overload1 read_at]``(
- SyncRandomAccessReadDevice & d,
- boost::uint64_t offset,
- const MutableBufferSequence & buffers);
- `` [''''&raquo;''' [link boost_asio.reference.read_at.overload1 more...]]``
+[section:id seq_packet_socket_service::id]
 
- template<
- typename ``[link boost_asio.reference.SyncRandomAccessReadDevice SyncRandomAccessReadDevice]``,
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
- std::size_t ``[link boost_asio.reference.read_at.overload2 read_at]``(
- SyncRandomAccessReadDevice & d,
- boost::uint64_t offset,
- const MutableBufferSequence & buffers,
- boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.read_at.overload2 more...]]``
+[indexterm2 id..seq_packet_socket_service]
+The unique service identifier.
 
- template<
- typename ``[link boost_asio.reference.SyncRandomAccessReadDevice SyncRandomAccessReadDevice]``,
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
- typename CompletionCondition>
- std::size_t ``[link boost_asio.reference.read_at.overload3 read_at]``(
- SyncRandomAccessReadDevice & d,
- boost::uint64_t offset,
- const MutableBufferSequence & buffers,
- CompletionCondition completion_condition);
- `` [''''&raquo;''' [link boost_asio.reference.read_at.overload3 more...]]``
 
- template<
- typename ``[link boost_asio.reference.SyncRandomAccessReadDevice SyncRandomAccessReadDevice]``,
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
- typename CompletionCondition>
- std::size_t ``[link boost_asio.reference.read_at.overload4 read_at]``(
- SyncRandomAccessReadDevice & d,
- boost::uint64_t offset,
- const MutableBufferSequence & buffers,
- CompletionCondition completion_condition,
- boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.read_at.overload4 more...]]``
+ static boost::asio::io_service::id id;
 
- template<
- typename ``[link boost_asio.reference.SyncRandomAccessReadDevice SyncRandomAccessReadDevice]``,
- typename Allocator>
- std::size_t ``[link boost_asio.reference.read_at.overload5 read_at]``(
- SyncRandomAccessReadDevice & d,
- boost::uint64_t offset,
- basic_streambuf< Allocator > & b);
- `` [''''&raquo;''' [link boost_asio.reference.read_at.overload5 more...]]``
 
- template<
- typename ``[link boost_asio.reference.SyncRandomAccessReadDevice SyncRandomAccessReadDevice]``,
- typename Allocator>
- std::size_t ``[link boost_asio.reference.read_at.overload6 read_at]``(
- SyncRandomAccessReadDevice & d,
- boost::uint64_t offset,
- basic_streambuf< Allocator > & b,
- boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.read_at.overload6 more...]]``
 
- template<
- typename ``[link boost_asio.reference.SyncRandomAccessReadDevice SyncRandomAccessReadDevice]``,
- typename Allocator,
- typename CompletionCondition>
- std::size_t ``[link boost_asio.reference.read_at.overload7 read_at]``(
- SyncRandomAccessReadDevice & d,
- boost::uint64_t offset,
- basic_streambuf< Allocator > & b,
- CompletionCondition completion_condition);
- `` [''''&raquo;''' [link boost_asio.reference.read_at.overload7 more...]]``
+[endsect]
 
- template<
- typename ``[link boost_asio.reference.SyncRandomAccessReadDevice SyncRandomAccessReadDevice]``,
- typename Allocator,
- typename CompletionCondition>
- std::size_t ``[link boost_asio.reference.read_at.overload8 read_at]``(
- SyncRandomAccessReadDevice & d,
- boost::uint64_t offset,
- basic_streambuf< Allocator > & b,
- CompletionCondition completion_condition,
- boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.read_at.overload8 more...]]``
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/read_at.hpp]
+[section:implementation_type seq_packet_socket_service::implementation_type]
 
-[*Convenience header: ][^boost/asio.hpp]
+[indexterm2 implementation_type..seq_packet_socket_service]
+The type of a sequenced packet socket implementation.
 
 
-[section:overload1 read_at (1 of 8 overloads)]
+ typedef implementation_defined implementation_type;
 
 
-Attempt to read a certain amount of data at the specified offset before returning.
 
+[heading Requirements]
 
- template<
- typename ``[link boost_asio.reference.SyncRandomAccessReadDevice SyncRandomAccessReadDevice]``,
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
- std::size_t read_at(
- SyncRandomAccessReadDevice & d,
- boost::uint64_t offset,
- const MutableBufferSequence & buffers);
+[*Header: ][^boost/asio/seq_packet_socket_service.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
-This function is used to read a certain number of bytes of data from a random access device at the specified offset. The call will block until one of the following conditions is true:
 
+[endsect]
 
-* The supplied buffers are full. That is, the bytes transferred is equal to the sum of the buffer sizes.
 
 
-* An error occurred.
+[section:io_control seq_packet_socket_service::io_control]
 
-This operation is implemented in terms of zero or more calls to the device's read\_some\_at function.
+[indexterm2 io_control..seq_packet_socket_service]
+Perform an IO control command on the socket.
 
 
-[heading Parameters]
-
+ template<
+ typename ``[link boost_asio.reference.IoControlCommand IoControlCommand]``>
+ boost::system::error_code io_control(
+ implementation_type & impl,
+ IoControlCommand & command,
+ boost::system::error_code & ec);
 
-[variablelist
-
-[[d][The device from which the data is to be read. The type must support the SyncRandomAccessReadDevice concept.]]
 
-[[offset][The offset at which the data will be read.]]
 
-[[buffers][One or more buffers into which the data will be read. The sum of the buffer sizes indicates the maximum number of bytes to read from the device.]]
+[endsect]
 
-]
 
 
-[heading Return Value]
-
-The number of bytes transferred.
+[section:is_open seq_packet_socket_service::is_open]
 
+[indexterm2 is_open..seq_packet_socket_service]
+Determine whether the socket is open.
 
-[heading Exceptions]
-
 
-[variablelist
-
-[[boost::system::system_error][Thrown on failure.]]
+ bool is_open(
+ const implementation_type & impl) const;
 
-]
 
 
-[heading Example]
-
-To read into a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
+[endsect]
 
- boost::asio::read_at(d, 42, boost::asio::buffer(data, size));
 
 
-See the [link boost_asio.reference.buffer `buffer`] documentation for information on reading into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
+[section:local_endpoint seq_packet_socket_service::local_endpoint]
 
+[indexterm2 local_endpoint..seq_packet_socket_service]
+Get the local endpoint.
 
-[heading Remarks]
-
-This overload is equivalent to calling:
 
- boost::asio::read_at(
- d, 42, buffers,
- boost::asio::transfer_all());
+ endpoint_type local_endpoint(
+ const implementation_type & impl,
+ boost::system::error_code & ec) const;
 
 
 
+[endsect]
 
 
 
+[section:move_assign seq_packet_socket_service::move_assign]
 
-[endsect]
+[indexterm2 move_assign..seq_packet_socket_service]
+Move-assign from another sequenced packet socket implementation.
 
 
+ void move_assign(
+ implementation_type & impl,
+ seq_packet_socket_service & other_service,
+ implementation_type & other_impl);
 
-[section:overload2 read_at (2 of 8 overloads)]
 
 
-Attempt to read a certain amount of data at the specified offset before returning.
+[endsect]
 
 
- template<
- typename ``[link boost_asio.reference.SyncRandomAccessReadDevice SyncRandomAccessReadDevice]``,
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
- std::size_t read_at(
- SyncRandomAccessReadDevice & d,
- boost::uint64_t offset,
- const MutableBufferSequence & buffers,
- boost::system::error_code & ec);
 
+[section:move_construct seq_packet_socket_service::move_construct]
 
-This function is used to read a certain number of bytes of data from a random access device at the specified offset. The call will block until one of the following conditions is true:
+[indexterm2 move_construct..seq_packet_socket_service]
+Move-construct a new sequenced packet socket implementation.
 
 
-* The supplied buffers are full. That is, the bytes transferred is equal to the sum of the buffer sizes.
+ void move_construct(
+ implementation_type & impl,
+ implementation_type & other_impl);
 
 
-* An error occurred.
 
-This operation is implemented in terms of zero or more calls to the device's read\_some\_at function.
+[endsect]
 
 
-[heading Parameters]
-
 
-[variablelist
-
-[[d][The device from which the data is to be read. The type must support the SyncRandomAccessReadDevice concept.]]
+[section:native seq_packet_socket_service::native]
 
-[[offset][The offset at which the data will be read.]]
+[indexterm2 native..seq_packet_socket_service]
+(Deprecated: Use `native_handle()`.) Get the native socket implementation.
 
-[[buffers][One or more buffers into which the data will be read. The sum of the buffer sizes indicates the maximum number of bytes to read from the device.]]
 
-[[ec][Set to indicate what error occurred, if any.]]
+ native_type native(
+ implementation_type & impl);
 
-]
 
 
-[heading Return Value]
-
-The number of bytes transferred.
+[endsect]
 
 
-[heading Example]
-
-To read into a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
 
- boost::asio::read_at(d, 42,
- boost::asio::buffer(data, size), ec);
+[section:native_handle seq_packet_socket_service::native_handle]
 
+[indexterm2 native_handle..seq_packet_socket_service]
+Get the native socket implementation.
 
-See the [link boost_asio.reference.buffer `buffer`] documentation for information on reading into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
 
+ native_handle_type native_handle(
+ implementation_type & impl);
 
-[heading Remarks]
-
-This overload is equivalent to calling:
 
- boost::asio::read_at(
- d, 42, buffers,
- boost::asio::transfer_all(), ec);
 
+[endsect]
 
 
 
+[section:native_handle_type seq_packet_socket_service::native_handle_type]
 
+[indexterm2 native_handle_type..seq_packet_socket_service]
+The native socket type.
 
 
-[endsect]
+ typedef implementation_defined native_handle_type;
 
 
 
-[section:overload3 read_at (3 of 8 overloads)]
+[heading Requirements]
 
+[*Header: ][^boost/asio/seq_packet_socket_service.hpp]
 
-Attempt to read a certain amount of data at the specified offset before returning.
+[*Convenience header: ][^boost/asio.hpp]
 
 
- template<
- typename ``[link boost_asio.reference.SyncRandomAccessReadDevice SyncRandomAccessReadDevice]``,
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
- typename CompletionCondition>
- std::size_t read_at(
- SyncRandomAccessReadDevice & d,
- boost::uint64_t offset,
- const MutableBufferSequence & buffers,
- CompletionCondition completion_condition);
+[endsect]
 
 
-This function is used to read a certain number of bytes of data from a random access device at the specified offset. The call will block until one of the following conditions is true:
+[section:native_non_blocking seq_packet_socket_service::native_non_blocking]
 
+[indexterm2 native_non_blocking..seq_packet_socket_service]
+Gets the non-blocking mode of the native socket implementation.
 
-* The supplied buffers are full. That is, the bytes transferred is equal to the sum of the buffer sizes.
 
+ bool ``[link boost_asio.reference.seq_packet_socket_service.native_non_blocking.overload1 native_non_blocking]``(
+ const implementation_type & impl) const;
+ `` [''''&raquo;''' [link boost_asio.reference.seq_packet_socket_service.native_non_blocking.overload1 more...]]``
 
-* The completion\_condition function object returns 0.
 
-This operation is implemented in terms of zero or more calls to the device's read\_some\_at function.
+Sets the non-blocking mode of the native socket implementation.
 
 
-[heading Parameters]
-
+ boost::system::error_code ``[link boost_asio.reference.seq_packet_socket_service.native_non_blocking.overload2 native_non_blocking]``(
+ implementation_type & impl,
+ bool mode,
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.seq_packet_socket_service.native_non_blocking.overload2 more...]]``
 
-[variablelist
-
-[[d][The device from which the data is to be read. The type must support the SyncRandomAccessReadDevice concept.]]
 
-[[offset][The offset at which the data will be read.]]
+[section:overload1 seq_packet_socket_service::native_non_blocking (1 of 2 overloads)]
 
-[[buffers][One or more buffers into which the data will be read. The sum of the buffer sizes indicates the maximum number of bytes to read from the device.]]
 
-[[completion_condition][The function object to be called to determine whether the read operation is complete. The signature of the function object must be:
-``
- std::size_t completion_condition(
- // Result of latest read_some_at operation.
- const boost::system::error_code& error,
+Gets the non-blocking mode of the native socket implementation.
 
- // Number of bytes transferred so far.
- std::size_t bytes_transferred
- );
-``
-A return value of 0 indicates that the read operation is complete. A non-zero return value indicates the maximum number of bytes to be read on the next call to the device's read\_some\_at function.]]
 
-]
+ bool native_non_blocking(
+ const implementation_type & impl) const;
 
 
-[heading Return Value]
-
-The number of bytes transferred.
 
+[endsect]
 
-[heading Exceptions]
-
 
-[variablelist
-
-[[boost::system::system_error][Thrown on failure.]]
 
-]
+[section:overload2 seq_packet_socket_service::native_non_blocking (2 of 2 overloads)]
 
 
-[heading Example]
-
-To read into a single data buffer use the [link boost_asio.reference.buffer `buffer`] function as follows:
+Sets the non-blocking mode of the native socket implementation.
 
- boost::asio::read_at(d, 42, boost::asio::buffer(data, size),
- boost::asio::transfer_at_least(32));
 
+ boost::system::error_code native_non_blocking(
+ implementation_type & impl,
+ bool mode,
+ boost::system::error_code & ec);
 
-See the [link boost_asio.reference.buffer `buffer`] documentation for information on reading into multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.
 
 
+[endsect]
 
 
 [endsect]
 
 
+[section:native_type seq_packet_socket_service::native_type]
 
-[section:overload4 read_at (4 of 8 overloads)]
+[indexterm2 native_type..seq_packet_socket_service]
+(Deprecated: Use native\_handle\_type.) The native socket type.
 
 
-Attempt to read a certain amount of data at the specified offset before returning.
+ typedef implementation_defined native_type;
 
 
- template<
- typename ``[link boost_asio.reference.SyncRandomAccessReadDevice SyncRandomAccessReadDevice]``,
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
- typename CompletionCondition>
- std::size_t read_at(
- SyncRandomAccessReadDevice & d,
- boost::uint64_t offset,
- const MutableBufferSequence & buffers,
- CompletionCondition completion_condition,
- boost::system::error_code & ec);
 
+[heading Requirements]
 
-This function is used to read a certain number of bytes of data from a random access device at the specified offset. The call will block until one of the following conditions is true:
+[*Header: ][^boost/asio/seq_packet_socket_service.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
-* The supplied buffers are full. That is, the bytes transferred is equal to the sum of the buffer sizes.
 
+[endsect]
 
-* The completion\_condition function object returns 0.
 
-This operation is implemented in terms of zero or more calls to the device's read\_some\_at function.
+[section:non_blocking seq_packet_socket_service::non_blocking]
+
+[indexterm2 non_blocking..seq_packet_socket_service]
+Gets the non-blocking mode of the socket.
 
 
-[heading Parameters]
-
+ bool ``[link boost_asio.reference.seq_packet_socket_service.non_blocking.overload1 non_blocking]``(
+ const implementation_type & impl) const;
+ `` [''''&raquo;''' [link boost_asio.reference.seq_packet_socket_service.non_blocking.overload1 more...]]``
 
-[variablelist
-
-[[d][The device from which the data is to be read. The type must support the SyncRandomAccessReadDevice concept.]]
 
-[[offset][The offset at which the data will be read.]]
+Sets the non-blocking mode of the socket.
 
-[[buffers][One or more buffers into which the data will be read. The sum of the buffer sizes indicates the maximum number of bytes to read from the device.]]
 
-[[completion_condition][The function object to be called to determine whether the read operation is complete. The signature of the function object must be:
-``
- std::size_t completion_condition(
- // Result of latest read_some_at operation.
- const boost::system::error_code& error,
+ boost::system::error_code ``[link boost_asio.reference.seq_packet_socket_service.non_blocking.overload2 non_blocking]``(
+ implementation_type & impl,
+ bool mode,
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.seq_packet_socket_service.non_blocking.overload2 more...]]``
 
- // Number of bytes transferred so far.
- std::size_t bytes_transferred
- );
-``
-A return value of 0 indicates that the read operation is complete. A non-zero return value indicates the maximum number of bytes to be read on the next call to the device's read\_some\_at function.]]
 
-[[ec][Set to indicate what error occurred, if any.]]
+[section:overload1 seq_packet_socket_service::non_blocking (1 of 2 overloads)]
 
-]
 
+Gets the non-blocking mode of the socket.
 
-[heading Return Value]
-
-The number of bytes read. If an error occurs, returns the total number of bytes successfully transferred prior to the error.
 
+ bool non_blocking(
+ const implementation_type & impl) const;
 
 
 
@@ -75103,458 +78466,516 @@
 
 
 
-[section:overload5 read_at (5 of 8 overloads)]
-
+[section:overload2 seq_packet_socket_service::non_blocking (2 of 2 overloads)]
 
-Attempt to read a certain amount of data at the specified offset before returning.
 
+Sets the non-blocking mode of the socket.
 
- template<
- typename ``[link boost_asio.reference.SyncRandomAccessReadDevice SyncRandomAccessReadDevice]``,
- typename Allocator>
- std::size_t read_at(
- SyncRandomAccessReadDevice & d,
- boost::uint64_t offset,
- basic_streambuf< Allocator > & b);
 
+ boost::system::error_code non_blocking(
+ implementation_type & impl,
+ bool mode,
+ boost::system::error_code & ec);
 
-This function is used to read a certain number of bytes of data from a random access device at the specified offset. The call will block until one of the following conditions is true:
 
 
-* An error occurred.
+[endsect]
 
-This operation is implemented in terms of zero or more calls to the device's read\_some\_at function.
 
+[endsect]
 
-[heading Parameters]
-
 
-[variablelist
-
-[[d][The device from which the data is to be read. The type must support the SyncRandomAccessReadDevice concept.]]
+[section:open seq_packet_socket_service::open]
 
-[[offset][The offset at which the data will be read.]]
+[indexterm2 open..seq_packet_socket_service]
+Open a sequenced packet socket.
 
-[[b][The [link boost_asio.reference.basic_streambuf `basic_streambuf`] object into which the data will be read.]]
 
-]
+ boost::system::error_code open(
+ implementation_type & impl,
+ const protocol_type & protocol,
+ boost::system::error_code & ec);
 
 
-[heading Return Value]
-
-The number of bytes transferred.
 
+[endsect]
 
-[heading Exceptions]
-
 
-[variablelist
-
-[[boost::system::system_error][Thrown on failure.]]
 
-]
+[section:protocol_type seq_packet_socket_service::protocol_type]
 
+[indexterm2 protocol_type..seq_packet_socket_service]
+The protocol type.
 
-[heading Remarks]
-
-This overload is equivalent to calling:
 
- boost::asio::read_at(
- d, 42, b,
- boost::asio::transfer_all());
+ typedef Protocol protocol_type;
 
 
 
+[heading Requirements]
 
+[*Header: ][^boost/asio/seq_packet_socket_service.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
 
-[section:overload6 read_at (6 of 8 overloads)]
-
+[section:receive seq_packet_socket_service::receive]
 
-Attempt to read a certain amount of data at the specified offset before returning.
+[indexterm2 receive..seq_packet_socket_service]
+Receive some data from the peer.
 
 
   template<
- typename ``[link boost_asio.reference.SyncRandomAccessReadDevice SyncRandomAccessReadDevice]``,
- typename Allocator>
- std::size_t read_at(
- SyncRandomAccessReadDevice & d,
- boost::uint64_t offset,
- basic_streambuf< Allocator > & b,
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
+ std::size_t receive(
+ implementation_type & impl,
+ const MutableBufferSequence & buffers,
+ socket_base::message_flags in_flags,
+ socket_base::message_flags & out_flags,
       boost::system::error_code & ec);
 
 
-This function is used to read a certain number of bytes of data from a random access device at the specified offset. The call will block until one of the following conditions is true:
 
+[endsect]
 
-* An error occurred.
 
-This operation is implemented in terms of zero or more calls to the device's read\_some\_at function.
 
+[section:remote_endpoint seq_packet_socket_service::remote_endpoint]
 
-[heading Parameters]
-
+[indexterm2 remote_endpoint..seq_packet_socket_service]
+Get the remote endpoint.
 
-[variablelist
-
-[[d][The device from which the data is to be read. The type must support the SyncRandomAccessReadDevice concept.]]
 
-[[offset][The offset at which the data will be read.]]
+ endpoint_type remote_endpoint(
+ const implementation_type & impl,
+ boost::system::error_code & ec) const;
 
-[[b][The [link boost_asio.reference.basic_streambuf `basic_streambuf`] object into which the data will be read.]]
 
-[[ec][Set to indicate what error occurred, if any.]]
 
-]
+[endsect]
 
 
-[heading Return Value]
-
-The number of bytes transferred.
 
+[section:send seq_packet_socket_service::send]
 
-[heading Remarks]
-
-This overload is equivalent to calling:
+[indexterm2 send..seq_packet_socket_service]
+Send the given data to the peer.
 
- boost::asio::read_at(
- d, 42, b,
- boost::asio::transfer_all(), ec);
+
+ template<
+ typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
+ std::size_t send(
+ implementation_type & impl,
+ const ConstBufferSequence & buffers,
+ socket_base::message_flags flags,
+ boost::system::error_code & ec);
 
 
 
+[endsect]
 
 
 
+[section:seq_packet_socket_service seq_packet_socket_service::seq_packet_socket_service]
 
-[endsect]
+[indexterm2 seq_packet_socket_service..seq_packet_socket_service]
+Construct a new sequenced packet socket service for the specified [link boost_asio.reference.io_service `io_service`].
 
 
+ seq_packet_socket_service(
+ boost::asio::io_service & io_service);
+
 
-[section:overload7 read_at (7 of 8 overloads)]
 
+[endsect]
 
-Attempt to read a certain amount of data at the specified offset before returning.
+
+
+[section:set_option seq_packet_socket_service::set_option]
+
+[indexterm2 set_option..seq_packet_socket_service]
+Set a socket option.
 
 
   template<
- typename ``[link boost_asio.reference.SyncRandomAccessReadDevice SyncRandomAccessReadDevice]``,
- typename Allocator,
- typename CompletionCondition>
- std::size_t read_at(
- SyncRandomAccessReadDevice & d,
- boost::uint64_t offset,
- basic_streambuf< Allocator > & b,
- CompletionCondition completion_condition);
+ typename ``[link boost_asio.reference.SettableSocketOption SettableSocketOption]``>
+ boost::system::error_code set_option(
+ implementation_type & impl,
+ const SettableSocketOption & option,
+ boost::system::error_code & ec);
 
 
-This function is used to read a certain number of bytes of data from a random access device at the specified offset. The call will block until one of the following conditions is true:
 
+[endsect]
 
-* The completion\_condition function object returns 0.
 
-This operation is implemented in terms of zero or more calls to the device's read\_some\_at function.
 
+[section:shutdown seq_packet_socket_service::shutdown]
 
-[heading Parameters]
-
+[indexterm2 shutdown..seq_packet_socket_service]
+Disable sends or receives on the socket.
 
-[variablelist
-
-[[d][The device from which the data is to be read. The type must support the SyncRandomAccessReadDevice concept.]]
 
-[[offset][The offset at which the data will be read.]]
+ boost::system::error_code shutdown(
+ implementation_type & impl,
+ socket_base::shutdown_type what,
+ boost::system::error_code & ec);
 
-[[b][The [link boost_asio.reference.basic_streambuf `basic_streambuf`] object into which the data will be read.]]
 
-[[completion_condition][The function object to be called to determine whether the read operation is complete. The signature of the function object must be:
-``
- std::size_t completion_condition(
- // Result of latest read_some_at operation.
- const boost::system::error_code& error,
 
- // Number of bytes transferred so far.
- std::size_t bytes_transferred
- );
-``
-A return value of 0 indicates that the read operation is complete. A non-zero return value indicates the maximum number of bytes to be read on the next call to the device's read\_some\_at function.]]
+[endsect]
 
-]
 
 
-[heading Return Value]
-
-The number of bytes transferred.
+[endsect]
 
 
-[heading Exceptions]
-
+[section:serial_port serial_port]
 
-[variablelist
-
-[[boost::system::system_error][Thrown on failure. ]]
+[indexterm1 serial_port]
+Typedef for the typical usage of a serial port.
 
-]
 
+ typedef basic_serial_port serial_port;
 
 
+[heading Types]
+[table
+ [[Name][Description]]
 
-[endsect]
+ [
 
+ [[link boost_asio.reference.basic_serial_port.implementation_type [*implementation_type]]]
+ [The underlying implementation type of I/O object. ]
+
+ ]
 
+ [
 
-[section:overload8 read_at (8 of 8 overloads)]
+ [[link boost_asio.reference.basic_serial_port.lowest_layer_type [*lowest_layer_type]]]
+ [A basic_serial_port is always the lowest layer. ]
+
+ ]
 
+ [
 
-Attempt to read a certain amount of data at the specified offset before returning.
+ [[link boost_asio.reference.basic_serial_port.native_handle_type [*native_handle_type]]]
+ [The native representation of a serial port. ]
+
+ ]
 
+ [
 
- template<
- typename ``[link boost_asio.reference.SyncRandomAccessReadDevice SyncRandomAccessReadDevice]``,
- typename Allocator,
- typename CompletionCondition>
- std::size_t read_at(
- SyncRandomAccessReadDevice & d,
- boost::uint64_t offset,
- basic_streambuf< Allocator > & b,
- CompletionCondition completion_condition,
- boost::system::error_code & ec);
+ [[link boost_asio.reference.basic_serial_port.native_type [*native_type]]]
+ [(Deprecated: Use native_handle_type.) The native representation of a serial port. ]
+
+ ]
 
+ [
 
-This function is used to read a certain number of bytes of data from a random access device at the specified offset. The call will block until one of the following conditions is true:
+ [[link boost_asio.reference.basic_serial_port.service_type [*service_type]]]
+ [The type of the service that will be used to provide I/O operations. ]
+
+ ]
 
+]
 
-* The completion\_condition function object returns 0.
+[heading Member Functions]
+[table
+ [[Name][Description]]
 
-This operation is implemented in terms of zero or more calls to the device's read\_some\_at function.
+ [
+ [[link boost_asio.reference.basic_serial_port.assign [*assign]]]
+ [Assign an existing native serial port to the serial port. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_serial_port.async_read_some [*async_read_some]]]
+ [Start an asynchronous read. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_serial_port.async_write_some [*async_write_some]]]
+ [Start an asynchronous write. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_serial_port.basic_serial_port [*basic_serial_port]]]
+ [Construct a basic_serial_port without opening it.
 
+ Construct and open a basic_serial_port.
 
-[heading Parameters]
-
+ Construct a basic_serial_port on an existing native serial port.
 
-[variablelist
+ Move-construct a basic_serial_port from another. ]
+ ]
   
-[[d][The device from which the data is to be read. The type must support the SyncRandomAccessReadDevice concept.]]
+ [
+ [[link boost_asio.reference.basic_serial_port.cancel [*cancel]]]
+ [Cancel all asynchronous operations associated with the serial port. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_serial_port.close [*close]]]
+ [Close the serial port. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_serial_port.get_io_service [*get_io_service]]]
+ [Get the io_service associated with the object. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_serial_port.get_option [*get_option]]]
+ [Get an option from the serial port. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_serial_port.is_open [*is_open]]]
+ [Determine whether the serial port is open. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_serial_port.lowest_layer [*lowest_layer]]]
+ [Get a reference to the lowest layer.
 
-[[offset][The offset at which the data will be read.]]
+ Get a const reference to the lowest layer. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_serial_port.native [*native]]]
+ [(Deprecated: Use native_handle().) Get the native serial port representation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_serial_port.native_handle [*native_handle]]]
+ [Get the native serial port representation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_serial_port.open [*open]]]
+ [Open the serial port using the specified device name. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_serial_port.operator_eq_ [*operator=]]]
+ [Move-assign a basic_serial_port from another. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_serial_port.read_some [*read_some]]]
+ [Read some data from the serial port. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_serial_port.send_break [*send_break]]]
+ [Send a break sequence to the serial port. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_serial_port.set_option [*set_option]]]
+ [Set an option on the serial port. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_serial_port.write_some [*write_some]]]
+ [Write some data to the serial port. ]
+ ]
+
+]
 
-[[b][The [link boost_asio.reference.basic_streambuf `basic_streambuf`] object into which the data will be read.]]
+[heading Protected Member Functions]
+[table
+ [[Name][Description]]
 
-[[completion_condition][The function object to be called to determine whether the read operation is complete. The signature of the function object must be:
-``
- std::size_t completion_condition(
- // Result of latest read_some_at operation.
- const boost::system::error_code& error,
+ [
+ [[link boost_asio.reference.basic_serial_port.get_implementation [*get_implementation]]]
+ [Get the underlying implementation of the I/O object. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_serial_port.get_service [*get_service]]]
+ [Get the service associated with the I/O object. ]
+ ]
+
+]
 
- // Number of bytes transferred so far.
- std::size_t bytes_transferred
- );
-``
-A return value of 0 indicates that the read operation is complete. A non-zero return value indicates the maximum number of bytes to be read on the next call to the device's read\_some\_at function.]]
+[heading Protected Data Members]
+[table
+ [[Name][Description]]
 
-[[ec][Set to indicate what error occurred, if any.]]
+ [
+ [[link boost_asio.reference.basic_serial_port.implementation [*implementation]]]
+ [(Deprecated: Use get_implementation().) The underlying implementation of the I/O object. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_serial_port.service [*service]]]
+ [(Deprecated: Use get_service().) The service associated with the I/O object. ]
+ ]
 
 ]
 
+The [link boost_asio.reference.basic_serial_port `basic_serial_port`] class template provides functionality that is common to all serial ports.
 
-[heading Return Value]
-
-The number of bytes read. If an error occurs, returns the total number of bytes successfully transferred prior to the error.
 
+[heading Thread Safety]
+
+[*Distinct] [*objects:] Safe.
 
+[*Shared] [*objects:] Unsafe.
 
 
-[endsect]
 
 
-[endsect]
+[heading Requirements]
 
-[section:read_until read_until]
+[*Header: ][^boost/asio/serial_port.hpp]
 
-[indexterm1 read_until]
-Read data into a streambuf until it contains a delimiter, matches a regular expression, or a function object indicates a match.
+[*Convenience header: ][^boost/asio.hpp]
 
-
- template<
- typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
- typename Allocator>
- std::size_t ``[link boost_asio.reference.read_until.overload1 read_until]``(
- SyncReadStream & s,
- boost::asio::basic_streambuf< Allocator > & b,
- char delim);
- `` [''''&raquo;''' [link boost_asio.reference.read_until.overload1 more...]]``
 
- template<
- typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
- typename Allocator>
- std::size_t ``[link boost_asio.reference.read_until.overload2 read_until]``(
- SyncReadStream & s,
- boost::asio::basic_streambuf< Allocator > & b,
- char delim,
- boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.read_until.overload2 more...]]``
+[endsect]
 
- template<
- typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
- typename Allocator>
- std::size_t ``[link boost_asio.reference.read_until.overload3 read_until]``(
- SyncReadStream & s,
- boost::asio::basic_streambuf< Allocator > & b,
- const std::string & delim);
- `` [''''&raquo;''' [link boost_asio.reference.read_until.overload3 more...]]``
 
- template<
- typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
- typename Allocator>
- std::size_t ``[link boost_asio.reference.read_until.overload4 read_until]``(
- SyncReadStream & s,
- boost::asio::basic_streambuf< Allocator > & b,
- const std::string & delim,
- boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.read_until.overload4 more...]]``
+[section:serial_port_base serial_port_base]
 
- template<
- typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
- typename Allocator>
- std::size_t ``[link boost_asio.reference.read_until.overload5 read_until]``(
- SyncReadStream & s,
- boost::asio::basic_streambuf< Allocator > & b,
- const boost::regex & expr);
- `` [''''&raquo;''' [link boost_asio.reference.read_until.overload5 more...]]``
 
- template<
- typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
- typename Allocator>
- std::size_t ``[link boost_asio.reference.read_until.overload6 read_until]``(
- SyncReadStream & s,
- boost::asio::basic_streambuf< Allocator > & b,
- const boost::regex & expr,
- boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.read_until.overload6 more...]]``
+The [link boost_asio.reference.serial_port_base `serial_port_base`] class is used as a base for the [link boost_asio.reference.basic_serial_port `basic_serial_port`] class template so that we have a common place to define the serial port options.
 
- template<
- typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
- typename Allocator,
- typename MatchCondition>
- std::size_t ``[link boost_asio.reference.read_until.overload7 read_until]``(
- SyncReadStream & s,
- boost::asio::basic_streambuf< Allocator > & b,
- MatchCondition match_condition,
- typename boost::enable_if< is_match_condition< MatchCondition > >::type * = 0);
- `` [''''&raquo;''' [link boost_asio.reference.read_until.overload7 more...]]``
 
- template<
- typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
- typename Allocator,
- typename MatchCondition>
- std::size_t ``[link boost_asio.reference.read_until.overload8 read_until]``(
- SyncReadStream & s,
- boost::asio::basic_streambuf< Allocator > & b,
- MatchCondition match_condition,
- boost::system::error_code & ec,
- typename boost::enable_if< is_match_condition< MatchCondition > >::type * = 0);
- `` [''''&raquo;''' [link boost_asio.reference.read_until.overload8 more...]]``
+ class serial_port_base
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/read_until.hpp]
+[heading Types]
+[table
+ [[Name][Description]]
 
-[*Convenience header: ][^boost/asio.hpp]
+ [
 
+ [[link boost_asio.reference.serial_port_base__baud_rate [*baud_rate]]]
+ [Serial port option to permit changing the baud rate. ]
+
+ ]
 
-[section:overload1 read_until (1 of 8 overloads)]
+ [
 
+ [[link boost_asio.reference.serial_port_base__character_size [*character_size]]]
+ [Serial port option to permit changing the character size. ]
+
+ ]
 
-Read data into a streambuf until it contains a specified delimiter.
+ [
 
+ [[link boost_asio.reference.serial_port_base__flow_control [*flow_control]]]
+ [Serial port option to permit changing the flow control. ]
+
+ ]
 
- template<
- typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
- typename Allocator>
- std::size_t read_until(
- SyncReadStream & s,
- boost::asio::basic_streambuf< Allocator > & b,
- char delim);
+ [
 
+ [[link boost_asio.reference.serial_port_base__parity [*parity]]]
+ [Serial port option to permit changing the parity. ]
+
+ ]
 
-This function is used to read data into the specified streambuf until the streambuf's get area contains the specified delimiter. The call will block until one of the following conditions is true:
+ [
 
+ [[link boost_asio.reference.serial_port_base__stop_bits [*stop_bits]]]
+ [Serial port option to permit changing the number of stop bits. ]
+
+ ]
 
-* The get area of the streambuf contains the specified delimiter.
+]
 
+[heading Protected Member Functions]
+[table
+ [[Name][Description]]
 
-* An error occurred.
+ [
+ [[link boost_asio.reference.serial_port_base._serial_port_base [*~serial_port_base]]]
+ [Protected destructor to prevent deletion through this type. ]
+ ]
+
+]
 
-This operation is implemented in terms of zero or more calls to the stream's read\_some function. If the streambuf's get area already contains the delimiter, the function returns immediately.
+[heading Requirements]
 
+[*Header: ][^boost/asio/serial_port_base.hpp]
 
-[heading Parameters]
-
+[*Convenience header: ][^boost/asio.hpp]
 
-[variablelist
-
-[[s][The stream from which the data is to be read. The type must support the SyncReadStream concept.]]
 
-[[b][A streambuf object into which the data will be read.]]
+[section:_serial_port_base serial_port_base::~serial_port_base]
 
-[[delim][The delimiter character.]]
+[indexterm2 ~serial_port_base..serial_port_base]
+Protected destructor to prevent deletion through this type.
 
-]
 
+ ~serial_port_base();
 
-[heading Return Value]
-
-The number of bytes in the streambuf's get area up to and including the delimiter.
 
 
-[heading Exceptions]
-
+[endsect]
 
-[variablelist
-
-[[boost::system::system_error][Thrown on failure.]]
 
-]
 
+[endsect]
 
-[heading Remarks]
-
-After a successful read\_until operation, the streambuf may contain additional data beyond the delimiter. An application will typically leave that data in the streambuf for a subsequent read\_until operation to examine.
+[section:serial_port_base__baud_rate serial_port_base::baud_rate]
 
 
-[heading Example]
-
-To read data into a streambuf until a newline is encountered:
+Serial port option to permit changing the baud rate.
 
- boost::asio::streambuf b;
- boost::asio::read_until(s, b, '\n');
- std::istream is(&b);
- std::string line;
- std::getline(is, line);
 
+ class baud_rate
 
-After the `read_until` operation completes successfully, the buffer `b` contains the delimiter:
 
- { 'a', 'b', ..., 'c', '\n', 'd', 'e', ... }
+[heading Member Functions]
+[table
+ [[Name][Description]]
 
+ [
+ [[link boost_asio.reference.serial_port_base__baud_rate.baud_rate [*baud_rate]]]
+ []
+ ]
+
+ [
+ [[link boost_asio.reference.serial_port_base__baud_rate.load [*load]]]
+ []
+ ]
+
+ [
+ [[link boost_asio.reference.serial_port_base__baud_rate.store [*store]]]
+ []
+ ]
+
+ [
+ [[link boost_asio.reference.serial_port_base__baud_rate.value [*value]]]
+ []
+ ]
+
+]
 
-The call to `std::getline` then extracts the data up to and including the delimiter, so that the string `line` contains:
+Implements changing the baud rate for a given serial port.
 
- { 'a', 'b', ..., 'c', '\n' }
+[heading Requirements]
 
+[*Header: ][^boost/asio/serial_port_base.hpp]
 
-The remaining data is left in the buffer `b` as follows:
+[*Convenience header: ][^boost/asio.hpp]
 
- { 'd', 'e', ... }
 
+[section:baud_rate serial_port_base::baud_rate::baud_rate]
 
-This data may be the start of a new line, to be extracted by a subsequent `read_until` operation.
+[indexterm2 baud_rate..serial_port_base::baud_rate]
 
+ baud_rate(
+ unsigned int rate = 0);
 
 
 
@@ -75562,587 +78983,598 @@
 
 
 
-[section:overload2 read_until (2 of 8 overloads)]
-
-
-Read data into a streambuf until it contains a specified delimiter.
+[section:load serial_port_base::baud_rate::load]
 
+[indexterm2 load..serial_port_base::baud_rate]
 
- template<
- typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
- typename Allocator>
- std::size_t read_until(
- SyncReadStream & s,
- boost::asio::basic_streambuf< Allocator > & b,
- char delim,
+ boost::system::error_code load(
+ const BOOST_ASIO_OPTION_STORAGE & storage,
       boost::system::error_code & ec);
 
 
-This function is used to read data into the specified streambuf until the streambuf's get area contains the specified delimiter. The call will block until one of the following conditions is true:
 
+[endsect]
 
-* The get area of the streambuf contains the specified delimiter.
 
 
-* An error occurred.
+[section:store serial_port_base::baud_rate::store]
 
-This operation is implemented in terms of zero or more calls to the stream's read\_some function. If the streambuf's get area already contains the delimiter, the function returns immediately.
+[indexterm2 store..serial_port_base::baud_rate]
 
+ boost::system::error_code store(
+ BOOST_ASIO_OPTION_STORAGE & storage,
+ boost::system::error_code & ec) const;
 
-[heading Parameters]
-
 
-[variablelist
-
-[[s][The stream from which the data is to be read. The type must support the SyncReadStream concept.]]
 
-[[b][A streambuf object into which the data will be read.]]
+[endsect]
 
-[[delim][The delimiter character.]]
 
-[[ec][Set to indicate what error occurred, if any.]]
 
-]
+[section:value serial_port_base::baud_rate::value]
 
+[indexterm2 value..serial_port_base::baud_rate]
 
-[heading Return Value]
-
-The number of bytes in the streambuf's get area up to and including the delimiter. Returns 0 if an error occurred.
+ unsigned int value() const;
 
 
-[heading Remarks]
-
-After a successful read\_until operation, the streambuf may contain additional data beyond the delimiter. An application will typically leave that data in the streambuf for a subsequent read\_until operation to examine.
 
+[endsect]
 
 
 
 [endsect]
 
+[section:serial_port_base__character_size serial_port_base::character_size]
 
 
-[section:overload3 read_until (3 of 8 overloads)]
+Serial port option to permit changing the character size.
 
 
-Read data into a streambuf until it contains a specified delimiter.
+ class character_size
 
 
- template<
- typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
- typename Allocator>
- std::size_t read_until(
- SyncReadStream & s,
- boost::asio::basic_streambuf< Allocator > & b,
- const std::string & delim);
+[heading Member Functions]
+[table
+ [[Name][Description]]
 
+ [
+ [[link boost_asio.reference.serial_port_base__character_size.character_size [*character_size]]]
+ []
+ ]
+
+ [
+ [[link boost_asio.reference.serial_port_base__character_size.load [*load]]]
+ []
+ ]
+
+ [
+ [[link boost_asio.reference.serial_port_base__character_size.store [*store]]]
+ []
+ ]
+
+ [
+ [[link boost_asio.reference.serial_port_base__character_size.value [*value]]]
+ []
+ ]
+
+]
 
-This function is used to read data into the specified streambuf until the streambuf's get area contains the specified delimiter. The call will block until one of the following conditions is true:
+Implements changing the character size for a given serial port.
 
+[heading Requirements]
 
-* The get area of the streambuf contains the specified delimiter.
+[*Header: ][^boost/asio/serial_port_base.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
-* An error occurred.
 
-This operation is implemented in terms of zero or more calls to the stream's read\_some function. If the streambuf's get area already contains the delimiter, the function returns immediately.
+[section:character_size serial_port_base::character_size::character_size]
 
+[indexterm2 character_size..serial_port_base::character_size]
 
-[heading Parameters]
-
+ character_size(
+ unsigned int t = 8);
 
-[variablelist
-
-[[s][The stream from which the data is to be read. The type must support the SyncReadStream concept.]]
 
-[[b][A streambuf object into which the data will be read.]]
 
-[[delim][The delimiter string.]]
+[endsect]
 
-]
 
 
-[heading Return Value]
-
-The number of bytes in the streambuf's get area up to and including the delimiter.
+[section:load serial_port_base::character_size::load]
 
+[indexterm2 load..serial_port_base::character_size]
 
-[heading Exceptions]
-
+ boost::system::error_code load(
+ const BOOST_ASIO_OPTION_STORAGE & storage,
+ boost::system::error_code & ec);
 
-[variablelist
-
-[[boost::system::system_error][Thrown on failure.]]
 
-]
 
+[endsect]
 
-[heading Remarks]
-
-After a successful read\_until operation, the streambuf may contain additional data beyond the delimiter. An application will typically leave that data in the streambuf for a subsequent read\_until operation to examine.
 
 
-[heading Example]
-
-To read data into a streambuf until a newline is encountered:
+[section:store serial_port_base::character_size::store]
 
- boost::asio::streambuf b;
- boost::asio::read_until(s, b, "\r\n");
- std::istream is(&b);
- std::string line;
- std::getline(is, line);
+[indexterm2 store..serial_port_base::character_size]
 
+ boost::system::error_code store(
+ BOOST_ASIO_OPTION_STORAGE & storage,
+ boost::system::error_code & ec) const;
 
-After the `read_until` operation completes successfully, the buffer `b` contains the delimiter:
 
- { 'a', 'b', ..., 'c', '\r', '\n', 'd', 'e', ... }
 
+[endsect]
 
-The call to `std::getline` then extracts the data up to and including the delimiter, so that the string `line` contains:
 
- { 'a', 'b', ..., 'c', '\r', '\n' }
 
+[section:value serial_port_base::character_size::value]
 
-The remaining data is left in the buffer `b` as follows:
+[indexterm2 value..serial_port_base::character_size]
 
- { 'd', 'e', ... }
+ unsigned int value() const;
 
 
-This data may be the start of a new line, to be extracted by a subsequent `read_until` operation.
 
+[endsect]
 
 
 
 [endsect]
 
+[section:serial_port_base__flow_control serial_port_base::flow_control]
 
 
-[section:overload4 read_until (4 of 8 overloads)]
+Serial port option to permit changing the flow control.
 
 
-Read data into a streambuf until it contains a specified delimiter.
+ class flow_control
 
 
- template<
- typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
- typename Allocator>
- std::size_t read_until(
- SyncReadStream & s,
- boost::asio::basic_streambuf< Allocator > & b,
- const std::string & delim,
- boost::system::error_code & ec);
+[heading Types]
+[table
+ [[Name][Description]]
 
+ [
 
-This function is used to read data into the specified streambuf until the streambuf's get area contains the specified delimiter. The call will block until one of the following conditions is true:
+ [[link boost_asio.reference.serial_port_base__flow_control.type [*type]]]
+ []
+
+ ]
 
+]
 
-* The get area of the streambuf contains the specified delimiter.
+[heading Member Functions]
+[table
+ [[Name][Description]]
 
+ [
+ [[link boost_asio.reference.serial_port_base__flow_control.flow_control [*flow_control]]]
+ []
+ ]
+
+ [
+ [[link boost_asio.reference.serial_port_base__flow_control.load [*load]]]
+ []
+ ]
+
+ [
+ [[link boost_asio.reference.serial_port_base__flow_control.store [*store]]]
+ []
+ ]
+
+ [
+ [[link boost_asio.reference.serial_port_base__flow_control.value [*value]]]
+ []
+ ]
+
+]
 
-* An error occurred.
+Implements changing the flow control for a given serial port.
 
-This operation is implemented in terms of zero or more calls to the stream's read\_some function. If the streambuf's get area already contains the delimiter, the function returns immediately.
+[heading Requirements]
 
+[*Header: ][^boost/asio/serial_port_base.hpp]
 
-[heading Parameters]
-
+[*Convenience header: ][^boost/asio.hpp]
 
-[variablelist
-
-[[s][The stream from which the data is to be read. The type must support the SyncReadStream concept.]]
 
-[[b][A streambuf object into which the data will be read.]]
+[section:flow_control serial_port_base::flow_control::flow_control]
 
-[[delim][The delimiter string.]]
+[indexterm2 flow_control..serial_port_base::flow_control]
 
-[[ec][Set to indicate what error occurred, if any.]]
+ flow_control(
+ type t = none);
 
-]
 
 
-[heading Return Value]
-
-The number of bytes in the streambuf's get area up to and including the delimiter. Returns 0 if an error occurred.
+[endsect]
 
 
-[heading Remarks]
-
-After a successful read\_until operation, the streambuf may contain additional data beyond the delimiter. An application will typically leave that data in the streambuf for a subsequent read\_until operation to examine.
 
+[section:load serial_port_base::flow_control::load]
 
+[indexterm2 load..serial_port_base::flow_control]
 
+ boost::system::error_code load(
+ const BOOST_ASIO_OPTION_STORAGE & storage,
+ boost::system::error_code & ec);
 
-[endsect]
 
 
+[endsect]
 
-[section:overload5 read_until (5 of 8 overloads)]
 
 
-Read data into a streambuf until some part of the data it contains matches a regular expression.
+[section:store serial_port_base::flow_control::store]
 
+[indexterm2 store..serial_port_base::flow_control]
 
- template<
- typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
- typename Allocator>
- std::size_t read_until(
- SyncReadStream & s,
- boost::asio::basic_streambuf< Allocator > & b,
- const boost::regex & expr);
+ boost::system::error_code store(
+ BOOST_ASIO_OPTION_STORAGE & storage,
+ boost::system::error_code & ec) const;
 
 
-This function is used to read data into the specified streambuf until the streambuf's get area contains some data that matches a regular expression. The call will block until one of the following conditions is true:
 
+[endsect]
 
-* A substring of the streambuf's get area matches the regular expression.
 
 
-* An error occurred.
+[section:type serial_port_base::flow_control::type]
 
-This operation is implemented in terms of zero or more calls to the stream's read\_some function. If the streambuf's get area already contains data that matches the regular expression, the function returns immediately.
+[indexterm2 type..serial_port_base::flow_control]
 
+ enum type
 
-[heading Parameters]
-
+[indexterm2 none..serial_port_base::flow_control]
+[indexterm2 software..serial_port_base::flow_control]
+[indexterm2 hardware..serial_port_base::flow_control]
 
+[heading Values]
 [variablelist
-
-[[s][The stream from which the data is to be read. The type must support the SyncReadStream concept.]]
 
-[[b][A streambuf object into which the data will be read.]]
+ [
+ [none]
+ []
+ ]
 
-[[expr][The regular expression.]]
+ [
+ [software]
+ []
+ ]
+
+ [
+ [hardware]
+ []
+ ]
 
 ]
 
 
-[heading Return Value]
-
-The number of bytes in the streambuf's get area up to and including the substring that matches the regular expression.
 
+[endsect]
 
-[heading Exceptions]
-
 
-[variablelist
-
-[[boost::system::system_error][Thrown on failure.]]
 
-]
+[section:value serial_port_base::flow_control::value]
 
+[indexterm2 value..serial_port_base::flow_control]
 
-[heading Remarks]
-
-After a successful read\_until operation, the streambuf may contain additional data beyond that which matched the regular expression. An application will typically leave that data in the streambuf for a subsequent read\_until operation to examine.
+ type value() const;
 
 
-[heading Example]
-
-To read data into a streambuf until a CR-LF sequence is encountered:
 
- boost::asio::streambuf b;
- boost::asio::read_until(s, b, boost::regex("\r\n"));
- std::istream is(&b);
- std::string line;
- std::getline(is, line);
+[endsect]
 
 
-After the `read_until` operation completes successfully, the buffer `b` contains the data which matched the regular expression:
 
- { 'a', 'b', ..., 'c', '\r', '\n', 'd', 'e', ... }
+[endsect]
 
+[section:serial_port_base__parity serial_port_base::parity]
 
-The call to `std::getline` then extracts the data up to and including the match, so that the string `line` contains:
 
- { 'a', 'b', ..., 'c', '\r', '\n' }
+Serial port option to permit changing the parity.
 
 
-The remaining data is left in the buffer `b` as follows:
+ class parity
 
- { 'd', 'e', ... }
 
+[heading Types]
+[table
+ [[Name][Description]]
 
-This data may be the start of a new line, to be extracted by a subsequent `read_until` operation.
+ [
 
+ [[link boost_asio.reference.serial_port_base__parity.type [*type]]]
+ []
+
+ ]
 
+]
 
+[heading Member Functions]
+[table
+ [[Name][Description]]
 
-[endsect]
+ [
+ [[link boost_asio.reference.serial_port_base__parity.load [*load]]]
+ []
+ ]
+
+ [
+ [[link boost_asio.reference.serial_port_base__parity.parity [*parity]]]
+ []
+ ]
+
+ [
+ [[link boost_asio.reference.serial_port_base__parity.store [*store]]]
+ []
+ ]
+
+ [
+ [[link boost_asio.reference.serial_port_base__parity.value [*value]]]
+ []
+ ]
+
+]
+
+Implements changing the parity for a given serial port.
 
+[heading Requirements]
 
+[*Header: ][^boost/asio/serial_port_base.hpp]
 
-[section:overload6 read_until (6 of 8 overloads)]
+[*Convenience header: ][^boost/asio.hpp]
 
 
-Read data into a streambuf until some part of the data it contains matches a regular expression.
+[section:load serial_port_base::parity::load]
 
+[indexterm2 load..serial_port_base::parity]
 
- template<
- typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
- typename Allocator>
- std::size_t read_until(
- SyncReadStream & s,
- boost::asio::basic_streambuf< Allocator > & b,
- const boost::regex & expr,
+ boost::system::error_code load(
+ const BOOST_ASIO_OPTION_STORAGE & storage,
       boost::system::error_code & ec);
 
 
-This function is used to read data into the specified streambuf until the streambuf's get area contains some data that matches a regular expression. The call will block until one of the following conditions is true:
 
+[endsect]
 
-* A substring of the streambuf's get area matches the regular expression.
 
 
-* An error occurred.
+[section:parity serial_port_base::parity::parity]
 
-This operation is implemented in terms of zero or more calls to the stream's read\_some function. If the streambuf's get area already contains data that matches the regular expression, the function returns immediately.
+[indexterm2 parity..serial_port_base::parity]
 
+ parity(
+ type t = none);
 
-[heading Parameters]
-
 
-[variablelist
-
-[[s][The stream from which the data is to be read. The type must support the SyncReadStream concept.]]
 
-[[b][A streambuf object into which the data will be read.]]
+[endsect]
 
-[[expr][The regular expression.]]
 
-[[ec][Set to indicate what error occurred, if any.]]
 
-]
+[section:store serial_port_base::parity::store]
+
+[indexterm2 store..serial_port_base::parity]
+
+ boost::system::error_code store(
+ BOOST_ASIO_OPTION_STORAGE & storage,
+ boost::system::error_code & ec) const;
+
+
+
+[endsect]
+
 
 
-[heading Return Value]
-
-The number of bytes in the streambuf's get area up to and including the substring that matches the regular expression. Returns 0 if an error occurred.
+[section:type serial_port_base::parity::type]
 
+[indexterm2 type..serial_port_base::parity]
 
-[heading Remarks]
-
-After a successful read\_until operation, the streambuf may contain additional data beyond that which matched the regular expression. An application will typically leave that data in the streambuf for a subsequent read\_until operation to examine.
+ enum type
 
+[indexterm2 none..serial_port_base::parity]
+[indexterm2 odd..serial_port_base::parity]
+[indexterm2 even..serial_port_base::parity]
 
+[heading Values]
+[variablelist
 
+ [
+ [none]
+ []
+ ]
 
-[endsect]
+ [
+ [odd]
+ []
+ ]
 
+ [
+ [even]
+ []
+ ]
 
+]
 
-[section:overload7 read_until (7 of 8 overloads)]
 
 
-Read data into a streambuf until a function object indicates a match.
+[endsect]
 
 
- template<
- typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
- typename Allocator,
- typename MatchCondition>
- std::size_t read_until(
- SyncReadStream & s,
- boost::asio::basic_streambuf< Allocator > & b,
- MatchCondition match_condition,
- typename boost::enable_if< is_match_condition< MatchCondition > >::type * = 0);
 
+[section:value serial_port_base::parity::value]
 
-This function is used to read data into the specified streambuf until a user-defined match condition function object, when applied to the data contained in the streambuf, indicates a successful match. The call will block until one of the following conditions is true:
+[indexterm2 value..serial_port_base::parity]
 
+ type value() const;
 
-* The match condition function object returns a std::pair where the second element evaluates to true.
 
 
-* An error occurred.
+[endsect]
 
-This operation is implemented in terms of zero or more calls to the stream's read\_some function. If the match condition function object already indicates a match, the function returns immediately.
 
 
-[heading Parameters]
-
+[endsect]
 
-[variablelist
-
-[[s][The stream from which the data is to be read. The type must support the SyncReadStream concept.]]
+[section:serial_port_base__stop_bits serial_port_base::stop_bits]
 
-[[b][A streambuf object into which the data will be read.]]
 
-[[match_condition][The function object to be called to determine whether a match exists. The signature of the function object must be:
-``
- pair<iterator, bool> match_condition(iterator begin, iterator end);
-``
-where `iterator` represents the type:
-``
- buffers_iterator<basic_streambuf<Allocator>::const_buffers_type>
-``
-The iterator parameters `begin` and `end` define the range of bytes to be scanned to determine whether there is a match. The `first` member of the return value is an iterator marking one-past-the-end of the bytes that have been consumed by the match function. This iterator is used to calculate the `begin` parameter for any subsequent invocation of the match condition. The `second` member of the return value is true if a match has been found, false otherwise.]]
+Serial port option to permit changing the number of stop bits.
 
-]
 
+ class stop_bits
 
-[heading Return Value]
-
-The number of bytes in the streambuf's get area that have been fully consumed by the match function.
 
+[heading Types]
+[table
+ [[Name][Description]]
 
-[heading Exceptions]
-
+ [
 
-[variablelist
+ [[link boost_asio.reference.serial_port_base__stop_bits.type [*type]]]
+ []
   
-[[boost::system::system_error][Thrown on failure.]]
+ ]
 
 ]
 
+[heading Member Functions]
+[table
+ [[Name][Description]]
 
-[heading Remarks]
-
-After a successful read\_until operation, the streambuf may contain additional data beyond that which matched the function object. An application will typically leave that data in the streambuf for a subsequent
-
-The default implementation of the `is_match_condition` type trait evaluates to true for function pointers and function objects with a `result_type` typedef. It must be specialised for other user-defined function objects.
+ [
+ [[link boost_asio.reference.serial_port_base__stop_bits.load [*load]]]
+ []
+ ]
+
+ [
+ [[link boost_asio.reference.serial_port_base__stop_bits.stop_bits [*stop_bits]]]
+ []
+ ]
+
+ [
+ [[link boost_asio.reference.serial_port_base__stop_bits.store [*store]]]
+ []
+ ]
+
+ [
+ [[link boost_asio.reference.serial_port_base__stop_bits.value [*value]]]
+ []
+ ]
+
+]
 
+Implements changing the number of stop bits for a given serial port.
 
-[heading Examples]
-
-To read data into a streambuf until whitespace is encountered:
+[heading Requirements]
 
- typedef boost::asio::buffers_iterator<
- boost::asio::streambuf::const_buffers_type> iterator;
+[*Header: ][^boost/asio/serial_port_base.hpp]
 
- std::pair<iterator, bool>
- match_whitespace(iterator begin, iterator end)
- {
- iterator i = begin;
- while (i != end)
- if (std::isspace(*i++))
- return std::make_pair(i, true);
- return std::make_pair(i, false);
- }
- ...
- boost::asio::streambuf b;
- boost::asio::read_until(s, b, match_whitespace);
+[*Convenience header: ][^boost/asio.hpp]
 
 
+[section:load serial_port_base::stop_bits::load]
 
+[indexterm2 load..serial_port_base::stop_bits]
 
-To read data into a streambuf until a matching character is found:
+ boost::system::error_code load(
+ const BOOST_ASIO_OPTION_STORAGE & storage,
+ boost::system::error_code & ec);
 
- class match_char
- {
- public:
- explicit match_char(char c) : c_(c) {}
 
- template <typename Iterator>
- std::pair<Iterator, bool> operator()(
- Iterator begin, Iterator end) const
- {
- Iterator i = begin;
- while (i != end)
- if (c_ == *i++)
- return std::make_pair(i, true);
- return std::make_pair(i, false);
- }
 
- private:
- char c_;
- };
+[endsect]
 
- namespace asio {
- template <> struct is_match_condition<match_char>
- : public boost::true_type {};
- } // namespace asio
- ...
- boost::asio::streambuf b;
- boost::asio::read_until(s, b, match_char('a'));
 
 
+[section:stop_bits serial_port_base::stop_bits::stop_bits]
 
+[indexterm2 stop_bits..serial_port_base::stop_bits]
 
+ stop_bits(
+ type t = one);
 
-[endsect]
 
 
+[endsect]
 
-[section:overload8 read_until (8 of 8 overloads)]
 
 
-Read data into a streambuf until a function object indicates a match.
+[section:store serial_port_base::stop_bits::store]
 
+[indexterm2 store..serial_port_base::stop_bits]
 
- template<
- typename ``[link boost_asio.reference.SyncReadStream SyncReadStream]``,
- typename Allocator,
- typename MatchCondition>
- std::size_t read_until(
- SyncReadStream & s,
- boost::asio::basic_streambuf< Allocator > & b,
- MatchCondition match_condition,
- boost::system::error_code & ec,
- typename boost::enable_if< is_match_condition< MatchCondition > >::type * = 0);
+ boost::system::error_code store(
+ BOOST_ASIO_OPTION_STORAGE & storage,
+ boost::system::error_code & ec) const;
 
 
-This function is used to read data into the specified streambuf until a user-defined match condition function object, when applied to the data contained in the streambuf, indicates a successful match. The call will block until one of the following conditions is true:
 
+[endsect]
 
-* The match condition function object returns a std::pair where the second element evaluates to true.
 
 
-* An error occurred.
+[section:type serial_port_base::stop_bits::type]
 
-This operation is implemented in terms of zero or more calls to the stream's read\_some function. If the match condition function object already indicates a match, the function returns immediately.
+[indexterm2 type..serial_port_base::stop_bits]
 
+ enum type
 
-[heading Parameters]
-
+[indexterm2 one..serial_port_base::stop_bits]
+[indexterm2 onepointfive..serial_port_base::stop_bits]
+[indexterm2 two..serial_port_base::stop_bits]
 
+[heading Values]
 [variablelist
-
-[[s][The stream from which the data is to be read. The type must support the SyncReadStream concept.]]
 
-[[b][A streambuf object into which the data will be read.]]
+ [
+ [one]
+ []
+ ]
 
-[[match_condition][The function object to be called to determine whether a match exists. The signature of the function object must be:
-``
- pair<iterator, bool> match_condition(iterator begin, iterator end);
-``
-where `iterator` represents the type:
-``
- buffers_iterator<basic_streambuf<Allocator>::const_buffers_type>
-``
-The iterator parameters `begin` and `end` define the range of bytes to be scanned to determine whether there is a match. The `first` member of the return value is an iterator marking one-past-the-end of the bytes that have been consumed by the match function. This iterator is used to calculate the `begin` parameter for any subsequent invocation of the match condition. The `second` member of the return value is true if a match has been found, false otherwise.]]
+ [
+ [onepointfive]
+ []
+ ]
 
-[[ec][Set to indicate what error occurred, if any.]]
+ [
+ [two]
+ []
+ ]
 
 ]
 
 
-[heading Return Value]
-
-The number of bytes in the streambuf's get area that have been fully consumed by the match function. Returns 0 if an error occurred.
 
+[endsect]
 
-[heading Remarks]
-
-After a successful read\_until operation, the streambuf may contain additional data beyond that which matched the function object. An application will typically leave that data in the streambuf for a subsequent
 
-The default implementation of the `is_match_condition` type trait evaluates to true for function pointers and function objects with a `result_type` typedef. It must be specialised for other user-defined function objects.
 
+[section:value serial_port_base::stop_bits::value]
+
+[indexterm2 value..serial_port_base::stop_bits]
+
+ type value() const;
 
 
 
 [endsect]
 
 
+
 [endsect]
 
-[section:seq_packet_socket_service seq_packet_socket_service]
+[section:serial_port_service serial_port_service]
 
 
-Default service implementation for a sequenced packet socket.
+Default service implementation for a serial port.
 
 
- template<
- typename ``[link boost_asio.reference.Protocol Protocol]``>
- class seq_packet_socket_service :
+ class serial_port_service :
     public io_service::service
 
 
@@ -76152,36 +79584,22 @@
 
   [
 
- [[link boost_asio.reference.seq_packet_socket_service.endpoint_type [*endpoint_type]]]
- [The endpoint type. ]
-
- ]
-
- [
-
- [[link boost_asio.reference.seq_packet_socket_service.implementation_type [*implementation_type]]]
- [The type of a sequenced packet socket implementation. ]
-
- ]
-
- [
-
- [[link boost_asio.reference.seq_packet_socket_service.native_handle_type [*native_handle_type]]]
- [The native socket type. ]
+ [[link boost_asio.reference.serial_port_service.implementation_type [*implementation_type]]]
+ [The type of a serial port implementation. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.seq_packet_socket_service.native_type [*native_type]]]
- [(Deprecated: Use native_handle_type.) The native socket type. ]
+ [[link boost_asio.reference.serial_port_service.native_handle_type [*native_handle_type]]]
+ [The native handle type. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.seq_packet_socket_service.protocol_type [*protocol_type]]]
- [The protocol type. ]
+ [[link boost_asio.reference.serial_port_service.native_type [*native_type]]]
+ [(Deprecated: Use native_handle_type.) The native handle type. ]
   
   ]
 
@@ -76192,157 +79610,103 @@
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.seq_packet_socket_service.assign [*assign]]]
- [Assign an existing native socket to a sequenced packet socket. ]
- ]
-
- [
- [[link boost_asio.reference.seq_packet_socket_service.async_connect [*async_connect]]]
- [Start an asynchronous connect. ]
- ]
-
- [
- [[link boost_asio.reference.seq_packet_socket_service.async_receive [*async_receive]]]
- [Start an asynchronous receive. ]
- ]
-
- [
- [[link boost_asio.reference.seq_packet_socket_service.async_send [*async_send]]]
- [Start an asynchronous send. ]
- ]
-
- [
- [[link boost_asio.reference.seq_packet_socket_service.at_mark [*at_mark]]]
- [Determine whether the socket is at the out-of-band data mark. ]
- ]
-
- [
- [[link boost_asio.reference.seq_packet_socket_service.available [*available]]]
- [Determine the number of bytes available for reading. ]
+ [[link boost_asio.reference.serial_port_service.assign [*assign]]]
+ [Assign an existing native handle to a serial port. ]
   ]
   
   [
- [[link boost_asio.reference.seq_packet_socket_service.bind [*bind]]]
- [Bind the sequenced packet socket to the specified local endpoint. ]
+ [[link boost_asio.reference.serial_port_service.async_read_some [*async_read_some]]]
+ [Start an asynchronous read. ]
   ]
   
   [
- [[link boost_asio.reference.seq_packet_socket_service.cancel [*cancel]]]
- [Cancel all asynchronous operations associated with the socket. ]
+ [[link boost_asio.reference.serial_port_service.async_write_some [*async_write_some]]]
+ [Start an asynchronous write. ]
   ]
   
   [
- [[link boost_asio.reference.seq_packet_socket_service.close [*close]]]
- [Close a sequenced packet socket implementation. ]
+ [[link boost_asio.reference.serial_port_service.cancel [*cancel]]]
+ [Cancel all asynchronous operations associated with the handle. ]
   ]
   
   [
- [[link boost_asio.reference.seq_packet_socket_service.connect [*connect]]]
- [Connect the sequenced packet socket to the specified endpoint. ]
+ [[link boost_asio.reference.serial_port_service.close [*close]]]
+ [Close a serial port implementation. ]
   ]
   
   [
- [[link boost_asio.reference.seq_packet_socket_service.construct [*construct]]]
- [Construct a new sequenced packet socket implementation. ]
+ [[link boost_asio.reference.serial_port_service.construct [*construct]]]
+ [Construct a new serial port implementation. ]
   ]
   
   [
- [[link boost_asio.reference.seq_packet_socket_service.destroy [*destroy]]]
- [Destroy a sequenced packet socket implementation. ]
+ [[link boost_asio.reference.serial_port_service.destroy [*destroy]]]
+ [Destroy a serial port implementation. ]
   ]
   
   [
- [[link boost_asio.reference.seq_packet_socket_service.get_io_service [*get_io_service]]]
+ [[link boost_asio.reference.serial_port_service.get_io_service [*get_io_service]]]
     [Get the io_service object that owns the service. ]
   ]
   
   [
- [[link boost_asio.reference.seq_packet_socket_service.get_option [*get_option]]]
- [Get a socket option. ]
- ]
-
- [
- [[link boost_asio.reference.seq_packet_socket_service.io_control [*io_control]]]
- [Perform an IO control command on the socket. ]
- ]
-
- [
- [[link boost_asio.reference.seq_packet_socket_service.is_open [*is_open]]]
- [Determine whether the socket is open. ]
- ]
-
- [
- [[link boost_asio.reference.seq_packet_socket_service.local_endpoint [*local_endpoint]]]
- [Get the local endpoint. ]
- ]
-
- [
- [[link boost_asio.reference.seq_packet_socket_service.move_assign [*move_assign]]]
- [Move-assign from another sequenced packet socket implementation. ]
- ]
-
- [
- [[link boost_asio.reference.seq_packet_socket_service.move_construct [*move_construct]]]
- [Move-construct a new sequenced packet socket implementation. ]
+ [[link boost_asio.reference.serial_port_service.get_option [*get_option]]]
+ [Get a serial port option. ]
   ]
   
   [
- [[link boost_asio.reference.seq_packet_socket_service.native [*native]]]
- [(Deprecated: Use native_handle().) Get the native socket implementation. ]
+ [[link boost_asio.reference.serial_port_service.is_open [*is_open]]]
+ [Determine whether the handle is open. ]
   ]
   
   [
- [[link boost_asio.reference.seq_packet_socket_service.native_handle [*native_handle]]]
- [Get the native socket implementation. ]
+ [[link boost_asio.reference.serial_port_service.move_assign [*move_assign]]]
+ [Move-assign from another serial port implementation. ]
   ]
   
   [
- [[link boost_asio.reference.seq_packet_socket_service.native_non_blocking [*native_non_blocking]]]
- [Gets the non-blocking mode of the native socket implementation.
-
- Sets the non-blocking mode of the native socket implementation. ]
+ [[link boost_asio.reference.serial_port_service.move_construct [*move_construct]]]
+ [Move-construct a new serial port implementation. ]
   ]
   
   [
- [[link boost_asio.reference.seq_packet_socket_service.non_blocking [*non_blocking]]]
- [Gets the non-blocking mode of the socket.
-
- Sets the non-blocking mode of the socket. ]
+ [[link boost_asio.reference.serial_port_service.native [*native]]]
+ [(Deprecated: Use native_handle().) Get the native handle implementation. ]
   ]
   
   [
- [[link boost_asio.reference.seq_packet_socket_service.open [*open]]]
- [Open a sequenced packet socket. ]
+ [[link boost_asio.reference.serial_port_service.native_handle [*native_handle]]]
+ [Get the native handle implementation. ]
   ]
   
   [
- [[link boost_asio.reference.seq_packet_socket_service.receive [*receive]]]
- [Receive some data from the peer. ]
+ [[link boost_asio.reference.serial_port_service.open [*open]]]
+ [Open a serial port. ]
   ]
   
   [
- [[link boost_asio.reference.seq_packet_socket_service.remote_endpoint [*remote_endpoint]]]
- [Get the remote endpoint. ]
+ [[link boost_asio.reference.serial_port_service.read_some [*read_some]]]
+ [Read some data from the stream. ]
   ]
   
   [
- [[link boost_asio.reference.seq_packet_socket_service.send [*send]]]
- [Send the given data to the peer. ]
+ [[link boost_asio.reference.serial_port_service.send_break [*send_break]]]
+ [Send a break sequence to the serial port. ]
   ]
   
   [
- [[link boost_asio.reference.seq_packet_socket_service.seq_packet_socket_service [*seq_packet_socket_service]]]
- [Construct a new sequenced packet socket service for the specified io_service. ]
+ [[link boost_asio.reference.serial_port_service.serial_port_service [*serial_port_service]]]
+ [Construct a new serial port service for the specified io_service. ]
   ]
   
   [
- [[link boost_asio.reference.seq_packet_socket_service.set_option [*set_option]]]
- [Set a socket option. ]
+ [[link boost_asio.reference.serial_port_service.set_option [*set_option]]]
+ [Set a serial port option. ]
   ]
   
   [
- [[link boost_asio.reference.seq_packet_socket_service.shutdown [*shutdown]]]
- [Disable sends or receives on the socket. ]
+ [[link boost_asio.reference.serial_port_service.write_some [*write_some]]]
+ [Write the given data to the stream. ]
   ]
   
 ]
@@ -76352,7 +79716,7 @@
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.seq_packet_socket_service.id [*id]]]
+ [[link boost_asio.reference.serial_port_service.id [*id]]]
     [The unique service identifier. ]
   ]
 
@@ -76360,21 +79724,20 @@
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/seq_packet_socket_service.hpp]
+[*Header: ][^boost/asio/serial_port_service.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
 
-[section:assign seq_packet_socket_service::assign]
+[section:assign serial_port_service::assign]
 
-[indexterm2 assign..seq_packet_socket_service]
-Assign an existing native socket to a sequenced packet socket.
+[indexterm2 assign..serial_port_service]
+Assign an existing native handle to a serial port.
 
 
   boost::system::error_code assign(
       implementation_type & impl,
- const protocol_type & protocol,
- const native_handle_type & native_socket,
+ const native_handle_type & handle,
       boost::system::error_code & ec);
 
 
@@ -76383,18 +79746,101 @@
 
 
 
-[section:async_connect seq_packet_socket_service::async_connect]
+[section:async_read_some serial_port_service::async_read_some]
 
-[indexterm2 async_connect..seq_packet_socket_service]
-Start an asynchronous connect.
+[indexterm2 async_read_some..serial_port_service]
+Start an asynchronous read.
 
 
   template<
- typename ``[link boost_asio.reference.ConnectHandler ConnectHandler]``>
- void async_connect(
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
+ typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
+ void async_read_some(
       implementation_type & impl,
- const endpoint_type & peer_endpoint,
- ConnectHandler handler);
+ const MutableBufferSequence & buffers,
+ ReadHandler handler);
+
+
+
+[endsect]
+
+
+
+[section:async_write_some serial_port_service::async_write_some]
+
+[indexterm2 async_write_some..serial_port_service]
+Start an asynchronous write.
+
+
+ template<
+ typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
+ typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
+ void async_write_some(
+ implementation_type & impl,
+ const ConstBufferSequence & buffers,
+ WriteHandler handler);
+
+
+
+[endsect]
+
+
+
+[section:cancel serial_port_service::cancel]
+
+[indexterm2 cancel..serial_port_service]
+Cancel all asynchronous operations associated with the handle.
+
+
+ boost::system::error_code cancel(
+ implementation_type & impl,
+ boost::system::error_code & ec);
+
+
+
+[endsect]
+
+
+
+[section:close serial_port_service::close]
+
+[indexterm2 close..serial_port_service]
+Close a serial port implementation.
+
+
+ boost::system::error_code close(
+ implementation_type & impl,
+ boost::system::error_code & ec);
+
+
+
+[endsect]
+
+
+
+[section:construct serial_port_service::construct]
+
+[indexterm2 construct..serial_port_service]
+Construct a new serial port implementation.
+
+
+ void construct(
+ implementation_type & impl);
+
+
+
+[endsect]
+
+
+
+[section:destroy serial_port_service::destroy]
+
+[indexterm2 destroy..serial_port_service]
+Destroy a serial port implementation.
+
+
+ void destroy(
+ implementation_type & impl);
 
 
 
@@ -76402,21 +79848,16 @@
 
 
 
-[section:async_receive seq_packet_socket_service::async_receive]
+[section:get_io_service serial_port_service::get_io_service]
 
-[indexterm2 async_receive..seq_packet_socket_service]
-Start an asynchronous receive.
 
+['Inherited from io_service.]
+
+[indexterm2 get_io_service..serial_port_service]
+Get the [link boost_asio.reference.io_service `io_service`] object that owns the service.
 
- template<
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
- typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void async_receive(
- implementation_type & impl,
- const MutableBufferSequence & buffers,
- socket_base::message_flags in_flags,
- socket_base::message_flags & out_flags,
- ReadHandler handler);
+
+ boost::asio::io_service & get_io_service();
 
 
 
@@ -76424,20 +79865,18 @@
 
 
 
-[section:async_send seq_packet_socket_service::async_send]
+[section:get_option serial_port_service::get_option]
 
-[indexterm2 async_send..seq_packet_socket_service]
-Start an asynchronous send.
+[indexterm2 get_option..serial_port_service]
+Get a serial port option.
 
 
   template<
- typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
- typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
- void async_send(
- implementation_type & impl,
- const ConstBufferSequence & buffers,
- socket_base::message_flags flags,
- WriteHandler handler);
+ typename ``[link boost_asio.reference.GettableSerialPortOption GettableSerialPortOption]``>
+ boost::system::error_code get_option(
+ const implementation_type & impl,
+ GettableSerialPortOption & option,
+ boost::system::error_code & ec) const;
 
 
 
@@ -76445,15 +79884,13 @@
 
 
 
-[section:at_mark seq_packet_socket_service::at_mark]
+[section:id serial_port_service::id]
 
-[indexterm2 at_mark..seq_packet_socket_service]
-Determine whether the socket is at the out-of-band data mark.
+[indexterm2 id..serial_port_service]
+The unique service identifier.
 
 
- bool at_mark(
- const implementation_type & impl,
- boost::system::error_code & ec) const;
+ static boost::asio::io_service::id id;
 
 
 
@@ -76461,32 +79898,35 @@
 
 
 
-[section:available seq_packet_socket_service::available]
+[section:implementation_type serial_port_service::implementation_type]
 
-[indexterm2 available..seq_packet_socket_service]
-Determine the number of bytes available for reading.
+[indexterm2 implementation_type..serial_port_service]
+The type of a serial port implementation.
 
 
- std::size_t available(
- const implementation_type & impl,
- boost::system::error_code & ec) const;
+ typedef implementation_defined implementation_type;
+
+
+
+[heading Requirements]
 
+[*Header: ][^boost/asio/serial_port_service.hpp]
+
+[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
 
-[section:bind seq_packet_socket_service::bind]
+[section:is_open serial_port_service::is_open]
 
-[indexterm2 bind..seq_packet_socket_service]
-Bind the sequenced packet socket to the specified local endpoint.
+[indexterm2 is_open..serial_port_service]
+Determine whether the handle is open.
 
 
- boost::system::error_code bind(
- implementation_type & impl,
- const endpoint_type & endpoint,
- boost::system::error_code & ec);
+ bool is_open(
+ const implementation_type & impl) const;
 
 
 
@@ -76494,15 +79934,16 @@
 
 
 
-[section:cancel seq_packet_socket_service::cancel]
+[section:move_assign serial_port_service::move_assign]
 
-[indexterm2 cancel..seq_packet_socket_service]
-Cancel all asynchronous operations associated with the socket.
+[indexterm2 move_assign..serial_port_service]
+Move-assign from another serial port implementation.
 
 
- boost::system::error_code cancel(
+ void move_assign(
       implementation_type & impl,
- boost::system::error_code & ec);
+ serial_port_service & other_service,
+ implementation_type & other_impl);
 
 
 
@@ -76510,15 +79951,15 @@
 
 
 
-[section:close seq_packet_socket_service::close]
+[section:move_construct serial_port_service::move_construct]
 
-[indexterm2 close..seq_packet_socket_service]
-Close a sequenced packet socket implementation.
+[indexterm2 move_construct..serial_port_service]
+Move-construct a new serial port implementation.
 
 
- boost::system::error_code close(
+ void move_construct(
       implementation_type & impl,
- boost::system::error_code & ec);
+ implementation_type & other_impl);
 
 
 
@@ -76526,16 +79967,14 @@
 
 
 
-[section:connect seq_packet_socket_service::connect]
+[section:native serial_port_service::native]
 
-[indexterm2 connect..seq_packet_socket_service]
-Connect the sequenced packet socket to the specified endpoint.
+[indexterm2 native..serial_port_service]
+(Deprecated: Use `native_handle()`.) Get the native handle implementation.
 
 
- boost::system::error_code connect(
- implementation_type & impl,
- const endpoint_type & peer_endpoint,
- boost::system::error_code & ec);
+ native_type native(
+ implementation_type & impl);
 
 
 
@@ -76543,13 +79982,13 @@
 
 
 
-[section:construct seq_packet_socket_service::construct]
+[section:native_handle serial_port_service::native_handle]
 
-[indexterm2 construct..seq_packet_socket_service]
-Construct a new sequenced packet socket implementation.
+[indexterm2 native_handle..serial_port_service]
+Get the native handle implementation.
 
 
- void construct(
+ native_handle_type native_handle(
       implementation_type & impl);
 
 
@@ -76558,34 +79997,40 @@
 
 
 
-[section:destroy seq_packet_socket_service::destroy]
+[section:native_handle_type serial_port_service::native_handle_type]
 
-[indexterm2 destroy..seq_packet_socket_service]
-Destroy a sequenced packet socket implementation.
+[indexterm2 native_handle_type..serial_port_service]
+The native handle type.
 
 
- void destroy(
- implementation_type & impl);
+ typedef implementation_defined native_handle_type;
+
+
+
+[heading Requirements]
+
+[*Header: ][^boost/asio/serial_port_service.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
 
-[section:endpoint_type seq_packet_socket_service::endpoint_type]
+[section:native_type serial_port_service::native_type]
 
-[indexterm2 endpoint_type..seq_packet_socket_service]
-The endpoint type.
+[indexterm2 native_type..serial_port_service]
+(Deprecated: Use native\_handle\_type.) The native handle type.
 
 
- typedef Protocol::endpoint endpoint_type;
+ typedef implementation_defined native_type;
 
 
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/seq_packet_socket_service.hpp]
+[*Header: ][^boost/asio/serial_port_service.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
@@ -76594,16 +80039,16 @@
 
 
 
-[section:get_io_service seq_packet_socket_service::get_io_service]
-
-
-['Inherited from io_service.]
+[section:open serial_port_service::open]
 
-[indexterm2 get_io_service..seq_packet_socket_service]
-Get the [link boost_asio.reference.io_service `io_service`] object that owns the service.
+[indexterm2 open..serial_port_service]
+Open a serial port.
 
 
- boost::asio::io_service & get_io_service();
+ boost::system::error_code open(
+ implementation_type & impl,
+ const std::string & device,
+ boost::system::error_code & ec);
 
 
 
@@ -76611,18 +80056,18 @@
 
 
 
-[section:get_option seq_packet_socket_service::get_option]
+[section:read_some serial_port_service::read_some]
 
-[indexterm2 get_option..seq_packet_socket_service]
-Get a socket option.
+[indexterm2 read_some..serial_port_service]
+Read some data from the stream.
 
 
   template<
- typename ``[link boost_asio.reference.GettableSocketOption GettableSocketOption]``>
- boost::system::error_code get_option(
- const implementation_type & impl,
- GettableSocketOption & option,
- boost::system::error_code & ec) const;
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
+ std::size_t read_some(
+ implementation_type & impl,
+ const MutableBufferSequence & buffers,
+ boost::system::error_code & ec);
 
 
 
@@ -76630,13 +80075,15 @@
 
 
 
-[section:id seq_packet_socket_service::id]
+[section:send_break serial_port_service::send_break]
 
-[indexterm2 id..seq_packet_socket_service]
-The unique service identifier.
+[indexterm2 send_break..serial_port_service]
+Send a break sequence to the serial port.
 
 
- static boost::asio::io_service::id id;
+ boost::system::error_code send_break(
+ implementation_type & impl,
+ boost::system::error_code & ec);
 
 
 
@@ -76644,38 +80091,51 @@
 
 
 
-[section:implementation_type seq_packet_socket_service::implementation_type]
+[section:serial_port_service serial_port_service::serial_port_service]
 
-[indexterm2 implementation_type..seq_packet_socket_service]
-The type of a sequenced packet socket implementation.
+[indexterm2 serial_port_service..serial_port_service]
+Construct a new serial port service for the specified [link boost_asio.reference.io_service `io_service`].
 
 
- typedef implementation_defined implementation_type;
+ serial_port_service(
+ boost::asio::io_service & io_service);
 
 
 
-[heading Requirements]
+[endsect]
 
-[*Header: ][^boost/asio/seq_packet_socket_service.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
+
+[section:set_option serial_port_service::set_option]
+
+[indexterm2 set_option..serial_port_service]
+Set a serial port option.
+
+
+ template<
+ typename ``[link boost_asio.reference.SettableSerialPortOption SettableSerialPortOption]``>
+ boost::system::error_code set_option(
+ implementation_type & impl,
+ const SettableSerialPortOption & option,
+ boost::system::error_code & ec);
+
 
 
 [endsect]
 
 
 
-[section:io_control seq_packet_socket_service::io_control]
+[section:write_some serial_port_service::write_some]
 
-[indexterm2 io_control..seq_packet_socket_service]
-Perform an IO control command on the socket.
+[indexterm2 write_some..serial_port_service]
+Write the given data to the stream.
 
 
   template<
- typename ``[link boost_asio.reference.IoControlCommand IoControlCommand]``>
- boost::system::error_code io_control(
+ typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
+ std::size_t write_some(
       implementation_type & impl,
- IoControlCommand & command,
+ const ConstBufferSequence & buffers,
       boost::system::error_code & ec);
 
 
@@ -76684,30 +80144,40 @@
 
 
 
-[section:is_open seq_packet_socket_service::is_open]
+[endsect]
 
-[indexterm2 is_open..seq_packet_socket_service]
-Determine whether the socket is open.
+[section:service_already_exists service_already_exists]
 
 
- bool is_open(
- const implementation_type & impl) const;
+Exception thrown when trying to add a duplicate service to an [link boost_asio.reference.io_service `io_service`].
+
 
+ class service_already_exists
 
 
-[endsect]
+[heading Member Functions]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.service_already_exists.service_already_exists [*service_already_exists]]]
+ []
+ ]
+
+]
 
+[heading Requirements]
 
+[*Header: ][^boost/asio/io_service.hpp]
 
-[section:local_endpoint seq_packet_socket_service::local_endpoint]
+[*Convenience header: ][^boost/asio.hpp]
 
-[indexterm2 local_endpoint..seq_packet_socket_service]
-Get the local endpoint.
 
+[section:service_already_exists service_already_exists::service_already_exists]
 
- endpoint_type local_endpoint(
- const implementation_type & impl,
- boost::system::error_code & ec) const;
+[indexterm2 service_already_exists..service_already_exists]
+
+ service_already_exists();
 
 
 
@@ -76715,82 +80185,183 @@
 
 
 
-[section:move_assign seq_packet_socket_service::move_assign]
+[endsect]
 
-[indexterm2 move_assign..seq_packet_socket_service]
-Move-assign from another sequenced packet socket implementation.
 
+[section:signal_set signal_set]
 
- void move_assign(
- implementation_type & impl,
- seq_packet_socket_service & other_service,
- implementation_type & other_impl);
+[indexterm1 signal_set]
+Typedef for the typical usage of a signal set.
 
 
+ typedef basic_signal_set signal_set;
 
-[endsect]
 
+[heading Types]
+[table
+ [[Name][Description]]
 
+ [
 
-[section:move_construct seq_packet_socket_service::move_construct]
+ [[link boost_asio.reference.basic_signal_set.implementation_type [*implementation_type]]]
+ [The underlying implementation type of I/O object. ]
+
+ ]
 
-[indexterm2 move_construct..seq_packet_socket_service]
-Move-construct a new sequenced packet socket implementation.
+ [
+
+ [[link boost_asio.reference.basic_signal_set.service_type [*service_type]]]
+ [The type of the service that will be used to provide I/O operations. ]
+
+ ]
 
+]
 
- void move_construct(
- implementation_type & impl,
- implementation_type & other_impl);
+[heading Member Functions]
+[table
+ [[Name][Description]]
 
+ [
+ [[link boost_asio.reference.basic_signal_set.add [*add]]]
+ [Add a signal to a signal_set. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_signal_set.async_wait [*async_wait]]]
+ [Start an asynchronous operation to wait for a signal to be delivered. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_signal_set.basic_signal_set [*basic_signal_set]]]
+ [Construct a signal set without adding any signals.
 
+ Construct a signal set and add one signal.
 
-[endsect]
+ Construct a signal set and add two signals.
 
+ Construct a signal set and add three signals. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_signal_set.cancel [*cancel]]]
+ [Cancel all operations associated with the signal set. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_signal_set.clear [*clear]]]
+ [Remove all signals from a signal_set. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_signal_set.get_io_service [*get_io_service]]]
+ [Get the io_service associated with the object. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_signal_set.remove [*remove]]]
+ [Remove a signal from a signal_set. ]
+ ]
+
+]
 
+[heading Protected Member Functions]
+[table
+ [[Name][Description]]
 
-[section:native seq_packet_socket_service::native]
+ [
+ [[link boost_asio.reference.basic_signal_set.get_implementation [*get_implementation]]]
+ [Get the underlying implementation of the I/O object. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_signal_set.get_service [*get_service]]]
+ [Get the service associated with the I/O object. ]
+ ]
+
+]
 
-[indexterm2 native..seq_packet_socket_service]
-(Deprecated: Use `native_handle()`.) Get the native socket implementation.
+[heading Protected Data Members]
+[table
+ [[Name][Description]]
 
+ [
+ [[link boost_asio.reference.basic_signal_set.implementation [*implementation]]]
+ [(Deprecated: Use get_implementation().) The underlying implementation of the I/O object. ]
+ ]
 
- native_type native(
- implementation_type & impl);
+ [
+ [[link boost_asio.reference.basic_signal_set.service [*service]]]
+ [(Deprecated: Use get_service().) The service associated with the I/O object. ]
+ ]
 
+]
 
+The [link boost_asio.reference.basic_signal_set `basic_signal_set`] class template provides the ability to perform an asynchronous wait for one or more signals to occur.
 
-[endsect]
+Most applications will use the [link boost_asio.reference.signal_set `signal_set`] typedef.
 
 
+[heading Thread Safety]
+
+[*Distinct] [*objects:] Safe.
 
-[section:native_handle seq_packet_socket_service::native_handle]
+[*Shared] [*objects:] Unsafe.
 
-[indexterm2 native_handle..seq_packet_socket_service]
-Get the native socket implementation.
 
+[heading Example]
+
+Performing an asynchronous wait:
 
- native_handle_type native_handle(
- implementation_type & impl);
+ void handler(
+ const boost::system::error_code& error,
+ int signal_number)
+ {
+ if (!error)
+ {
+ // A signal occurred.
+ }
+ }
 
+ ...
 
+ // Construct a signal set registered for process termination.
+ boost::asio::signal_set signals(io_service, SIGINT, SIGTERM);
 
-[endsect]
+ // Start an asynchronous wait for one of the signals to occur.
+ signals.async_wait(handler);
 
 
 
-[section:native_handle_type seq_packet_socket_service::native_handle_type]
 
-[indexterm2 native_handle_type..seq_packet_socket_service]
-The native socket type.
 
+[heading Queueing of signal notifications]
+
 
- typedef implementation_defined native_handle_type;
+
+If a signal is registered with a signal\_set, and the signal occurs when there are no waiting handlers, then the signal notification is queued. The next async\_wait operation on that signal\_set will dequeue the notification. If multiple notifications are queued, subsequent async\_wait operations dequeue them one at a time. Signal notifications are dequeued in order of ascending signal number.
+
+If a signal number is removed from a signal\_set (using the `remove` or `erase` member functions) then any queued notifications for that signal are discarded.
+
+
+[heading Multiple registration of signals]
+
+
+
+The same signal number may be registered with different signal\_set objects. When the signal occurs, one handler is called for each signal\_set object.
+
+Note that multiple registration only works for signals that are registered using Asio. The application must not also register a signal handler using functions such as `signal()` or `sigaction()`.
 
 
+[heading Signal masking on POSIX platforms]
+
+
+
+POSIX allows signals to be blocked using functions such as `sigprocmask()` and `pthread_sigmask()`. For signals to be delivered, programs must ensure that any signals registered using signal\_set objects are unblocked in at least one thread.
+
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/seq_packet_socket_service.hpp]
+[*Header: ][^boost/asio/signal_set.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
@@ -76798,51 +80369,107 @@
 [endsect]
 
 
-[section:native_non_blocking seq_packet_socket_service::native_non_blocking]
-
-[indexterm2 native_non_blocking..seq_packet_socket_service]
-Gets the non-blocking mode of the native socket implementation.
+[section:signal_set_service signal_set_service]
 
 
- bool ``[link boost_asio.reference.seq_packet_socket_service.native_non_blocking.overload1 native_non_blocking]``(
- const implementation_type & impl) const;
- `` [''''&raquo;''' [link boost_asio.reference.seq_packet_socket_service.native_non_blocking.overload1 more...]]``
+Default service implementation for a signal set.
 
 
-Sets the non-blocking mode of the native socket implementation.
+ class signal_set_service :
+ public io_service::service
 
 
- boost::system::error_code ``[link boost_asio.reference.seq_packet_socket_service.native_non_blocking.overload2 native_non_blocking]``(
- implementation_type & impl,
- bool mode,
- boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.seq_packet_socket_service.native_non_blocking.overload2 more...]]``
+[heading Types]
+[table
+ [[Name][Description]]
 
+ [
 
-[section:overload1 seq_packet_socket_service::native_non_blocking (1 of 2 overloads)]
+ [[link boost_asio.reference.signal_set_service.implementation_type [*implementation_type]]]
+ [The type of a signal set implementation. ]
+
+ ]
 
+]
 
-Gets the non-blocking mode of the native socket implementation.
+[heading Member Functions]
+[table
+ [[Name][Description]]
 
+ [
+ [[link boost_asio.reference.signal_set_service.add [*add]]]
+ [Add a signal to a signal_set. ]
+ ]
+
+ [
+ [[link boost_asio.reference.signal_set_service.async_wait [*async_wait]]]
+ []
+ ]
+
+ [
+ [[link boost_asio.reference.signal_set_service.cancel [*cancel]]]
+ [Cancel all operations associated with the signal set. ]
+ ]
+
+ [
+ [[link boost_asio.reference.signal_set_service.clear [*clear]]]
+ [Remove all signals from a signal_set. ]
+ ]
+
+ [
+ [[link boost_asio.reference.signal_set_service.construct [*construct]]]
+ [Construct a new signal set implementation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.signal_set_service.destroy [*destroy]]]
+ [Destroy a signal set implementation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.signal_set_service.get_io_service [*get_io_service]]]
+ [Get the io_service object that owns the service. ]
+ ]
+
+ [
+ [[link boost_asio.reference.signal_set_service.remove [*remove]]]
+ [Remove a signal to a signal_set. ]
+ ]
+
+ [
+ [[link boost_asio.reference.signal_set_service.signal_set_service [*signal_set_service]]]
+ [Construct a new signal set service for the specified io_service. ]
+ ]
+
+]
 
- bool native_non_blocking(
- const implementation_type & impl) const;
+[heading Data Members]
+[table
+ [[Name][Description]]
 
+ [
+ [[link boost_asio.reference.signal_set_service.id [*id]]]
+ [The unique service identifier. ]
+ ]
 
+]
 
-[endsect]
+[heading Requirements]
 
+[*Header: ][^boost/asio/signal_set_service.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
-[section:overload2 seq_packet_socket_service::native_non_blocking (2 of 2 overloads)]
 
+[section:add signal_set_service::add]
 
-Sets the non-blocking mode of the native socket implementation.
+[indexterm2 add..signal_set_service]
+Add a signal to a signal\_set.
 
 
- boost::system::error_code native_non_blocking(
+ boost::system::error_code add(
       implementation_type & impl,
- bool mode,
+ int signal_number,
       boost::system::error_code & ec);
 
 
@@ -76850,58 +80477,32 @@
 [endsect]
 
 
-[endsect]
-
-
-[section:native_type seq_packet_socket_service::native_type]
-
-[indexterm2 native_type..seq_packet_socket_service]
-(Deprecated: Use native\_handle\_type.) The native socket type.
-
-
- typedef implementation_defined native_type;
-
 
+[section:async_wait signal_set_service::async_wait]
 
-[heading Requirements]
+[indexterm2 async_wait..signal_set_service]
 
-[*Header: ][^boost/asio/seq_packet_socket_service.hpp]
+ template<
+ typename ``[link boost_asio.reference.SignalHandler SignalHandler]``>
+ void async_wait(
+ implementation_type & impl,
+ SignalHandler handler);
 
-[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
-[section:non_blocking seq_packet_socket_service::non_blocking]
-
-[indexterm2 non_blocking..seq_packet_socket_service]
-Gets the non-blocking mode of the socket.
-
-
- bool ``[link boost_asio.reference.seq_packet_socket_service.non_blocking.overload1 non_blocking]``(
- const implementation_type & impl) const;
- `` [''''&raquo;''' [link boost_asio.reference.seq_packet_socket_service.non_blocking.overload1 more...]]``
 
+[section:cancel signal_set_service::cancel]
 
-Sets the non-blocking mode of the socket.
+[indexterm2 cancel..signal_set_service]
+Cancel all operations associated with the signal set.
 
 
- boost::system::error_code ``[link boost_asio.reference.seq_packet_socket_service.non_blocking.overload2 non_blocking]``(
+ boost::system::error_code cancel(
       implementation_type & impl,
- bool mode,
       boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.seq_packet_socket_service.non_blocking.overload2 more...]]``
-
-
-[section:overload1 seq_packet_socket_service::non_blocking (1 of 2 overloads)]
-
-
-Gets the non-blocking mode of the socket.
-
-
- bool non_blocking(
- const implementation_type & impl) const;
 
 
 
@@ -76909,15 +80510,14 @@
 
 
 
-[section:overload2 seq_packet_socket_service::non_blocking (2 of 2 overloads)]
-
+[section:clear signal_set_service::clear]
 
-Sets the non-blocking mode of the socket.
+[indexterm2 clear..signal_set_service]
+Remove all signals from a signal\_set.
 
 
- boost::system::error_code non_blocking(
+ boost::system::error_code clear(
       implementation_type & impl,
- bool mode,
       boost::system::error_code & ec);
 
 
@@ -76925,19 +80525,15 @@
 [endsect]
 
 
-[endsect]
-
 
-[section:open seq_packet_socket_service::open]
+[section:construct signal_set_service::construct]
 
-[indexterm2 open..seq_packet_socket_service]
-Open a sequenced packet socket.
+[indexterm2 construct..signal_set_service]
+Construct a new signal set implementation.
 
 
- boost::system::error_code open(
- implementation_type & impl,
- const protocol_type & protocol,
- boost::system::error_code & ec);
+ void construct(
+ implementation_type & impl);
 
 
 
@@ -76945,41 +80541,31 @@
 
 
 
-[section:protocol_type seq_packet_socket_service::protocol_type]
-
-[indexterm2 protocol_type..seq_packet_socket_service]
-The protocol type.
-
+[section:destroy signal_set_service::destroy]
 
- typedef Protocol protocol_type;
+[indexterm2 destroy..signal_set_service]
+Destroy a signal set implementation.
 
 
+ void destroy(
+ implementation_type & impl);
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/seq_packet_socket_service.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
+[endsect]
 
 
-[endsect]
 
+[section:get_io_service signal_set_service::get_io_service]
 
 
-[section:receive seq_packet_socket_service::receive]
+['Inherited from io_service.]
 
-[indexterm2 receive..seq_packet_socket_service]
-Receive some data from the peer.
+[indexterm2 get_io_service..signal_set_service]
+Get the [link boost_asio.reference.io_service `io_service`] object that owns the service.
 
 
- template<
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
- std::size_t receive(
- implementation_type & impl,
- const MutableBufferSequence & buffers,
- socket_base::message_flags in_flags,
- socket_base::message_flags & out_flags,
- boost::system::error_code & ec);
+ boost::asio::io_service & get_io_service();
 
 
 
@@ -76987,15 +80573,13 @@
 
 
 
-[section:remote_endpoint seq_packet_socket_service::remote_endpoint]
+[section:id signal_set_service::id]
 
-[indexterm2 remote_endpoint..seq_packet_socket_service]
-Get the remote endpoint.
+[indexterm2 id..signal_set_service]
+The unique service identifier.
 
 
- endpoint_type remote_endpoint(
- const implementation_type & impl,
- boost::system::error_code & ec) const;
+ static boost::asio::io_service::id id;
 
 
 
@@ -77003,52 +80587,36 @@
 
 
 
-[section:send seq_packet_socket_service::send]
-
-[indexterm2 send..seq_packet_socket_service]
-Send the given data to the peer.
-
-
- template<
- typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
- std::size_t send(
- implementation_type & impl,
- const ConstBufferSequence & buffers,
- socket_base::message_flags flags,
- boost::system::error_code & ec);
-
-
+[section:implementation_type signal_set_service::implementation_type]
 
-[endsect]
+[indexterm2 implementation_type..signal_set_service]
+The type of a signal set implementation.
 
 
+ typedef implementation_defined implementation_type;
 
-[section:seq_packet_socket_service seq_packet_socket_service::seq_packet_socket_service]
 
-[indexterm2 seq_packet_socket_service..seq_packet_socket_service]
-Construct a new sequenced packet socket service for the specified [link boost_asio.reference.io_service `io_service`].
 
+[heading Requirements]
 
- seq_packet_socket_service(
- boost::asio::io_service & io_service);
+[*Header: ][^boost/asio/signal_set_service.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
 
-[section:set_option seq_packet_socket_service::set_option]
+[section:remove signal_set_service::remove]
 
-[indexterm2 set_option..seq_packet_socket_service]
-Set a socket option.
+[indexterm2 remove..signal_set_service]
+Remove a signal to a signal\_set.
 
 
- template<
- typename ``[link boost_asio.reference.SettableSocketOption SettableSocketOption]``>
- boost::system::error_code set_option(
+ boost::system::error_code remove(
       implementation_type & impl,
- const SettableSocketOption & option,
+ int signal_number,
       boost::system::error_code & ec);
 
 
@@ -77057,16 +80625,14 @@
 
 
 
-[section:shutdown seq_packet_socket_service::shutdown]
+[section:signal_set_service signal_set_service::signal_set_service]
 
-[indexterm2 shutdown..seq_packet_socket_service]
-Disable sends or receives on the socket.
+[indexterm2 signal_set_service..signal_set_service]
+Construct a new signal set service for the specified [link boost_asio.reference.io_service `io_service`].
 
 
- boost::system::error_code shutdown(
- implementation_type & impl,
- socket_base::shutdown_type what,
- boost::system::error_code & ec);
+ signal_set_service(
+ boost::asio::io_service & io_service);
 
 
 
@@ -77076,14 +80642,16 @@
 
 [endsect]
 
+[section:socket_acceptor_service socket_acceptor_service]
 
-[section:serial_port serial_port]
 
-[indexterm1 serial_port]
-Typedef for the typical usage of a serial port.
+Default service implementation for a socket acceptor.
 
 
- typedef basic_serial_port serial_port;
+ template<
+ typename ``[link boost_asio.reference.Protocol Protocol]``>
+ class socket_acceptor_service :
+ public io_service::service
 
 
 [heading Types]
@@ -77092,36 +80660,36 @@
 
   [
 
- [[link boost_asio.reference.basic_serial_port.implementation_type [*implementation_type]]]
- [The underlying implementation type of I/O object. ]
+ [[link boost_asio.reference.socket_acceptor_service.endpoint_type [*endpoint_type]]]
+ [The endpoint type. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.basic_serial_port.lowest_layer_type [*lowest_layer_type]]]
- [A basic_serial_port is always the lowest layer. ]
+ [[link boost_asio.reference.socket_acceptor_service.implementation_type [*implementation_type]]]
+ [The native type of the socket acceptor. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.basic_serial_port.native_handle_type [*native_handle_type]]]
- [The native representation of a serial port. ]
+ [[link boost_asio.reference.socket_acceptor_service.native_handle_type [*native_handle_type]]]
+ [The native acceptor type. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.basic_serial_port.native_type [*native_type]]]
- [(Deprecated: Use native_handle_type.) The native representation of a serial port. ]
+ [[link boost_asio.reference.socket_acceptor_service.native_type [*native_type]]]
+ [(Deprecated: Use native_handle_type.) The native acceptor type. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.basic_serial_port.service_type [*service_type]]]
- [The type of the service that will be used to provide I/O operations. ]
+ [[link boost_asio.reference.socket_acceptor_service.protocol_type [*protocol_type]]]
+ [The protocol type. ]
   
   ]
 
@@ -77132,152 +80700,366 @@
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.basic_serial_port.assign [*assign]]]
- [Assign an existing native serial port to the serial port. ]
+ [[link boost_asio.reference.socket_acceptor_service.accept [*accept]]]
+ [Accept a new connection. ]
   ]
   
   [
- [[link boost_asio.reference.basic_serial_port.async_read_some [*async_read_some]]]
- [Start an asynchronous read. ]
+ [[link boost_asio.reference.socket_acceptor_service.assign [*assign]]]
+ [Assign an existing native acceptor to a socket acceptor. ]
   ]
   
   [
- [[link boost_asio.reference.basic_serial_port.async_write_some [*async_write_some]]]
- [Start an asynchronous write. ]
+ [[link boost_asio.reference.socket_acceptor_service.async_accept [*async_accept]]]
+ [Start an asynchronous accept. ]
   ]
   
   [
- [[link boost_asio.reference.basic_serial_port.basic_serial_port [*basic_serial_port]]]
- [Construct a basic_serial_port without opening it.
-
- Construct and open a basic_serial_port.
-
- Construct a basic_serial_port on an existing native serial port.
-
- Move-construct a basic_serial_port from another. ]
+ [[link boost_asio.reference.socket_acceptor_service.bind [*bind]]]
+ [Bind the socket acceptor to the specified local endpoint. ]
   ]
   
   [
- [[link boost_asio.reference.basic_serial_port.cancel [*cancel]]]
- [Cancel all asynchronous operations associated with the serial port. ]
+ [[link boost_asio.reference.socket_acceptor_service.cancel [*cancel]]]
+ [Cancel all asynchronous operations associated with the acceptor. ]
   ]
   
   [
- [[link boost_asio.reference.basic_serial_port.close [*close]]]
- [Close the serial port. ]
+ [[link boost_asio.reference.socket_acceptor_service.close [*close]]]
+ [Close a socket acceptor implementation. ]
   ]
   
   [
- [[link boost_asio.reference.basic_serial_port.get_io_service [*get_io_service]]]
- [Get the io_service associated with the object. ]
+ [[link boost_asio.reference.socket_acceptor_service.construct [*construct]]]
+ [Construct a new socket acceptor implementation. ]
   ]
   
   [
- [[link boost_asio.reference.basic_serial_port.get_option [*get_option]]]
- [Get an option from the serial port. ]
+ [[link boost_asio.reference.socket_acceptor_service.destroy [*destroy]]]
+ [Destroy a socket acceptor implementation. ]
   ]
   
   [
- [[link boost_asio.reference.basic_serial_port.is_open [*is_open]]]
- [Determine whether the serial port is open. ]
+ [[link boost_asio.reference.socket_acceptor_service.get_io_service [*get_io_service]]]
+ [Get the io_service object that owns the service. ]
   ]
   
   [
- [[link boost_asio.reference.basic_serial_port.lowest_layer [*lowest_layer]]]
- [Get a reference to the lowest layer.
-
- Get a const reference to the lowest layer. ]
+ [[link boost_asio.reference.socket_acceptor_service.get_option [*get_option]]]
+ [Get a socket option. ]
   ]
   
   [
- [[link boost_asio.reference.basic_serial_port.native [*native]]]
- [(Deprecated: Use native_handle().) Get the native serial port representation. ]
+ [[link boost_asio.reference.socket_acceptor_service.io_control [*io_control]]]
+ [Perform an IO control command on the socket. ]
   ]
   
   [
- [[link boost_asio.reference.basic_serial_port.native_handle [*native_handle]]]
- [Get the native serial port representation. ]
+ [[link boost_asio.reference.socket_acceptor_service.is_open [*is_open]]]
+ [Determine whether the acceptor is open. ]
   ]
   
   [
- [[link boost_asio.reference.basic_serial_port.open [*open]]]
- [Open the serial port using the specified device name. ]
+ [[link boost_asio.reference.socket_acceptor_service.listen [*listen]]]
+ [Place the socket acceptor into the state where it will listen for new connections. ]
   ]
   
   [
- [[link boost_asio.reference.basic_serial_port.operator_eq_ [*operator=]]]
- [Move-assign a basic_serial_port from another. ]
+ [[link boost_asio.reference.socket_acceptor_service.local_endpoint [*local_endpoint]]]
+ [Get the local endpoint. ]
   ]
   
   [
- [[link boost_asio.reference.basic_serial_port.read_some [*read_some]]]
- [Read some data from the serial port. ]
+ [[link boost_asio.reference.socket_acceptor_service.move_assign [*move_assign]]]
+ [Move-assign from another socket acceptor implementation. ]
   ]
   
   [
- [[link boost_asio.reference.basic_serial_port.send_break [*send_break]]]
- [Send a break sequence to the serial port. ]
+ [[link boost_asio.reference.socket_acceptor_service.move_construct [*move_construct]]]
+ [Move-construct a new socket acceptor implementation. ]
   ]
   
   [
- [[link boost_asio.reference.basic_serial_port.set_option [*set_option]]]
- [Set an option on the serial port. ]
+ [[link boost_asio.reference.socket_acceptor_service.native [*native]]]
+ [(Deprecated: Use native_handle().) Get the native acceptor implementation. ]
   ]
   
   [
- [[link boost_asio.reference.basic_serial_port.write_some [*write_some]]]
- [Write some data to the serial port. ]
+ [[link boost_asio.reference.socket_acceptor_service.native_handle [*native_handle]]]
+ [Get the native acceptor implementation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.socket_acceptor_service.native_non_blocking [*native_non_blocking]]]
+ [Gets the non-blocking mode of the native acceptor implementation.
+
+ Sets the non-blocking mode of the native acceptor implementation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.socket_acceptor_service.non_blocking [*non_blocking]]]
+ [Gets the non-blocking mode of the acceptor.
+
+ Sets the non-blocking mode of the acceptor. ]
+ ]
+
+ [
+ [[link boost_asio.reference.socket_acceptor_service.open [*open]]]
+ [Open a new socket acceptor implementation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.socket_acceptor_service.set_option [*set_option]]]
+ [Set a socket option. ]
+ ]
+
+ [
+ [[link boost_asio.reference.socket_acceptor_service.socket_acceptor_service [*socket_acceptor_service]]]
+ [Construct a new socket acceptor service for the specified io_service. ]
   ]
   
 ]
 
-[heading Protected Member Functions]
-[table
- [[Name][Description]]
+[heading Data Members]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.socket_acceptor_service.id [*id]]]
+ [The unique service identifier. ]
+ ]
+
+]
+
+[heading Requirements]
+
+[*Header: ][^boost/asio/socket_acceptor_service.hpp]
+
+[*Convenience header: ][^boost/asio.hpp]
+
+
+[section:accept socket_acceptor_service::accept]
+
+[indexterm2 accept..socket_acceptor_service]
+Accept a new connection.
+
+
+ template<
+ typename ``[link boost_asio.reference.SocketService SocketService]``>
+ boost::system::error_code accept(
+ implementation_type & impl,
+ basic_socket< protocol_type, SocketService > & peer,
+ endpoint_type * peer_endpoint,
+ boost::system::error_code & ec);
+
+
+
+[endsect]
+
+
+
+[section:assign socket_acceptor_service::assign]
+
+[indexterm2 assign..socket_acceptor_service]
+Assign an existing native acceptor to a socket acceptor.
+
+
+ boost::system::error_code assign(
+ implementation_type & impl,
+ const protocol_type & protocol,
+ const native_handle_type & native_acceptor,
+ boost::system::error_code & ec);
+
+
+
+[endsect]
+
+
+
+[section:async_accept socket_acceptor_service::async_accept]
+
+[indexterm2 async_accept..socket_acceptor_service]
+Start an asynchronous accept.
+
+
+ template<
+ typename ``[link boost_asio.reference.SocketService SocketService]``,
+ typename ``[link boost_asio.reference.AcceptHandler AcceptHandler]``>
+ void async_accept(
+ implementation_type & impl,
+ basic_socket< protocol_type, SocketService > & peer,
+ endpoint_type * peer_endpoint,
+ AcceptHandler handler);
+
+
+
+[endsect]
+
+
+
+[section:bind socket_acceptor_service::bind]
+
+[indexterm2 bind..socket_acceptor_service]
+Bind the socket acceptor to the specified local endpoint.
+
+
+ boost::system::error_code bind(
+ implementation_type & impl,
+ const endpoint_type & endpoint,
+ boost::system::error_code & ec);
+
+
+
+[endsect]
+
+
+
+[section:cancel socket_acceptor_service::cancel]
+
+[indexterm2 cancel..socket_acceptor_service]
+Cancel all asynchronous operations associated with the acceptor.
+
+
+ boost::system::error_code cancel(
+ implementation_type & impl,
+ boost::system::error_code & ec);
+
+
+
+[endsect]
+
+
+
+[section:close socket_acceptor_service::close]
+
+[indexterm2 close..socket_acceptor_service]
+Close a socket acceptor implementation.
+
+
+ boost::system::error_code close(
+ implementation_type & impl,
+ boost::system::error_code & ec);
+
+
+
+[endsect]
+
+
+
+[section:construct socket_acceptor_service::construct]
+
+[indexterm2 construct..socket_acceptor_service]
+Construct a new socket acceptor implementation.
+
+
+ void construct(
+ implementation_type & impl);
+
+
+
+[endsect]
+
+
+
+[section:destroy socket_acceptor_service::destroy]
+
+[indexterm2 destroy..socket_acceptor_service]
+Destroy a socket acceptor implementation.
+
+
+ void destroy(
+ implementation_type & impl);
+
+
+
+[endsect]
+
+
+
+[section:endpoint_type socket_acceptor_service::endpoint_type]
+
+[indexterm2 endpoint_type..socket_acceptor_service]
+The endpoint type.
+
+
+ typedef protocol_type::endpoint endpoint_type;
+
+
+
+[heading Requirements]
+
+[*Header: ][^boost/asio/socket_acceptor_service.hpp]
+
+[*Convenience header: ][^boost/asio.hpp]
+
+
+[endsect]
+
+
+
+[section:get_io_service socket_acceptor_service::get_io_service]
+
+
+['Inherited from io_service.]
+
+[indexterm2 get_io_service..socket_acceptor_service]
+Get the [link boost_asio.reference.io_service `io_service`] object that owns the service.
+
+
+ boost::asio::io_service & get_io_service();
+
+
+
+[endsect]
+
+
+
+[section:get_option socket_acceptor_service::get_option]
+
+[indexterm2 get_option..socket_acceptor_service]
+Get a socket option.
 
- [
- [[link boost_asio.reference.basic_serial_port.get_implementation [*get_implementation]]]
- [Get the underlying implementation of the I/O object. ]
- ]
-
- [
- [[link boost_asio.reference.basic_serial_port.get_service [*get_service]]]
- [Get the service associated with the I/O object. ]
- ]
-
-]
 
-[heading Protected Data Members]
-[table
- [[Name][Description]]
+ template<
+ typename ``[link boost_asio.reference.GettableSocketOption GettableSocketOption]``>
+ boost::system::error_code get_option(
+ const implementation_type & impl,
+ GettableSocketOption & option,
+ boost::system::error_code & ec) const;
 
- [
- [[link boost_asio.reference.basic_serial_port.implementation [*implementation]]]
- [(Deprecated: Use get_implementation().) The underlying implementation of the I/O object. ]
- ]
 
- [
- [[link boost_asio.reference.basic_serial_port.service [*service]]]
- [(Deprecated: Use get_service().) The service associated with the I/O object. ]
- ]
 
-]
+[endsect]
 
-The [link boost_asio.reference.basic_serial_port `basic_serial_port`] class template provides functionality that is common to all serial ports.
 
 
-[heading Thread Safety]
-
-[*Distinct] [*objects:] Safe.
+[section:id socket_acceptor_service::id]
+
+[indexterm2 id..socket_acceptor_service]
+The unique service identifier.
+
+
+ static boost::asio::io_service::id id;
+
 
-[*Shared] [*objects:] Unsafe.
 
+[endsect]
+
+
+
+[section:implementation_type socket_acceptor_service::implementation_type]
+
+[indexterm2 implementation_type..socket_acceptor_service]
+The native type of the socket acceptor.
+
+
+ typedef implementation_defined implementation_type;
 
 
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/serial_port.hpp]
+[*Header: ][^boost/asio/socket_acceptor_service.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
@@ -77285,140 +81067,115 @@
 [endsect]
 
 
-[section:serial_port_base serial_port_base]
 
+[section:io_control socket_acceptor_service::io_control]
 
-The [link boost_asio.reference.serial_port_base `serial_port_base`] class is used as a base for the [link boost_asio.reference.basic_serial_port `basic_serial_port`] class template so that we have a common place to define the serial port options.
+[indexterm2 io_control..socket_acceptor_service]
+Perform an IO control command on the socket.
 
 
- class serial_port_base
+ template<
+ typename ``[link boost_asio.reference.IoControlCommand IoControlCommand]``>
+ boost::system::error_code io_control(
+ implementation_type & impl,
+ IoControlCommand & command,
+ boost::system::error_code & ec);
 
 
-[heading Types]
-[table
- [[Name][Description]]
 
- [
+[endsect]
 
- [[link boost_asio.reference.serial_port_base__baud_rate [*baud_rate]]]
- [Serial port option to permit changing the baud rate. ]
-
- ]
 
- [
 
- [[link boost_asio.reference.serial_port_base__character_size [*character_size]]]
- [Serial port option to permit changing the character size. ]
-
- ]
+[section:is_open socket_acceptor_service::is_open]
 
- [
+[indexterm2 is_open..socket_acceptor_service]
+Determine whether the acceptor is open.
 
- [[link boost_asio.reference.serial_port_base__flow_control [*flow_control]]]
- [Serial port option to permit changing the flow control. ]
-
- ]
 
- [
+ bool is_open(
+ const implementation_type & impl) const;
 
- [[link boost_asio.reference.serial_port_base__parity [*parity]]]
- [Serial port option to permit changing the parity. ]
-
- ]
 
- [
 
- [[link boost_asio.reference.serial_port_base__stop_bits [*stop_bits]]]
- [Serial port option to permit changing the number of stop bits. ]
-
- ]
+[endsect]
 
-]
 
-[heading Protected Member Functions]
-[table
- [[Name][Description]]
 
- [
- [[link boost_asio.reference.serial_port_base._serial_port_base [*~serial_port_base]]]
- [Protected destructor to prevent deletion through this type. ]
- ]
-
-]
+[section:listen socket_acceptor_service::listen]
 
-[heading Requirements]
+[indexterm2 listen..socket_acceptor_service]
+Place the socket acceptor into the state where it will listen for new connections.
 
-[*Header: ][^boost/asio/serial_port_base.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
+ boost::system::error_code listen(
+ implementation_type & impl,
+ int backlog,
+ boost::system::error_code & ec);
 
 
-[section:_serial_port_base serial_port_base::~serial_port_base]
 
-[indexterm2 ~serial_port_base..serial_port_base]
-Protected destructor to prevent deletion through this type.
+[endsect]
 
 
- ~serial_port_base();
 
+[section:local_endpoint socket_acceptor_service::local_endpoint]
+
+[indexterm2 local_endpoint..socket_acceptor_service]
+Get the local endpoint.
 
 
-[endsect]
+ endpoint_type local_endpoint(
+ const implementation_type & impl,
+ boost::system::error_code & ec) const;
 
 
 
 [endsect]
 
-[section:serial_port_base__baud_rate serial_port_base::baud_rate]
 
 
-Serial port option to permit changing the baud rate.
+[section:move_assign socket_acceptor_service::move_assign]
 
+[indexterm2 move_assign..socket_acceptor_service]
+Move-assign from another socket acceptor implementation.
 
- class baud_rate
 
+ void move_assign(
+ implementation_type & impl,
+ socket_acceptor_service & other_service,
+ implementation_type & other_impl);
 
-[heading Member Functions]
-[table
- [[Name][Description]]
 
- [
- [[link boost_asio.reference.serial_port_base__baud_rate.baud_rate [*baud_rate]]]
- []
- ]
-
- [
- [[link boost_asio.reference.serial_port_base__baud_rate.load [*load]]]
- []
- ]
-
- [
- [[link boost_asio.reference.serial_port_base__baud_rate.store [*store]]]
- []
- ]
-
- [
- [[link boost_asio.reference.serial_port_base__baud_rate.value [*value]]]
- []
- ]
-
-]
 
-Implements changing the baud rate for a given serial port.
+[endsect]
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/serial_port_base.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
+[section:move_construct socket_acceptor_service::move_construct]
 
+[indexterm2 move_construct..socket_acceptor_service]
+Move-construct a new socket acceptor implementation.
 
-[section:baud_rate serial_port_base::baud_rate::baud_rate]
 
-[indexterm2 baud_rate..serial_port_base::baud_rate]
+ void move_construct(
+ implementation_type & impl,
+ implementation_type & other_impl);
 
- baud_rate(
- unsigned int rate = 0);
+
+
+[endsect]
+
+
+
+[section:native socket_acceptor_service::native]
+
+[indexterm2 native..socket_acceptor_service]
+(Deprecated: Use `native_handle()`.) Get the native acceptor implementation.
+
+
+ native_type native(
+ implementation_type & impl);
 
 
 
@@ -77426,13 +81183,14 @@
 
 
 
-[section:load serial_port_base::baud_rate::load]
+[section:native_handle socket_acceptor_service::native_handle]
 
-[indexterm2 load..serial_port_base::baud_rate]
+[indexterm2 native_handle..socket_acceptor_service]
+Get the native acceptor implementation.
 
- boost::system::error_code load(
- const BOOST_ASIO_OPTION_STORAGE & storage,
- boost::system::error_code & ec);
+
+ native_handle_type native_handle(
+ implementation_type & impl);
 
 
 
@@ -77440,25 +81198,55 @@
 
 
 
-[section:store serial_port_base::baud_rate::store]
+[section:native_handle_type socket_acceptor_service::native_handle_type]
 
-[indexterm2 store..serial_port_base::baud_rate]
+[indexterm2 native_handle_type..socket_acceptor_service]
+The native acceptor type.
 
- boost::system::error_code store(
- BOOST_ASIO_OPTION_STORAGE & storage,
- boost::system::error_code & ec) const;
 
+ typedef implementation_defined native_handle_type;
+
+
+
+[heading Requirements]
+
+[*Header: ][^boost/asio/socket_acceptor_service.hpp]
+
+[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
+[section:native_non_blocking socket_acceptor_service::native_non_blocking]
 
-[section:value serial_port_base::baud_rate::value]
+[indexterm2 native_non_blocking..socket_acceptor_service]
+Gets the non-blocking mode of the native acceptor implementation.
 
-[indexterm2 value..serial_port_base::baud_rate]
 
- unsigned int value() const;
+ bool ``[link boost_asio.reference.socket_acceptor_service.native_non_blocking.overload1 native_non_blocking]``(
+ const implementation_type & impl) const;
+ `` [''''&raquo;''' [link boost_asio.reference.socket_acceptor_service.native_non_blocking.overload1 more...]]``
+
+
+Sets the non-blocking mode of the native acceptor implementation.
+
+
+ boost::system::error_code ``[link boost_asio.reference.socket_acceptor_service.native_non_blocking.overload2 native_non_blocking]``(
+ implementation_type & impl,
+ bool mode,
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.socket_acceptor_service.native_non_blocking.overload2 more...]]``
+
+
+[section:overload1 socket_acceptor_service::native_non_blocking (1 of 2 overloads)]
+
+
+Gets the non-blocking mode of the native acceptor implementation.
+
+
+ bool native_non_blocking(
+ const implementation_type & impl) const;
 
 
 
@@ -77466,58 +81254,74 @@
 
 
 
+[section:overload2 socket_acceptor_service::native_non_blocking (2 of 2 overloads)]
+
+
+Sets the non-blocking mode of the native acceptor implementation.
+
+
+ boost::system::error_code native_non_blocking(
+ implementation_type & impl,
+ bool mode,
+ boost::system::error_code & ec);
+
+
+
 [endsect]
 
-[section:serial_port_base__character_size serial_port_base::character_size]
 
+[endsect]
 
-Serial port option to permit changing the character size.
 
+[section:native_type socket_acceptor_service::native_type]
 
- class character_size
+[indexterm2 native_type..socket_acceptor_service]
+(Deprecated: Use native\_handle\_type.) The native acceptor type.
 
 
-[heading Member Functions]
-[table
- [[Name][Description]]
+ typedef implementation_defined native_type;
 
- [
- [[link boost_asio.reference.serial_port_base__character_size.character_size [*character_size]]]
- []
- ]
-
- [
- [[link boost_asio.reference.serial_port_base__character_size.load [*load]]]
- []
- ]
-
- [
- [[link boost_asio.reference.serial_port_base__character_size.store [*store]]]
- []
- ]
-
- [
- [[link boost_asio.reference.serial_port_base__character_size.value [*value]]]
- []
- ]
-
-]
 
-Implements changing the character size for a given serial port.
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/serial_port_base.hpp]
+[*Header: ][^boost/asio/socket_acceptor_service.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
 
-[section:character_size serial_port_base::character_size::character_size]
+[endsect]
 
-[indexterm2 character_size..serial_port_base::character_size]
 
- character_size(
- unsigned int t = 8);
+[section:non_blocking socket_acceptor_service::non_blocking]
+
+[indexterm2 non_blocking..socket_acceptor_service]
+Gets the non-blocking mode of the acceptor.
+
+
+ bool ``[link boost_asio.reference.socket_acceptor_service.non_blocking.overload1 non_blocking]``(
+ const implementation_type & impl) const;
+ `` [''''&raquo;''' [link boost_asio.reference.socket_acceptor_service.non_blocking.overload1 more...]]``
+
+
+Sets the non-blocking mode of the acceptor.
+
+
+ boost::system::error_code ``[link boost_asio.reference.socket_acceptor_service.non_blocking.overload2 non_blocking]``(
+ implementation_type & impl,
+ bool mode,
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.socket_acceptor_service.non_blocking.overload2 more...]]``
+
+
+[section:overload1 socket_acceptor_service::non_blocking (1 of 2 overloads)]
+
+
+Gets the non-blocking mode of the acceptor.
+
+
+ bool non_blocking(
+ const implementation_type & impl) const;
 
 
 
@@ -77525,12 +81329,15 @@
 
 
 
-[section:load serial_port_base::character_size::load]
+[section:overload2 socket_acceptor_service::non_blocking (2 of 2 overloads)]
 
-[indexterm2 load..serial_port_base::character_size]
 
- boost::system::error_code load(
- const BOOST_ASIO_OPTION_STORAGE & storage,
+Sets the non-blocking mode of the acceptor.
+
+
+ boost::system::error_code non_blocking(
+ implementation_type & impl,
+ bool mode,
       boost::system::error_code & ec);
 
 
@@ -77538,14 +81345,19 @@
 [endsect]
 
 
+[endsect]
 
-[section:store serial_port_base::character_size::store]
 
-[indexterm2 store..serial_port_base::character_size]
+[section:open socket_acceptor_service::open]
 
- boost::system::error_code store(
- BOOST_ASIO_OPTION_STORAGE & storage,
- boost::system::error_code & ec) const;
+[indexterm2 open..socket_acceptor_service]
+Open a new socket acceptor implementation.
+
+
+ boost::system::error_code open(
+ implementation_type & impl,
+ const protocol_type & protocol,
+ boost::system::error_code & ec);
 
 
 
@@ -77553,11 +81365,39 @@
 
 
 
-[section:value serial_port_base::character_size::value]
+[section:protocol_type socket_acceptor_service::protocol_type]
 
-[indexterm2 value..serial_port_base::character_size]
+[indexterm2 protocol_type..socket_acceptor_service]
+The protocol type.
 
- unsigned int value() const;
+
+ typedef Protocol protocol_type;
+
+
+
+[heading Requirements]
+
+[*Header: ][^boost/asio/socket_acceptor_service.hpp]
+
+[*Convenience header: ][^boost/asio.hpp]
+
+
+[endsect]
+
+
+
+[section:set_option socket_acceptor_service::set_option]
+
+[indexterm2 set_option..socket_acceptor_service]
+Set a socket option.
+
+
+ template<
+ typename ``[link boost_asio.reference.SettableSocketOption SettableSocketOption]``>
+ boost::system::error_code set_option(
+ implementation_type & impl,
+ const SettableSocketOption & option,
+ boost::system::error_code & ec);
 
 
 
@@ -77565,15 +81405,30 @@
 
 
 
+[section:socket_acceptor_service socket_acceptor_service::socket_acceptor_service]
+
+[indexterm2 socket_acceptor_service..socket_acceptor_service]
+Construct a new socket acceptor service for the specified [link boost_asio.reference.io_service `io_service`].
+
+
+ socket_acceptor_service(
+ boost::asio::io_service & io_service);
+
+
+
 [endsect]
 
-[section:serial_port_base__flow_control serial_port_base::flow_control]
 
 
-Serial port option to permit changing the flow control.
+[endsect]
+
+[section:socket_base socket_base]
 
 
- class flow_control
+The [link boost_asio.reference.socket_base `socket_base`] class is used as a base for the [link boost_asio.reference.basic_stream_socket `basic_stream_socket`] and [link boost_asio.reference.basic_datagram_socket `basic_datagram_socket`] class templates so that we have a common place to define the shutdown\_type and enum.
+
+
+ class socket_base
 
 
 [heading Types]
@@ -77582,662 +81437,514 @@
 
   [
 
- [[link boost_asio.reference.serial_port_base__flow_control.type [*type]]]
- []
+ [[link boost_asio.reference.socket_base.broadcast [*broadcast]]]
+ [Socket option to permit sending of broadcast messages. ]
   
   ]
 
-]
-
-[heading Member Functions]
-[table
- [[Name][Description]]
-
   [
- [[link boost_asio.reference.serial_port_base__flow_control.flow_control [*flow_control]]]
- []
- ]
+
+ [[link boost_asio.reference.socket_base.bytes_readable [*bytes_readable]]]
+ [IO control command to get the amount of data that can be read without blocking. ]
   
- [
- [[link boost_asio.reference.serial_port_base__flow_control.load [*load]]]
- []
   ]
-
+
   [
- [[link boost_asio.reference.serial_port_base__flow_control.store [*store]]]
- []
- ]
+
+ [[link boost_asio.reference.socket_base.debug [*debug]]]
+ [Socket option to enable socket-level debugging. ]
   
- [
- [[link boost_asio.reference.serial_port_base__flow_control.value [*value]]]
- []
   ]
-
-]
-
-Implements changing the flow control for a given serial port.
-
-[heading Requirements]
-
-[*Header: ][^boost/asio/serial_port_base.hpp]
-
-[*Convenience header: ][^boost/asio.hpp]
 
+ [
 
-[section:flow_control serial_port_base::flow_control::flow_control]
+ [[link boost_asio.reference.socket_base.do_not_route [*do_not_route]]]
+ [Socket option to prevent routing, use local interfaces only. ]
+
+ ]
 
-[indexterm2 flow_control..serial_port_base::flow_control]
+ [
 
- flow_control(
- type t = none);
+ [[link boost_asio.reference.socket_base.enable_connection_aborted [*enable_connection_aborted]]]
+ [Socket option to report aborted connections on accept. ]
+
+ ]
 
+ [
 
+ [[link boost_asio.reference.socket_base.keep_alive [*keep_alive]]]
+ [Socket option to send keep-alives. ]
+
+ ]
 
-[endsect]
+ [
 
+ [[link boost_asio.reference.socket_base.linger [*linger]]]
+ [Socket option to specify whether the socket lingers on close if unsent data is present. ]
+
+ ]
 
+ [
 
-[section:load serial_port_base::flow_control::load]
+ [[link boost_asio.reference.socket_base.message_flags [*message_flags]]]
+ [Bitmask type for flags that can be passed to send and receive operations. ]
+
+ ]
 
-[indexterm2 load..serial_port_base::flow_control]
+ [
 
- boost::system::error_code load(
- const BOOST_ASIO_OPTION_STORAGE & storage,
- boost::system::error_code & ec);
+ [[link boost_asio.reference.socket_base.non_blocking_io [*non_blocking_io]]]
+ [(Deprecated: Use non_blocking().) IO control command to set the blocking mode of the socket. ]
+
+ ]
 
+ [
 
+ [[link boost_asio.reference.socket_base.receive_buffer_size [*receive_buffer_size]]]
+ [Socket option for the receive buffer size of a socket. ]
+
+ ]
 
-[endsect]
+ [
 
+ [[link boost_asio.reference.socket_base.receive_low_watermark [*receive_low_watermark]]]
+ [Socket option for the receive low watermark. ]
+
+ ]
 
+ [
 
-[section:store serial_port_base::flow_control::store]
+ [[link boost_asio.reference.socket_base.reuse_address [*reuse_address]]]
+ [Socket option to allow the socket to be bound to an address that is already in use. ]
+
+ ]
 
-[indexterm2 store..serial_port_base::flow_control]
+ [
 
- boost::system::error_code store(
- BOOST_ASIO_OPTION_STORAGE & storage,
- boost::system::error_code & ec) const;
+ [[link boost_asio.reference.socket_base.send_buffer_size [*send_buffer_size]]]
+ [Socket option for the send buffer size of a socket. ]
+
+ ]
 
+ [
 
+ [[link boost_asio.reference.socket_base.send_low_watermark [*send_low_watermark]]]
+ [Socket option for the send low watermark. ]
+
+ ]
 
-[endsect]
+ [
 
+ [[link boost_asio.reference.socket_base.shutdown_type [*shutdown_type]]]
+ [Different ways a socket may be shutdown. ]
+
+ ]
 
+]
 
-[section:type serial_port_base::flow_control::type]
+[heading Protected Member Functions]
+[table
+ [[Name][Description]]
 
-[indexterm2 type..serial_port_base::flow_control]
+ [
+ [[link boost_asio.reference.socket_base._socket_base [*~socket_base]]]
+ [Protected destructor to prevent deletion through this type. ]
+ ]
+
+]
 
- enum type
+[heading Data Members]
+[table
+ [[Name][Description]]
 
-[indexterm2 none..serial_port_base::flow_control]
-[indexterm2 software..serial_port_base::flow_control]
-[indexterm2 hardware..serial_port_base::flow_control]
+ [
+ [[link boost_asio.reference.socket_base.max_connections [*max_connections]]]
+ [The maximum length of the queue of pending incoming connections. ]
+ ]
 
-[heading Values]
-[variablelist
+ [
+ [[link boost_asio.reference.socket_base.message_do_not_route [*message_do_not_route]]]
+ [Specify that the data should not be subject to routing. ]
+ ]
 
   [
- [none]
- []
+ [[link boost_asio.reference.socket_base.message_end_of_record [*message_end_of_record]]]
+ [Specifies that the data marks the end of a record. ]
   ]
 
   [
- [software]
- []
+ [[link boost_asio.reference.socket_base.message_out_of_band [*message_out_of_band]]]
+ [Process out-of-band data. ]
   ]
 
   [
- [hardware]
- []
+ [[link boost_asio.reference.socket_base.message_peek [*message_peek]]]
+ [Peek at incoming data without removing it from the input queue. ]
   ]
 
 ]
 
+[heading Requirements]
 
+[*Header: ][^boost/asio/socket_base.hpp]
 
-[endsect]
-
+[*Convenience header: ][^boost/asio.hpp]
 
 
-[section:value serial_port_base::flow_control::value]
+[section:broadcast socket_base::broadcast]
 
-[indexterm2 value..serial_port_base::flow_control]
+[indexterm2 broadcast..socket_base]
+Socket option to permit sending of broadcast messages.
 
- type value() const;
 
+ typedef implementation_defined broadcast;
 
 
-[endsect]
 
+Implements the SOL\_SOCKET/SO\_BROADCAST socket option.
 
 
-[endsect]
+[heading Examples]
+
+Setting the option:
 
-[section:serial_port_base__parity serial_port_base::parity]
+ boost::asio::ip::udp::socket socket(io_service);
+ ...
+ boost::asio::socket_base::broadcast option(true);
+ socket.set_option(option);
 
 
-Serial port option to permit changing the parity.
 
 
- class parity
 
+Getting the current option value:
 
-[heading Types]
-[table
- [[Name][Description]]
+ boost::asio::ip::udp::socket socket(io_service);
+ ...
+ boost::asio::socket_base::broadcast option;
+ socket.get_option(option);
+ bool is_set = option.value();
 
- [
 
- [[link boost_asio.reference.serial_port_base__parity.type [*type]]]
- []
-
- ]
 
-]
 
-[heading Member Functions]
-[table
- [[Name][Description]]
 
- [
- [[link boost_asio.reference.serial_port_base__parity.load [*load]]]
- []
- ]
-
- [
- [[link boost_asio.reference.serial_port_base__parity.parity [*parity]]]
- []
- ]
-
- [
- [[link boost_asio.reference.serial_port_base__parity.store [*store]]]
- []
- ]
-
- [
- [[link boost_asio.reference.serial_port_base__parity.value [*value]]]
- []
- ]
-
-]
 
-Implements changing the parity for a given serial port.
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/serial_port_base.hpp]
+[*Header: ][^boost/asio/socket_base.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
 
-[section:load serial_port_base::parity::load]
+[endsect]
 
-[indexterm2 load..serial_port_base::parity]
 
- boost::system::error_code load(
- const BOOST_ASIO_OPTION_STORAGE & storage,
- boost::system::error_code & ec);
 
+[section:bytes_readable socket_base::bytes_readable]
 
+[indexterm2 bytes_readable..socket_base]
+IO control command to get the amount of data that can be read without blocking.
 
-[endsect]
 
+ typedef implementation_defined bytes_readable;
 
 
-[section:parity serial_port_base::parity::parity]
 
-[indexterm2 parity..serial_port_base::parity]
+Implements the FIONREAD IO control command.
 
- parity(
- type t = none);
 
+[heading Example]
+
 
 
-[endsect]
+ boost::asio::ip::tcp::socket socket(io_service);
+ ...
+ boost::asio::socket_base::bytes_readable command(true);
+ socket.io_control(command);
+ std::size_t bytes_readable = command.get();
 
 
 
-[section:store serial_port_base::parity::store]
 
-[indexterm2 store..serial_port_base::parity]
 
- boost::system::error_code store(
- BOOST_ASIO_OPTION_STORAGE & storage,
- boost::system::error_code & ec) const;
 
 
+[heading Requirements]
 
-[endsect]
+[*Header: ][^boost/asio/socket_base.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
 
-[section:type serial_port_base::parity::type]
+[endsect]
 
-[indexterm2 type..serial_port_base::parity]
 
- enum type
 
-[indexterm2 none..serial_port_base::parity]
-[indexterm2 odd..serial_port_base::parity]
-[indexterm2 even..serial_port_base::parity]
+[section:debug socket_base::debug]
 
-[heading Values]
-[variablelist
+[indexterm2 debug..socket_base]
+Socket option to enable socket-level debugging.
 
- [
- [none]
- []
- ]
 
- [
- [odd]
- []
- ]
+ typedef implementation_defined debug;
 
- [
- [even]
- []
- ]
 
-]
 
+Implements the SOL\_SOCKET/SO\_DEBUG socket option.
 
 
-[endsect]
+[heading Examples]
+
+Setting the option:
 
+ boost::asio::ip::tcp::socket socket(io_service);
+ ...
+ boost::asio::socket_base::debug option(true);
+ socket.set_option(option);
 
 
-[section:value serial_port_base::parity::value]
 
-[indexterm2 value..serial_port_base::parity]
 
- type value() const;
 
+Getting the current option value:
 
+ boost::asio::ip::tcp::socket socket(io_service);
+ ...
+ boost::asio::socket_base::debug option;
+ socket.get_option(option);
+ bool is_set = option.value();
 
-[endsect]
 
 
 
-[endsect]
 
-[section:serial_port_base__stop_bits serial_port_base::stop_bits]
 
 
-Serial port option to permit changing the number of stop bits.
+[heading Requirements]
 
+[*Header: ][^boost/asio/socket_base.hpp]
 
- class stop_bits
+[*Convenience header: ][^boost/asio.hpp]
 
 
-[heading Types]
-[table
- [[Name][Description]]
+[endsect]
 
- [
 
- [[link boost_asio.reference.serial_port_base__stop_bits.type [*type]]]
- []
-
- ]
 
-]
+[section:do_not_route socket_base::do_not_route]
 
-[heading Member Functions]
-[table
- [[Name][Description]]
+[indexterm2 do_not_route..socket_base]
+Socket option to prevent routing, use local interfaces only.
 
- [
- [[link boost_asio.reference.serial_port_base__stop_bits.load [*load]]]
- []
- ]
-
- [
- [[link boost_asio.reference.serial_port_base__stop_bits.stop_bits [*stop_bits]]]
- []
- ]
-
- [
- [[link boost_asio.reference.serial_port_base__stop_bits.store [*store]]]
- []
- ]
-
- [
- [[link boost_asio.reference.serial_port_base__stop_bits.value [*value]]]
- []
- ]
-
-]
 
-Implements changing the number of stop bits for a given serial port.
+ typedef implementation_defined do_not_route;
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/serial_port_base.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
+Implements the SOL\_SOCKET/SO\_DONTROUTE socket option.
 
 
-[section:load serial_port_base::stop_bits::load]
+[heading Examples]
+
+Setting the option:
 
-[indexterm2 load..serial_port_base::stop_bits]
+ boost::asio::ip::udp::socket socket(io_service);
+ ...
+ boost::asio::socket_base::do_not_route option(true);
+ socket.set_option(option);
 
- boost::system::error_code load(
- const BOOST_ASIO_OPTION_STORAGE & storage,
- boost::system::error_code & ec);
 
 
 
-[endsect]
 
+Getting the current option value:
 
+ boost::asio::ip::udp::socket socket(io_service);
+ ...
+ boost::asio::socket_base::do_not_route option;
+ socket.get_option(option);
+ bool is_set = option.value();
 
-[section:stop_bits serial_port_base::stop_bits::stop_bits]
 
-[indexterm2 stop_bits..serial_port_base::stop_bits]
 
- stop_bits(
- type t = one);
 
 
 
-[endsect]
 
+[heading Requirements]
 
+[*Header: ][^boost/asio/socket_base.hpp]
 
-[section:store serial_port_base::stop_bits::store]
+[*Convenience header: ][^boost/asio.hpp]
 
-[indexterm2 store..serial_port_base::stop_bits]
 
- boost::system::error_code store(
- BOOST_ASIO_OPTION_STORAGE & storage,
- boost::system::error_code & ec) const;
+[endsect]
 
 
 
-[endsect]
+[section:enable_connection_aborted socket_base::enable_connection_aborted]
 
+[indexterm2 enable_connection_aborted..socket_base]
+Socket option to report aborted connections on accept.
 
 
-[section:type serial_port_base::stop_bits::type]
+ typedef implementation_defined enable_connection_aborted;
 
-[indexterm2 type..serial_port_base::stop_bits]
 
- enum type
 
-[indexterm2 one..serial_port_base::stop_bits]
-[indexterm2 onepointfive..serial_port_base::stop_bits]
-[indexterm2 two..serial_port_base::stop_bits]
+Implements a custom socket option that determines whether or not an accept operation is permitted to fail with `boost::asio::error::connection_aborted`. By default the option is false.
 
-[heading Values]
-[variablelist
 
- [
- [one]
- []
- ]
+[heading Examples]
+
+Setting the option:
 
- [
- [onepointfive]
- []
- ]
+ boost::asio::ip::tcp::acceptor acceptor(io_service);
+ ...
+ boost::asio::socket_base::enable_connection_aborted option(true);
+ acceptor.set_option(option);
 
- [
- [two]
- []
- ]
 
-]
 
 
 
-[endsect]
+Getting the current option value:
+
+ boost::asio::ip::tcp::acceptor acceptor(io_service);
+ ...
+ boost::asio::socket_base::enable_connection_aborted option;
+ acceptor.get_option(option);
+ bool is_set = option.value();
 
 
 
-[section:value serial_port_base::stop_bits::value]
 
-[indexterm2 value..serial_port_base::stop_bits]
 
- type value() const;
 
 
+[heading Requirements]
 
-[endsect]
+[*Header: ][^boost/asio/socket_base.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
-[section:serial_port_service serial_port_service]
 
 
-Default service implementation for a serial port.
+[section:keep_alive socket_base::keep_alive]
 
+[indexterm2 keep_alive..socket_base]
+Socket option to send keep-alives.
 
- class serial_port_service :
- public io_service::service
 
+ typedef implementation_defined keep_alive;
 
-[heading Types]
-[table
- [[Name][Description]]
 
- [
 
- [[link boost_asio.reference.serial_port_service.implementation_type [*implementation_type]]]
- [The type of a serial port implementation. ]
-
- ]
+Implements the SOL\_SOCKET/SO\_KEEPALIVE socket option.
 
- [
 
- [[link boost_asio.reference.serial_port_service.native_handle_type [*native_handle_type]]]
- [The native handle type. ]
+[heading Examples]
   
- ]
+Setting the option:
 
- [
+ boost::asio::ip::tcp::socket socket(io_service);
+ ...
+ boost::asio::socket_base::keep_alive option(true);
+ socket.set_option(option);
 
- [[link boost_asio.reference.serial_port_service.native_type [*native_type]]]
- [(Deprecated: Use native_handle_type.) The native handle type. ]
-
- ]
 
-]
 
-[heading Member Functions]
-[table
- [[Name][Description]]
 
- [
- [[link boost_asio.reference.serial_port_service.assign [*assign]]]
- [Assign an existing native handle to a serial port. ]
- ]
-
- [
- [[link boost_asio.reference.serial_port_service.async_read_some [*async_read_some]]]
- [Start an asynchronous read. ]
- ]
-
- [
- [[link boost_asio.reference.serial_port_service.async_write_some [*async_write_some]]]
- [Start an asynchronous write. ]
- ]
-
- [
- [[link boost_asio.reference.serial_port_service.cancel [*cancel]]]
- [Cancel all asynchronous operations associated with the handle. ]
- ]
-
- [
- [[link boost_asio.reference.serial_port_service.close [*close]]]
- [Close a serial port implementation. ]
- ]
-
- [
- [[link boost_asio.reference.serial_port_service.construct [*construct]]]
- [Construct a new serial port implementation. ]
- ]
-
- [
- [[link boost_asio.reference.serial_port_service.destroy [*destroy]]]
- [Destroy a serial port implementation. ]
- ]
-
- [
- [[link boost_asio.reference.serial_port_service.get_io_service [*get_io_service]]]
- [Get the io_service object that owns the service. ]
- ]
-
- [
- [[link boost_asio.reference.serial_port_service.get_option [*get_option]]]
- [Get a serial port option. ]
- ]
-
- [
- [[link boost_asio.reference.serial_port_service.is_open [*is_open]]]
- [Determine whether the handle is open. ]
- ]
-
- [
- [[link boost_asio.reference.serial_port_service.move_assign [*move_assign]]]
- [Move-assign from another serial port implementation. ]
- ]
-
- [
- [[link boost_asio.reference.serial_port_service.move_construct [*move_construct]]]
- [Move-construct a new serial port implementation. ]
- ]
-
- [
- [[link boost_asio.reference.serial_port_service.native [*native]]]
- [(Deprecated: Use native_handle().) Get the native handle implementation. ]
- ]
-
- [
- [[link boost_asio.reference.serial_port_service.native_handle [*native_handle]]]
- [Get the native handle implementation. ]
- ]
-
- [
- [[link boost_asio.reference.serial_port_service.open [*open]]]
- [Open a serial port. ]
- ]
-
- [
- [[link boost_asio.reference.serial_port_service.read_some [*read_some]]]
- [Read some data from the stream. ]
- ]
-
- [
- [[link boost_asio.reference.serial_port_service.send_break [*send_break]]]
- [Send a break sequence to the serial port. ]
- ]
-
- [
- [[link boost_asio.reference.serial_port_service.serial_port_service [*serial_port_service]]]
- [Construct a new serial port service for the specified io_service. ]
- ]
-
- [
- [[link boost_asio.reference.serial_port_service.set_option [*set_option]]]
- [Set a serial port option. ]
- ]
-
- [
- [[link boost_asio.reference.serial_port_service.write_some [*write_some]]]
- [Write the given data to the stream. ]
- ]
-
-]
 
-[heading Data Members]
-[table
- [[Name][Description]]
+Getting the current option value:
+
+ boost::asio::ip::tcp::socket socket(io_service);
+ ...
+ boost::asio::socket_base::keep_alive option;
+ socket.get_option(option);
+ bool is_set = option.value();
+
+
+
+
 
- [
- [[link boost_asio.reference.serial_port_service.id [*id]]]
- [The unique service identifier. ]
- ]
 
-]
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/serial_port_service.hpp]
+[*Header: ][^boost/asio/socket_base.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
 
-[section:assign serial_port_service::assign]
+[endsect]
+
+
+
+[section:linger socket_base::linger]
+
+[indexterm2 linger..socket_base]
+Socket option to specify whether the socket lingers on close if unsent data is present.
+
 
-[indexterm2 assign..serial_port_service]
-Assign an existing native handle to a serial port.
+ typedef implementation_defined linger;
 
 
- boost::system::error_code assign(
- implementation_type & impl,
- const native_handle_type & handle,
- boost::system::error_code & ec);
 
+Implements the SOL\_SOCKET/SO\_LINGER socket option.
 
 
-[endsect]
+[heading Examples]
+
+Setting the option:
 
+ boost::asio::ip::tcp::socket socket(io_service);
+ ...
+ boost::asio::socket_base::linger option(true, 30);
+ socket.set_option(option);
 
 
-[section:async_read_some serial_port_service::async_read_some]
 
-[indexterm2 async_read_some..serial_port_service]
-Start an asynchronous read.
 
 
- template<
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
- typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void async_read_some(
- implementation_type & impl,
- const MutableBufferSequence & buffers,
- ReadHandler handler);
+Getting the current option value:
 
+ boost::asio::ip::tcp::socket socket(io_service);
+ ...
+ boost::asio::socket_base::linger option;
+ socket.get_option(option);
+ bool is_set = option.enabled();
+ unsigned short timeout = option.timeout();
 
 
-[endsect]
 
 
 
-[section:async_write_some serial_port_service::async_write_some]
 
-[indexterm2 async_write_some..serial_port_service]
-Start an asynchronous write.
 
+[heading Requirements]
 
- template<
- typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
- typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
- void async_write_some(
- implementation_type & impl,
- const ConstBufferSequence & buffers,
- WriteHandler handler);
+[*Header: ][^boost/asio/socket_base.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
 
-[section:cancel serial_port_service::cancel]
+[section:max_connections socket_base::max_connections]
 
-[indexterm2 cancel..serial_port_service]
-Cancel all asynchronous operations associated with the handle.
+[indexterm2 max_connections..socket_base]
+The maximum length of the queue of pending incoming connections.
 
 
- boost::system::error_code cancel(
- implementation_type & impl,
- boost::system::error_code & ec);
+ static const int max_connections = implementation_defined;
 
 
 
@@ -78245,15 +81952,13 @@
 
 
 
-[section:close serial_port_service::close]
+[section:message_do_not_route socket_base::message_do_not_route]
 
-[indexterm2 close..serial_port_service]
-Close a serial port implementation.
+[indexterm2 message_do_not_route..socket_base]
+Specify that the data should not be subject to routing.
 
 
- boost::system::error_code close(
- implementation_type & impl,
- boost::system::error_code & ec);
+ static const int message_do_not_route = implementation_defined;
 
 
 
@@ -78261,14 +81966,13 @@
 
 
 
-[section:construct serial_port_service::construct]
+[section:message_end_of_record socket_base::message_end_of_record]
 
-[indexterm2 construct..serial_port_service]
-Construct a new serial port implementation.
+[indexterm2 message_end_of_record..socket_base]
+Specifies that the data marks the end of a record.
 
 
- void construct(
- implementation_type & impl);
+ static const int message_end_of_record = implementation_defined;
 
 
 
@@ -78276,31 +81980,34 @@
 
 
 
-[section:destroy serial_port_service::destroy]
+[section:message_flags socket_base::message_flags]
 
-[indexterm2 destroy..serial_port_service]
-Destroy a serial port implementation.
+[indexterm2 message_flags..socket_base]
+Bitmask type for flags that can be passed to send and receive operations.
 
 
- void destroy(
- implementation_type & impl);
+ typedef int message_flags;
 
 
 
-[endsect]
+[heading Requirements]
 
+[*Header: ][^boost/asio/socket_base.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
-[section:get_io_service serial_port_service::get_io_service]
 
+[endsect]
 
-['Inherited from io_service.]
 
-[indexterm2 get_io_service..serial_port_service]
-Get the [link boost_asio.reference.io_service `io_service`] object that owns the service.
 
+[section:message_out_of_band socket_base::message_out_of_band]
 
- boost::asio::io_service & get_io_service();
+[indexterm2 message_out_of_band..socket_base]
+Process out-of-band data.
+
+
+ static const int message_out_of_band = implementation_defined;
 
 
 
@@ -78308,18 +82015,13 @@
 
 
 
-[section:get_option serial_port_service::get_option]
+[section:message_peek socket_base::message_peek]
 
-[indexterm2 get_option..serial_port_service]
-Get a serial port option.
+[indexterm2 message_peek..socket_base]
+Peek at incoming data without removing it from the input queue.
 
 
- template<
- typename ``[link boost_asio.reference.GettableSerialPortOption GettableSerialPortOption]``>
- boost::system::error_code get_option(
- const implementation_type & impl,
- GettableSerialPortOption & option,
- boost::system::error_code & ec) const;
+ static const int message_peek = implementation_defined;
 
 
 
@@ -78327,33 +82029,37 @@
 
 
 
-[section:id serial_port_service::id]
+[section:non_blocking_io socket_base::non_blocking_io]
 
-[indexterm2 id..serial_port_service]
-The unique service identifier.
+[indexterm2 non_blocking_io..socket_base]
+(Deprecated: Use non\_blocking().) IO control command to set the blocking mode of the socket.
 
 
- static boost::asio::io_service::id id;
+ typedef implementation_defined non_blocking_io;
 
 
 
-[endsect]
+Implements the FIONBIO IO control command.
+
 
+[heading Example]
+
 
 
-[section:implementation_type serial_port_service::implementation_type]
+ boost::asio::ip::tcp::socket socket(io_service);
+ ...
+ boost::asio::socket_base::non_blocking_io command(true);
+ socket.io_control(command);
+
 
-[indexterm2 implementation_type..serial_port_service]
-The type of a serial port implementation.
 
 
- typedef implementation_defined implementation_type;
 
 
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/serial_port_service.hpp]
+[*Header: ][^boost/asio/socket_base.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
@@ -78362,97 +82068,100 @@
 
 
 
-[section:is_open serial_port_service::is_open]
+[section:receive_buffer_size socket_base::receive_buffer_size]
 
-[indexterm2 is_open..serial_port_service]
-Determine whether the handle is open.
+[indexterm2 receive_buffer_size..socket_base]
+Socket option for the receive buffer size of a socket.
 
 
- bool is_open(
- const implementation_type & impl) const;
+ typedef implementation_defined receive_buffer_size;
 
 
 
-[endsect]
+Implements the SOL\_SOCKET/SO\_RCVBUF socket option.
 
 
+[heading Examples]
+
+Setting the option:
 
-[section:move_assign serial_port_service::move_assign]
+ boost::asio::ip::tcp::socket socket(io_service);
+ ...
+ boost::asio::socket_base::receive_buffer_size option(8192);
+ socket.set_option(option);
 
-[indexterm2 move_assign..serial_port_service]
-Move-assign from another serial port implementation.
 
 
- void move_assign(
- implementation_type & impl,
- serial_port_service & other_service,
- implementation_type & other_impl);
 
 
+Getting the current option value:
 
-[endsect]
+ boost::asio::ip::tcp::socket socket(io_service);
+ ...
+ boost::asio::socket_base::receive_buffer_size option;
+ socket.get_option(option);
+ int size = option.value();
 
 
 
-[section:move_construct serial_port_service::move_construct]
 
-[indexterm2 move_construct..serial_port_service]
-Move-construct a new serial port implementation.
 
 
- void move_construct(
- implementation_type & impl,
- implementation_type & other_impl);
 
+[heading Requirements]
 
+[*Header: ][^boost/asio/socket_base.hpp]
 
-[endsect]
+[*Convenience header: ][^boost/asio.hpp]
 
 
+[endsect]
 
-[section:native serial_port_service::native]
 
-[indexterm2 native..serial_port_service]
-(Deprecated: Use `native_handle()`.) Get the native handle implementation.
 
+[section:receive_low_watermark socket_base::receive_low_watermark]
 
- native_type native(
- implementation_type & impl);
+[indexterm2 receive_low_watermark..socket_base]
+Socket option for the receive low watermark.
 
 
+ typedef implementation_defined receive_low_watermark;
 
-[endsect]
 
 
+Implements the SOL\_SOCKET/SO\_RCVLOWAT socket option.
 
-[section:native_handle serial_port_service::native_handle]
 
-[indexterm2 native_handle..serial_port_service]
-Get the native handle implementation.
+[heading Examples]
+
+Setting the option:
 
+ boost::asio::ip::tcp::socket socket(io_service);
+ ...
+ boost::asio::socket_base::receive_low_watermark option(1024);
+ socket.set_option(option);
 
- native_handle_type native_handle(
- implementation_type & impl);
 
 
 
-[endsect]
 
+Getting the current option value:
 
+ boost::asio::ip::tcp::socket socket(io_service);
+ ...
+ boost::asio::socket_base::receive_low_watermark option;
+ socket.get_option(option);
+ int size = option.value();
 
-[section:native_handle_type serial_port_service::native_handle_type]
 
-[indexterm2 native_handle_type..serial_port_service]
-The native handle type.
 
 
- typedef implementation_defined native_handle_type;
 
 
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/serial_port_service.hpp]
+[*Header: ][^boost/asio/socket_base.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
@@ -78461,19 +82170,49 @@
 
 
 
-[section:native_type serial_port_service::native_type]
+[section:reuse_address socket_base::reuse_address]
+
+[indexterm2 reuse_address..socket_base]
+Socket option to allow the socket to be bound to an address that is already in use.
+
+
+ typedef implementation_defined reuse_address;
+
+
+
+Implements the SOL\_SOCKET/SO\_REUSEADDR socket option.
+
+
+[heading Examples]
+
+Setting the option:
+
+ boost::asio::ip::tcp::acceptor acceptor(io_service);
+ ...
+ boost::asio::socket_base::reuse_address option(true);
+ acceptor.set_option(option);
+
+
+
+
+
+Getting the current option value:
+
+ boost::asio::ip::tcp::acceptor acceptor(io_service);
+ ...
+ boost::asio::socket_base::reuse_address option;
+ acceptor.get_option(option);
+ bool is_set = option.value();
+
 
-[indexterm2 native_type..serial_port_service]
-(Deprecated: Use native\_handle\_type.) The native handle type.
 
 
- typedef implementation_defined native_type;
 
 
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/serial_port_service.hpp]
+[*Header: ][^boost/asio/socket_base.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
@@ -78482,145 +82221,153 @@
 
 
 
-[section:open serial_port_service::open]
+[section:send_buffer_size socket_base::send_buffer_size]
 
-[indexterm2 open..serial_port_service]
-Open a serial port.
+[indexterm2 send_buffer_size..socket_base]
+Socket option for the send buffer size of a socket.
 
 
- boost::system::error_code open(
- implementation_type & impl,
- const std::string & device,
- boost::system::error_code & ec);
+ typedef implementation_defined send_buffer_size;
 
 
 
-[endsect]
+Implements the SOL\_SOCKET/SO\_SNDBUF socket option.
 
 
+[heading Examples]
+
+Setting the option:
 
-[section:read_some serial_port_service::read_some]
+ boost::asio::ip::tcp::socket socket(io_service);
+ ...
+ boost::asio::socket_base::send_buffer_size option(8192);
+ socket.set_option(option);
 
-[indexterm2 read_some..serial_port_service]
-Read some data from the stream.
 
 
- template<
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
- std::size_t read_some(
- implementation_type & impl,
- const MutableBufferSequence & buffers,
- boost::system::error_code & ec);
 
 
+Getting the current option value:
 
-[endsect]
+ boost::asio::ip::tcp::socket socket(io_service);
+ ...
+ boost::asio::socket_base::send_buffer_size option;
+ socket.get_option(option);
+ int size = option.value();
 
 
 
-[section:send_break serial_port_service::send_break]
 
-[indexterm2 send_break..serial_port_service]
-Send a break sequence to the serial port.
 
 
- boost::system::error_code send_break(
- implementation_type & impl,
- boost::system::error_code & ec);
 
+[heading Requirements]
+
+[*Header: ][^boost/asio/socket_base.hpp]
+
+[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
 
-[section:serial_port_service serial_port_service::serial_port_service]
+[section:send_low_watermark socket_base::send_low_watermark]
 
-[indexterm2 serial_port_service..serial_port_service]
-Construct a new serial port service for the specified [link boost_asio.reference.io_service `io_service`].
+[indexterm2 send_low_watermark..socket_base]
+Socket option for the send low watermark.
 
 
- serial_port_service(
- boost::asio::io_service & io_service);
+ typedef implementation_defined send_low_watermark;
 
 
 
-[endsect]
+Implements the SOL\_SOCKET/SO\_SNDLOWAT socket option.
+
+
+[heading Examples]
+
+Setting the option:
 
+ boost::asio::ip::tcp::socket socket(io_service);
+ ...
+ boost::asio::socket_base::send_low_watermark option(1024);
+ socket.set_option(option);
 
 
-[section:set_option serial_port_service::set_option]
 
-[indexterm2 set_option..serial_port_service]
-Set a serial port option.
 
 
- template<
- typename ``[link boost_asio.reference.SettableSerialPortOption SettableSerialPortOption]``>
- boost::system::error_code set_option(
- implementation_type & impl,
- const SettableSerialPortOption & option,
- boost::system::error_code & ec);
+Getting the current option value:
 
+ boost::asio::ip::tcp::socket socket(io_service);
+ ...
+ boost::asio::socket_base::send_low_watermark option;
+ socket.get_option(option);
+ int size = option.value();
 
 
-[endsect]
 
 
 
-[section:write_some serial_port_service::write_some]
 
-[indexterm2 write_some..serial_port_service]
-Write the given data to the stream.
 
+[heading Requirements]
 
- template<
- typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
- std::size_t write_some(
- implementation_type & impl,
- const ConstBufferSequence & buffers,
- boost::system::error_code & ec);
+[*Header: ][^boost/asio/socket_base.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
 
-[endsect]
+[section:shutdown_type socket_base::shutdown_type]
 
-[section:service_already_exists service_already_exists]
+[indexterm2 shutdown_type..socket_base]
+Different ways a socket may be shutdown.
 
 
-Exception thrown when trying to add a duplicate service to an [link boost_asio.reference.io_service `io_service`].
+ enum shutdown_type
 
+[indexterm2 shutdown_receive..socket_base]
+[indexterm2 shutdown_send..socket_base]
+[indexterm2 shutdown_both..socket_base]
 
- class service_already_exists
+[heading Values]
+[variablelist
 
+ [
+ [shutdown_receive]
+ [Shutdown the receive side of the socket. ]
+ ]
 
-[heading Member Functions]
-[table
- [[Name][Description]]
+ [
+ [shutdown_send]
+ [Shutdown the send side of the socket. ]
+ ]
 
   [
- [[link boost_asio.reference.service_already_exists.service_already_exists [*service_already_exists]]]
- []
+ [shutdown_both]
+ [Shutdown both send and receive on the socket. ]
   ]
-
+
 ]
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/io_service.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
+[endsect]
 
 
-[section:service_already_exists service_already_exists::service_already_exists]
 
-[indexterm2 service_already_exists..service_already_exists]
+[section:_socket_base socket_base::~socket_base]
+
+[indexterm2 ~socket_base..socket_base]
+Protected destructor to prevent deletion through this type.
 
- service_already_exists();
+
+ ~socket_base();
 
 
 
@@ -78630,14 +82377,13 @@
 
 [endsect]
 
+[section:ssl__context ssl::context]
 
-[section:signal_set signal_set]
-
-[indexterm1 signal_set]
-Typedef for the typical usage of a signal set.
 
 
- typedef basic_signal_set signal_set;
+ class context :
+ public ssl::context_base,
+ noncopyable
 
 
 [heading Types]
@@ -78646,15 +82392,43 @@
 
   [
 
- [[link boost_asio.reference.basic_signal_set.implementation_type [*implementation_type]]]
- [The underlying implementation type of I/O object. ]
+ [[link boost_asio.reference.ssl__context.file_format [*file_format]]]
+ [File format types. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.basic_signal_set.service_type [*service_type]]]
- [The type of the service that will be used to provide I/O operations. ]
+ [[link boost_asio.reference.ssl__context.impl_type [*impl_type]]]
+ [(Deprecated: Use native_handle_type.) The native type of the SSL context. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.ssl__context.method [*method]]]
+ [Different methods supported by a context. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.ssl__context.native_handle_type [*native_handle_type]]]
+ [The native handle type of the SSL context. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.ssl__context.options [*options]]]
+ [Bitmask type for SSL options. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.ssl__context.password_purpose [*password_purpose]]]
+ [Purpose of PEM password. ]
   
   ]
 
@@ -78665,271 +82439,267 @@
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.basic_signal_set.add [*add]]]
- [Add a signal to a signal_set. ]
+ [[link boost_asio.reference.ssl__context.add_verify_path [*add_verify_path]]]
+ [Add a directory containing certificate authority files to be used for performing verification. ]
   ]
   
   [
- [[link boost_asio.reference.basic_signal_set.async_wait [*async_wait]]]
- [Start an asynchronous operation to wait for a signal to be delivered. ]
+ [[link boost_asio.reference.ssl__context.context [*context]]]
+ [Constructor.
+
+ Deprecated constructor taking a reference to an io_service object.
+
+ Move-construct a context from another. ]
   ]
   
   [
- [[link boost_asio.reference.basic_signal_set.basic_signal_set [*basic_signal_set]]]
- [Construct a signal set without adding any signals.
-
- Construct a signal set and add one signal.
-
- Construct a signal set and add two signals.
-
- Construct a signal set and add three signals. ]
+ [[link boost_asio.reference.ssl__context.impl [*impl]]]
+ [(Deprecated: Use native_handle().) Get the underlying implementation in the native type. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ssl__context.load_verify_file [*load_verify_file]]]
+ [Load a certification authority file for performing verification. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ssl__context.native_handle [*native_handle]]]
+ [Get the underlying implementation in the native type. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ssl__context.operator_eq_ [*operator=]]]
+ [Move-assign a context from another. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ssl__context.set_default_verify_paths [*set_default_verify_paths]]]
+ [Configures the context to use the default directories for finding certification authority certificates. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ssl__context.set_options [*set_options]]]
+ [Set options on the context. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ssl__context.set_password_callback [*set_password_callback]]]
+ [Set the password callback. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ssl__context.set_verify_callback [*set_verify_callback]]]
+ [Set the callback used to verify peer certificates. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ssl__context.set_verify_mode [*set_verify_mode]]]
+ [Set the peer verification mode. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ssl__context.use_certificate_chain_file [*use_certificate_chain_file]]]
+ [Use a certificate chain from a file. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ssl__context.use_certificate_file [*use_certificate_file]]]
+ [Use a certificate from a file. ]
   ]
   
   [
- [[link boost_asio.reference.basic_signal_set.cancel [*cancel]]]
- [Cancel all operations associated with the signal set. ]
+ [[link boost_asio.reference.ssl__context.use_private_key_file [*use_private_key_file]]]
+ [Use a private key from a file. ]
   ]
   
   [
- [[link boost_asio.reference.basic_signal_set.clear [*clear]]]
- [Remove all signals from a signal_set. ]
+ [[link boost_asio.reference.ssl__context.use_rsa_private_key_file [*use_rsa_private_key_file]]]
+ [Use an RSA private key from a file. ]
   ]
   
   [
- [[link boost_asio.reference.basic_signal_set.get_io_service [*get_io_service]]]
- [Get the io_service associated with the object. ]
+ [[link boost_asio.reference.ssl__context.use_tmp_dh_file [*use_tmp_dh_file]]]
+ [Use the specified file to obtain the temporary Diffie-Hellman parameters. ]
   ]
   
   [
- [[link boost_asio.reference.basic_signal_set.remove [*remove]]]
- [Remove a signal from a signal_set. ]
+ [[link boost_asio.reference.ssl__context._context [*~context]]]
+ [Destructor. ]
   ]
   
 ]
 
-[heading Protected Member Functions]
+[heading Data Members]
 [table
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.basic_signal_set.get_implementation [*get_implementation]]]
- [Get the underlying implementation of the I/O object. ]
+ [[link boost_asio.reference.ssl__context.default_workarounds [*default_workarounds]]]
+ [Implement various bug workarounds. ]
   ]
-
+
   [
- [[link boost_asio.reference.basic_signal_set.get_service [*get_service]]]
- [Get the service associated with the I/O object. ]
+ [[link boost_asio.reference.ssl__context.no_sslv2 [*no_sslv2]]]
+ [Disable SSL v2. ]
   ]
-
-]
 
-[heading Protected Data Members]
-[table
- [[Name][Description]]
+ [
+ [[link boost_asio.reference.ssl__context.no_sslv3 [*no_sslv3]]]
+ [Disable SSL v3. ]
+ ]
 
   [
- [[link boost_asio.reference.basic_signal_set.implementation [*implementation]]]
- [(Deprecated: Use get_implementation().) The underlying implementation of the I/O object. ]
+ [[link boost_asio.reference.ssl__context.no_tlsv1 [*no_tlsv1]]]
+ [Disable TLS v1. ]
   ]
 
   [
- [[link boost_asio.reference.basic_signal_set.service [*service]]]
- [(Deprecated: Use get_service().) The service associated with the I/O object. ]
+ [[link boost_asio.reference.ssl__context.single_dh_use [*single_dh_use]]]
+ [Always create a new key when using tmp_dh parameters. ]
   ]
 
 ]
 
-The [link boost_asio.reference.basic_signal_set `basic_signal_set`] class template provides the ability to perform an asynchronous wait for one or more signals to occur.
-
-Most applications will use the [link boost_asio.reference.signal_set `signal_set`] typedef.
-
+[heading Requirements]
 
-[heading Thread Safety]
-
-[*Distinct] [*objects:] Safe.
+[*Header: ][^boost/asio/ssl/context.hpp]
 
-[*Shared] [*objects:] Unsafe.
+[*Convenience header: ][^boost/asio/ssl.hpp]
 
+[section:add_verify_path ssl::context::add_verify_path]
 
-[heading Example]
-
-Performing an asynchronous wait:
+[indexterm2 add_verify_path..ssl::context]
+Add a directory containing certificate authority files to be used for performing verification.
 
- void handler(
- const boost::system::error_code& error,
- int signal_number)
- {
- if (!error)
- {
- // A signal occurred.
- }
- }
 
- ...
+ void ``[link boost_asio.reference.ssl__context.add_verify_path.overload1 add_verify_path]``(
+ const std::string & path);
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__context.add_verify_path.overload1 more...]]``
 
- // Construct a signal set registered for process termination.
- boost::asio::signal_set signals(io_service, SIGINT, SIGTERM);
+ boost::system::error_code ``[link boost_asio.reference.ssl__context.add_verify_path.overload2 add_verify_path]``(
+ const std::string & path,
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__context.add_verify_path.overload2 more...]]``
 
- // Start an asynchronous wait for one of the signals to occur.
- signals.async_wait(handler);
 
+[section:overload1 ssl::context::add_verify_path (1 of 2 overloads)]
 
 
+Add a directory containing certificate authority files to be used for performing verification.
 
 
-[heading Queueing of signal notifications]
-
+ void add_verify_path(
+ const std::string & path);
 
 
-If a signal is registered with a signal\_set, and the signal occurs when there are no waiting handlers, then the signal notification is queued. The next async\_wait operation on that signal\_set will dequeue the notification. If multiple notifications are queued, subsequent async\_wait operations dequeue them one at a time. Signal notifications are dequeued in order of ascending signal number.
+This function is used to specify the name of a directory containing certification authority certificates. Each file in the directory must contain a single certificate. The files must be named using the subject name's hash and an extension of ".0".
 
-If a signal number is removed from a signal\_set (using the `remove` or `erase` member functions) then any queued notifications for that signal are discarded.
 
+[heading Parameters]
+
 
-[heading Multiple registration of signals]
+[variablelist
   
+[[path][The name of a directory containing the certificates.]]
 
+]
 
-The same signal number may be registered with different signal\_set objects. When the signal occurs, one handler is called for each signal\_set object.
-
-Note that multiple registration only works for signals that are registered using Asio. The application must not also register a signal handler using functions such as `signal()` or `sigaction()`.
 
+[heading Exceptions]
+
 
-[heading Signal masking on POSIX platforms]
+[variablelist
   
+[[boost::system::system_error][Thrown on failure.]]
 
-
-POSIX allows signals to be blocked using functions such as `sigprocmask()` and `pthread_sigmask()`. For signals to be delivered, programs must ensure that any signals registered using signal\_set objects are unblocked in at least one thread.
+]
 
 
-[heading Requirements]
+[heading Remarks]
+
+Calls `SSL_CTX_load_verify_locations`.
 
-[*Header: ][^boost/asio/signal_set.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
-[section:signal_set_service signal_set_service]
 
+[section:overload2 ssl::context::add_verify_path (2 of 2 overloads)]
 
-Default service implementation for a signal set.
 
+Add a directory containing certificate authority files to be used for performing verification.
 
- class signal_set_service :
- public io_service::service
 
+ boost::system::error_code add_verify_path(
+ const std::string & path,
+ boost::system::error_code & ec);
 
-[heading Types]
-[table
- [[Name][Description]]
 
- [
+This function is used to specify the name of a directory containing certification authority certificates. Each file in the directory must contain a single certificate. The files must be named using the subject name's hash and an extension of ".0".
 
- [[link boost_asio.reference.signal_set_service.implementation_type [*implementation_type]]]
- [The type of a signal set implementation. ]
+
+[heading Parameters]
+
+
+[variablelist
   
- ]
+[[path][The name of a directory containing the certificates.]]
+
+[[ec][Set to indicate what error occurred, if any.]]
 
 ]
 
-[heading Member Functions]
-[table
- [[Name][Description]]
 
- [
- [[link boost_asio.reference.signal_set_service.add [*add]]]
- [Add a signal to a signal_set. ]
- ]
-
- [
- [[link boost_asio.reference.signal_set_service.async_wait [*async_wait]]]
- []
- ]
-
- [
- [[link boost_asio.reference.signal_set_service.cancel [*cancel]]]
- [Cancel all operations associated with the signal set. ]
- ]
-
- [
- [[link boost_asio.reference.signal_set_service.clear [*clear]]]
- [Remove all signals from a signal_set. ]
- ]
-
- [
- [[link boost_asio.reference.signal_set_service.construct [*construct]]]
- [Construct a new signal set implementation. ]
- ]
-
- [
- [[link boost_asio.reference.signal_set_service.destroy [*destroy]]]
- [Destroy a signal set implementation. ]
- ]
-
- [
- [[link boost_asio.reference.signal_set_service.get_io_service [*get_io_service]]]
- [Get the io_service object that owns the service. ]
- ]
-
- [
- [[link boost_asio.reference.signal_set_service.remove [*remove]]]
- [Remove a signal to a signal_set. ]
- ]
-
- [
- [[link boost_asio.reference.signal_set_service.signal_set_service [*signal_set_service]]]
- [Construct a new signal set service for the specified io_service. ]
- ]
-
-]
+[heading Remarks]
+
+Calls `SSL_CTX_load_verify_locations`.
 
-[heading Data Members]
-[table
- [[Name][Description]]
 
- [
- [[link boost_asio.reference.signal_set_service.id [*id]]]
- [The unique service identifier. ]
- ]
 
-]
 
-[heading Requirements]
+[endsect]
 
-[*Header: ][^boost/asio/signal_set_service.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
+[endsect]
 
+[section:context ssl::context::context]
 
-[section:add signal_set_service::add]
+[indexterm2 context..ssl::context]
+Constructor.
 
-[indexterm2 add..signal_set_service]
-Add a signal to a signal\_set.
 
+ explicit ``[link boost_asio.reference.ssl__context.context.overload1 context]``(
+ method m);
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__context.context.overload1 more...]]``
 
- boost::system::error_code add(
- implementation_type & impl,
- int signal_number,
- boost::system::error_code & ec);
 
+Deprecated constructor taking a reference to an [link boost_asio.reference.io_service `io_service`] object.
 
 
-[endsect]
+ ``[link boost_asio.reference.ssl__context.context.overload2 context]``(
+ boost::asio::io_service & ,
+ method m);
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__context.context.overload2 more...]]``
 
 
+Move-construct a context from another.
 
-[section:async_wait signal_set_service::async_wait]
 
-[indexterm2 async_wait..signal_set_service]
+ ``[link boost_asio.reference.ssl__context.context.overload3 context]``(
+ context && other);
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__context.context.overload3 more...]]``
 
- template<
- typename ``[link boost_asio.reference.SignalHandler SignalHandler]``>
- void async_wait(
- implementation_type & impl,
- SignalHandler handler);
+
+[section:overload1 ssl::context::context (1 of 3 overloads)]
+
+
+Constructor.
+
+
+ context(
+ method m);
 
 
 
@@ -78937,15 +82707,15 @@
 
 
 
-[section:cancel signal_set_service::cancel]
+[section:overload2 ssl::context::context (2 of 3 overloads)]
 
-[indexterm2 cancel..signal_set_service]
-Cancel all operations associated with the signal set.
+
+Deprecated constructor taking a reference to an [link boost_asio.reference.io_service `io_service`] object.
 
 
- boost::system::error_code cancel(
- implementation_type & impl,
- boost::system::error_code & ec);
+ context(
+ boost::asio::io_service & ,
+ method m);
 
 
 
@@ -78953,45 +82723,54 @@
 
 
 
-[section:clear signal_set_service::clear]
+[section:overload3 ssl::context::context (3 of 3 overloads)]
 
-[indexterm2 clear..signal_set_service]
-Remove all signals from a signal\_set.
+
+Move-construct a context from another.
 
 
- boost::system::error_code clear(
- implementation_type & impl,
- boost::system::error_code & ec);
+ context(
+ context && other);
 
 
+This constructor moves an SSL context from one object to another.
 
-[endsect]
 
+[heading Parameters]
+
 
+[variablelist
+
+[[other][The other context object from which the move will occur.]]
 
-[section:construct signal_set_service::construct]
+]
+
+
+[heading Remarks]
+
+Following the move, the following operations only are valid for the moved-from object:
+* Destruction.
+
+* As a target for move-assignment.
 
-[indexterm2 construct..signal_set_service]
-Construct a new signal set implementation.
 
 
- void construct(
- implementation_type & impl);
 
 
 
 [endsect]
 
 
+[endsect]
 
-[section:destroy signal_set_service::destroy]
 
-[indexterm2 destroy..signal_set_service]
-Destroy a signal set implementation.
+[section:default_workarounds ssl::context::default_workarounds]
 
+[indexterm2 default_workarounds..ssl::context]
+Implement various bug workarounds.
 
- void destroy(
- implementation_type & impl);
+
+ static const int default_workarounds = implementation_defined;
 
 
 
@@ -78999,16 +82778,31 @@
 
 
 
-[section:get_io_service signal_set_service::get_io_service]
+[section:file_format ssl::context::file_format]
 
+[indexterm2 file_format..ssl::context]
+File format types.
 
-['Inherited from io_service.]
 
-[indexterm2 get_io_service..signal_set_service]
-Get the [link boost_asio.reference.io_service `io_service`] object that owns the service.
+ enum file_format
+
+[indexterm2 asn1..ssl::context]
+[indexterm2 pem..ssl::context]
 
+[heading Values]
+[variablelist
 
- boost::asio::io_service & get_io_service();
+ [
+ [asn1]
+ [ASN.1 file. ]
+ ]
+
+ [
+ [pem]
+ [PEM file. ]
+ ]
+
+]
 
 
 
@@ -79016,340 +82810,277 @@
 
 
 
-[section:id signal_set_service::id]
+[section:impl ssl::context::impl]
 
-[indexterm2 id..signal_set_service]
-The unique service identifier.
+[indexterm2 impl..ssl::context]
+(Deprecated: Use `native_handle()`.) Get the underlying implementation in the native type.
 
 
- static boost::asio::io_service::id id;
+ impl_type impl();
+
 
+This function may be used to obtain the underlying implementation of the context. This is intended to allow access to context functionality that is not otherwise provided.
 
 
 [endsect]
 
 
 
-[section:implementation_type signal_set_service::implementation_type]
+[section:impl_type ssl::context::impl_type]
 
-[indexterm2 implementation_type..signal_set_service]
-The type of a signal set implementation.
+[indexterm2 impl_type..ssl::context]
+(Deprecated: Use native\_handle\_type.) The native type of the SSL context.
 
 
- typedef implementation_defined implementation_type;
+ typedef SSL_CTX * impl_type;
 
 
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/signal_set_service.hpp]
+[*Header: ][^boost/asio/ssl/context.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
+[*Convenience header: ][^boost/asio/ssl.hpp]
 
 
 [endsect]
 
 
+[section:load_verify_file ssl::context::load_verify_file]
 
-[section:remove signal_set_service::remove]
+[indexterm2 load_verify_file..ssl::context]
+Load a certification authority file for performing verification.
 
-[indexterm2 remove..signal_set_service]
-Remove a signal to a signal\_set.
 
+ void ``[link boost_asio.reference.ssl__context.load_verify_file.overload1 load_verify_file]``(
+ const std::string & filename);
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__context.load_verify_file.overload1 more...]]``
 
- boost::system::error_code remove(
- implementation_type & impl,
- int signal_number,
+ boost::system::error_code ``[link boost_asio.reference.ssl__context.load_verify_file.overload2 load_verify_file]``(
+ const std::string & filename,
       boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__context.load_verify_file.overload2 more...]]``
 
 
+[section:overload1 ssl::context::load_verify_file (1 of 2 overloads)]
 
-[endsect]
 
+Load a certification authority file for performing verification.
 
 
-[section:signal_set_service signal_set_service::signal_set_service]
+ void load_verify_file(
+ const std::string & filename);
 
-[indexterm2 signal_set_service..signal_set_service]
-Construct a new signal set service for the specified [link boost_asio.reference.io_service `io_service`].
 
+This function is used to load one or more trusted certification authorities from a file.
 
- signal_set_service(
- boost::asio::io_service & io_service);
 
+[heading Parameters]
+
+
+[variablelist
+
+[[filename][The name of a file containing certification authority certificates in PEM format.]]
+
+]
 
 
-[endsect]
+[heading Exceptions]
+
 
+[variablelist
+
+[[boost::system::system_error][Thrown on failure.]]
 
+]
 
-[endsect]
 
-[section:socket_acceptor_service socket_acceptor_service]
+[heading Remarks]
+
+Calls `SSL_CTX_load_verify_locations`.
 
 
-Default service implementation for a socket acceptor.
 
 
- template<
- typename ``[link boost_asio.reference.Protocol Protocol]``>
- class socket_acceptor_service :
- public io_service::service
+[endsect]
 
 
-[heading Types]
-[table
- [[Name][Description]]
 
- [
+[section:overload2 ssl::context::load_verify_file (2 of 2 overloads)]
 
- [[link boost_asio.reference.socket_acceptor_service.endpoint_type [*endpoint_type]]]
- [The endpoint type. ]
-
- ]
 
- [
+Load a certification authority file for performing verification.
 
- [[link boost_asio.reference.socket_acceptor_service.implementation_type [*implementation_type]]]
- [The native type of the socket acceptor. ]
-
- ]
 
- [
+ boost::system::error_code load_verify_file(
+ const std::string & filename,
+ boost::system::error_code & ec);
 
- [[link boost_asio.reference.socket_acceptor_service.native_handle_type [*native_handle_type]]]
- [The native acceptor type. ]
-
- ]
 
- [
+This function is used to load the certificates for one or more trusted certification authorities from a file.
 
- [[link boost_asio.reference.socket_acceptor_service.native_type [*native_type]]]
- [(Deprecated: Use native_handle_type.) The native acceptor type. ]
-
- ]
 
- [
+[heading Parameters]
+
 
- [[link boost_asio.reference.socket_acceptor_service.protocol_type [*protocol_type]]]
- [The protocol type. ]
+[variablelist
   
- ]
+[[filename][The name of a file containing certification authority certificates in PEM format.]]
+
+[[ec][Set to indicate what error occurred, if any.]]
 
 ]
 
-[heading Member Functions]
-[table
- [[Name][Description]]
+
+[heading Remarks]
+
+Calls `SSL_CTX_load_verify_locations`.
+
+
+
+
+[endsect]
+
+
+[endsect]
+
+
+[section:method ssl::context::method]
+
+[indexterm2 method..ssl::context]
+Different methods supported by a context.
+
+
+ enum method
+
+[indexterm2 sslv2..ssl::context]
+[indexterm2 sslv2_client..ssl::context]
+[indexterm2 sslv2_server..ssl::context]
+[indexterm2 sslv3..ssl::context]
+[indexterm2 sslv3_client..ssl::context]
+[indexterm2 sslv3_server..ssl::context]
+[indexterm2 tlsv1..ssl::context]
+[indexterm2 tlsv1_client..ssl::context]
+[indexterm2 tlsv1_server..ssl::context]
+[indexterm2 sslv23..ssl::context]
+[indexterm2 sslv23_client..ssl::context]
+[indexterm2 sslv23_server..ssl::context]
+
+[heading Values]
+[variablelist
 
   [
- [[link boost_asio.reference.socket_acceptor_service.accept [*accept]]]
- [Accept a new connection. ]
- ]
-
- [
- [[link boost_asio.reference.socket_acceptor_service.assign [*assign]]]
- [Assign an existing native acceptor to a socket acceptor. ]
- ]
-
- [
- [[link boost_asio.reference.socket_acceptor_service.async_accept [*async_accept]]]
- [Start an asynchronous accept. ]
- ]
-
- [
- [[link boost_asio.reference.socket_acceptor_service.bind [*bind]]]
- [Bind the socket acceptor to the specified local endpoint. ]
- ]
-
- [
- [[link boost_asio.reference.socket_acceptor_service.cancel [*cancel]]]
- [Cancel all asynchronous operations associated with the acceptor. ]
- ]
-
- [
- [[link boost_asio.reference.socket_acceptor_service.close [*close]]]
- [Close a socket acceptor implementation. ]
- ]
-
- [
- [[link boost_asio.reference.socket_acceptor_service.construct [*construct]]]
- [Construct a new socket acceptor implementation. ]
- ]
-
- [
- [[link boost_asio.reference.socket_acceptor_service.destroy [*destroy]]]
- [Destroy a socket acceptor implementation. ]
- ]
-
- [
- [[link boost_asio.reference.socket_acceptor_service.get_io_service [*get_io_service]]]
- [Get the io_service object that owns the service. ]
- ]
-
- [
- [[link boost_asio.reference.socket_acceptor_service.get_option [*get_option]]]
- [Get a socket option. ]
- ]
-
- [
- [[link boost_asio.reference.socket_acceptor_service.io_control [*io_control]]]
- [Perform an IO control command on the socket. ]
- ]
-
- [
- [[link boost_asio.reference.socket_acceptor_service.is_open [*is_open]]]
- [Determine whether the acceptor is open. ]
+ [sslv2]
+ [Generic SSL version 2. ]
   ]
-
+
   [
- [[link boost_asio.reference.socket_acceptor_service.listen [*listen]]]
- [Place the socket acceptor into the state where it will listen for new connections. ]
+ [sslv2_client]
+ [SSL version 2 client. ]
   ]
-
+
   [
- [[link boost_asio.reference.socket_acceptor_service.local_endpoint [*local_endpoint]]]
- [Get the local endpoint. ]
+ [sslv2_server]
+ [SSL version 2 server. ]
   ]
-
+
   [
- [[link boost_asio.reference.socket_acceptor_service.move_assign [*move_assign]]]
- [Move-assign from another socket acceptor implementation. ]
+ [sslv3]
+ [Generic SSL version 3. ]
   ]
-
+
   [
- [[link boost_asio.reference.socket_acceptor_service.move_construct [*move_construct]]]
- [Move-construct a new socket acceptor implementation. ]
+ [sslv3_client]
+ [SSL version 3 client. ]
   ]
-
+
   [
- [[link boost_asio.reference.socket_acceptor_service.native [*native]]]
- [(Deprecated: Use native_handle().) Get the native acceptor implementation. ]
+ [sslv3_server]
+ [SSL version 3 server. ]
   ]
-
+
   [
- [[link boost_asio.reference.socket_acceptor_service.native_handle [*native_handle]]]
- [Get the native acceptor implementation. ]
+ [tlsv1]
+ [Generic TLS version 1. ]
   ]
-
- [
- [[link boost_asio.reference.socket_acceptor_service.native_non_blocking [*native_non_blocking]]]
- [Gets the non-blocking mode of the native acceptor implementation.
 
- Sets the non-blocking mode of the native acceptor implementation. ]
- ]
-
   [
- [[link boost_asio.reference.socket_acceptor_service.non_blocking [*non_blocking]]]
- [Gets the non-blocking mode of the acceptor.
-
- Sets the non-blocking mode of the acceptor. ]
+ [tlsv1_client]
+ [TLS version 1 client. ]
   ]
-
+
   [
- [[link boost_asio.reference.socket_acceptor_service.open [*open]]]
- [Open a new socket acceptor implementation. ]
+ [tlsv1_server]
+ [TLS version 1 server. ]
   ]
-
+
   [
- [[link boost_asio.reference.socket_acceptor_service.set_option [*set_option]]]
- [Set a socket option. ]
+ [sslv23]
+ [Generic SSL/TLS. ]
   ]
-
+
   [
- [[link boost_asio.reference.socket_acceptor_service.socket_acceptor_service [*socket_acceptor_service]]]
- [Construct a new socket acceptor service for the specified io_service. ]
+ [sslv23_client]
+ [SSL/TLS client. ]
   ]
-
-]
-
-[heading Data Members]
-[table
- [[Name][Description]]
 
   [
- [[link boost_asio.reference.socket_acceptor_service.id [*id]]]
- [The unique service identifier. ]
+ [sslv23_server]
+ [SSL/TLS server. ]
   ]
 
 ]
 
-[heading Requirements]
-
-[*Header: ][^boost/asio/socket_acceptor_service.hpp]
-
-[*Convenience header: ][^boost/asio.hpp]
-
 
-[section:accept socket_acceptor_service::accept]
 
-[indexterm2 accept..socket_acceptor_service]
-Accept a new connection.
+[endsect]
 
 
- template<
- typename ``[link boost_asio.reference.SocketService SocketService]``>
- boost::system::error_code accept(
- implementation_type & impl,
- basic_socket< protocol_type, SocketService > & peer,
- endpoint_type * peer_endpoint,
- boost::system::error_code & ec);
 
+[section:native_handle ssl::context::native_handle]
 
+[indexterm2 native_handle..ssl::context]
+Get the underlying implementation in the native type.
 
-[endsect]
 
+ native_handle_type native_handle();
 
 
-[section:assign socket_acceptor_service::assign]
+This function may be used to obtain the underlying implementation of the context. This is intended to allow access to context functionality that is not otherwise provided.
 
-[indexterm2 assign..socket_acceptor_service]
-Assign an existing native acceptor to a socket acceptor.
 
+[endsect]
 
- boost::system::error_code assign(
- implementation_type & impl,
- const protocol_type & protocol,
- const native_handle_type & native_acceptor,
- boost::system::error_code & ec);
 
 
+[section:native_handle_type ssl::context::native_handle_type]
 
-[endsect]
+[indexterm2 native_handle_type..ssl::context]
+The native handle type of the SSL context.
 
 
+ typedef SSL_CTX * native_handle_type;
 
-[section:async_accept socket_acceptor_service::async_accept]
 
-[indexterm2 async_accept..socket_acceptor_service]
-Start an asynchronous accept.
 
+[heading Requirements]
 
- template<
- typename ``[link boost_asio.reference.SocketService SocketService]``,
- typename ``[link boost_asio.reference.AcceptHandler AcceptHandler]``>
- void async_accept(
- implementation_type & impl,
- basic_socket< protocol_type, SocketService > & peer,
- endpoint_type * peer_endpoint,
- AcceptHandler handler);
+[*Header: ][^boost/asio/ssl/context.hpp]
 
+[*Convenience header: ][^boost/asio/ssl.hpp]
 
 
 [endsect]
 
 
 
-[section:bind socket_acceptor_service::bind]
+[section:no_sslv2 ssl::context::no_sslv2]
 
-[indexterm2 bind..socket_acceptor_service]
-Bind the socket acceptor to the specified local endpoint.
+[indexterm2 no_sslv2..ssl::context]
+Disable SSL v2.
 
 
- boost::system::error_code bind(
- implementation_type & impl,
- const endpoint_type & endpoint,
- boost::system::error_code & ec);
+ static const int no_sslv2 = implementation_defined;
 
 
 
@@ -79357,15 +83088,13 @@
 
 
 
-[section:cancel socket_acceptor_service::cancel]
+[section:no_sslv3 ssl::context::no_sslv3]
 
-[indexterm2 cancel..socket_acceptor_service]
-Cancel all asynchronous operations associated with the acceptor.
+[indexterm2 no_sslv3..ssl::context]
+Disable SSL v3.
 
 
- boost::system::error_code cancel(
- implementation_type & impl,
- boost::system::error_code & ec);
+ static const int no_sslv3 = implementation_defined;
 
 
 
@@ -79373,15 +83102,13 @@
 
 
 
-[section:close socket_acceptor_service::close]
+[section:no_tlsv1 ssl::context::no_tlsv1]
 
-[indexterm2 close..socket_acceptor_service]
-Close a socket acceptor implementation.
+[indexterm2 no_tlsv1..ssl::context]
+Disable TLS v1.
 
 
- boost::system::error_code close(
- implementation_type & impl,
- boost::system::error_code & ec);
+ static const int no_tlsv1 = implementation_defined;
 
 
 
@@ -79389,382 +83116,463 @@
 
 
 
-[section:construct socket_acceptor_service::construct]
-
-[indexterm2 construct..socket_acceptor_service]
-Construct a new socket acceptor implementation.
+[section:operator_eq_ ssl::context::operator=]
 
+[indexterm2 operator=..ssl::context]
+Move-assign a context from another.
 
- void construct(
- implementation_type & impl);
 
+ context & operator=(
+ context && other);
 
 
-[endsect]
+This assignment operator moves an SSL context from one object to another.
 
 
+[heading Parameters]
+
 
-[section:destroy socket_acceptor_service::destroy]
+[variablelist
+
+[[other][The other context object from which the move will occur.]]
 
-[indexterm2 destroy..socket_acceptor_service]
-Destroy a socket acceptor implementation.
+]
 
 
- void destroy(
- implementation_type & impl);
+[heading Remarks]
+
+Following the move, the following operations only are valid for the moved-from object:
+* Destruction.
 
+* As a target for move-assignment.
 
 
-[endsect]
 
 
 
-[section:endpoint_type socket_acceptor_service::endpoint_type]
 
-[indexterm2 endpoint_type..socket_acceptor_service]
-The endpoint type.
+[endsect]
 
 
- typedef protocol_type::endpoint endpoint_type;
 
+[section:options ssl::context::options]
 
+[indexterm2 options..ssl::context]
+Bitmask type for SSL options.
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/socket_acceptor_service.hpp]
+ typedef int options;
 
-[*Convenience header: ][^boost/asio.hpp]
 
 
-[endsect]
+[heading Requirements]
 
+[*Header: ][^boost/asio/ssl/context.hpp]
 
+[*Convenience header: ][^boost/asio/ssl.hpp]
 
-[section:get_io_service socket_acceptor_service::get_io_service]
 
+[endsect]
 
-['Inherited from io_service.]
 
-[indexterm2 get_io_service..socket_acceptor_service]
-Get the [link boost_asio.reference.io_service `io_service`] object that owns the service.
 
+[section:password_purpose ssl::context::password_purpose]
 
- boost::asio::io_service & get_io_service();
+[indexterm2 password_purpose..ssl::context]
+Purpose of PEM password.
 
 
+ enum password_purpose
 
-[endsect]
+[indexterm2 for_reading..ssl::context]
+[indexterm2 for_writing..ssl::context]
 
+[heading Values]
+[variablelist
 
+ [
+ [for_reading]
+ [The password is needed for reading/decryption. ]
+ ]
 
-[section:get_option socket_acceptor_service::get_option]
+ [
+ [for_writing]
+ [The password is needed for writing/encryption. ]
+ ]
 
-[indexterm2 get_option..socket_acceptor_service]
-Get a socket option.
+]
 
 
- template<
- typename ``[link boost_asio.reference.GettableSocketOption GettableSocketOption]``>
- boost::system::error_code get_option(
- const implementation_type & impl,
- GettableSocketOption & option,
- boost::system::error_code & ec) const;
 
+[endsect]
 
 
-[endsect]
+[section:set_default_verify_paths ssl::context::set_default_verify_paths]
 
+[indexterm2 set_default_verify_paths..ssl::context]
+Configures the context to use the default directories for finding certification authority certificates.
 
 
-[section:id socket_acceptor_service::id]
+ void ``[link boost_asio.reference.ssl__context.set_default_verify_paths.overload1 set_default_verify_paths]``();
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__context.set_default_verify_paths.overload1 more...]]``
 
-[indexterm2 id..socket_acceptor_service]
-The unique service identifier.
+ boost::system::error_code ``[link boost_asio.reference.ssl__context.set_default_verify_paths.overload2 set_default_verify_paths]``(
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__context.set_default_verify_paths.overload2 more...]]``
 
 
- static boost::asio::io_service::id id;
+[section:overload1 ssl::context::set_default_verify_paths (1 of 2 overloads)]
 
 
+Configures the context to use the default directories for finding certification authority certificates.
 
-[endsect]
 
+ void set_default_verify_paths();
 
 
-[section:implementation_type socket_acceptor_service::implementation_type]
+This function specifies that the context should use the default, system-dependent directories for locating certification authority certificates.
 
-[indexterm2 implementation_type..socket_acceptor_service]
-The native type of the socket acceptor.
 
+[heading Exceptions]
+
 
- typedef implementation_defined implementation_type;
+[variablelist
+
+[[boost::system::system_error][Thrown on failure.]]
 
+]
 
 
-[heading Requirements]
+[heading Remarks]
+
+Calls `SSL_CTX_set_default_verify_paths`.
 
-[*Header: ][^boost/asio/socket_acceptor_service.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
 
-[section:io_control socket_acceptor_service::io_control]
+[section:overload2 ssl::context::set_default_verify_paths (2 of 2 overloads)]
 
-[indexterm2 io_control..socket_acceptor_service]
-Perform an IO control command on the socket.
 
+Configures the context to use the default directories for finding certification authority certificates.
 
- template<
- typename ``[link boost_asio.reference.IoControlCommand IoControlCommand]``>
- boost::system::error_code io_control(
- implementation_type & impl,
- IoControlCommand & command,
+
+ boost::system::error_code set_default_verify_paths(
       boost::system::error_code & ec);
 
 
+This function specifies that the context should use the default, system-dependent directories for locating certification authority certificates.
 
-[endsect]
 
+[heading Parameters]
+
 
+[variablelist
+
+[[ec][Set to indicate what error occurred, if any.]]
 
-[section:is_open socket_acceptor_service::is_open]
+]
 
-[indexterm2 is_open..socket_acceptor_service]
-Determine whether the acceptor is open.
 
+[heading Remarks]
+
+Calls `SSL_CTX_set_default_verify_paths`.
 
- bool is_open(
- const implementation_type & impl) const;
 
 
 
 [endsect]
 
 
+[endsect]
 
-[section:listen socket_acceptor_service::listen]
+[section:set_options ssl::context::set_options]
 
-[indexterm2 listen..socket_acceptor_service]
-Place the socket acceptor into the state where it will listen for new connections.
+[indexterm2 set_options..ssl::context]
+Set options on the context.
 
 
- boost::system::error_code listen(
- implementation_type & impl,
- int backlog,
+ void ``[link boost_asio.reference.ssl__context.set_options.overload1 set_options]``(
+ options o);
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__context.set_options.overload1 more...]]``
+
+ boost::system::error_code ``[link boost_asio.reference.ssl__context.set_options.overload2 set_options]``(
+ options o,
       boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__context.set_options.overload2 more...]]``
 
 
+[section:overload1 ssl::context::set_options (1 of 2 overloads)]
 
-[endsect]
 
+Set options on the context.
 
 
-[section:local_endpoint socket_acceptor_service::local_endpoint]
+ void set_options(
+ options o);
 
-[indexterm2 local_endpoint..socket_acceptor_service]
-Get the local endpoint.
 
+This function may be used to configure the SSL options used by the context.
 
- endpoint_type local_endpoint(
- const implementation_type & impl,
- boost::system::error_code & ec) const;
 
+[heading Parameters]
+
 
+[variablelist
+
+[[o][A bitmask of options. The available option values are defined in the [link boost_asio.reference.ssl__context_base `ssl::context_base`] class. The options are bitwise-ored with any existing value for the options.]]
 
-[endsect]
+]
 
 
+[heading Exceptions]
+
 
-[section:move_assign socket_acceptor_service::move_assign]
+[variablelist
+
+[[boost::system::system_error][Thrown on failure.]]
 
-[indexterm2 move_assign..socket_acceptor_service]
-Move-assign from another socket acceptor implementation.
+]
 
 
- void move_assign(
- implementation_type & impl,
- socket_acceptor_service & other_service,
- implementation_type & other_impl);
+[heading Remarks]
+
+Calls `SSL_CTX_set_options`.
 
 
 
-[endsect]
 
+[endsect]
 
 
-[section:move_construct socket_acceptor_service::move_construct]
 
-[indexterm2 move_construct..socket_acceptor_service]
-Move-construct a new socket acceptor implementation.
+[section:overload2 ssl::context::set_options (2 of 2 overloads)]
 
 
- void move_construct(
- implementation_type & impl,
- implementation_type & other_impl);
+Set options on the context.
 
 
+ boost::system::error_code set_options(
+ options o,
+ boost::system::error_code & ec);
 
-[endsect]
 
+This function may be used to configure the SSL options used by the context.
 
 
-[section:native socket_acceptor_service::native]
+[heading Parameters]
+
 
-[indexterm2 native..socket_acceptor_service]
-(Deprecated: Use `native_handle()`.) Get the native acceptor implementation.
+[variablelist
+
+[[o][A bitmask of options. The available option values are defined in the [link boost_asio.reference.ssl__context_base `ssl::context_base`] class. The options are bitwise-ored with any existing value for the options.]]
 
+[[ec][Set to indicate what error occurred, if any.]]
 
- native_type native(
- implementation_type & impl);
+]
 
 
+[heading Remarks]
+
+Calls `SSL_CTX_set_options`.
 
-[endsect]
 
 
 
-[section:native_handle socket_acceptor_service::native_handle]
+[endsect]
 
-[indexterm2 native_handle..socket_acceptor_service]
-Get the native acceptor implementation.
 
+[endsect]
 
- native_handle_type native_handle(
- implementation_type & impl);
+[section:set_password_callback ssl::context::set_password_callback]
 
+[indexterm2 set_password_callback..ssl::context]
+Set the password callback.
 
 
-[endsect]
+ template<
+ typename PasswordCallback>
+ void ``[link boost_asio.reference.ssl__context.set_password_callback.overload1 set_password_callback]``(
+ PasswordCallback callback);
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__context.set_password_callback.overload1 more...]]``
 
+ template<
+ typename PasswordCallback>
+ boost::system::error_code ``[link boost_asio.reference.ssl__context.set_password_callback.overload2 set_password_callback]``(
+ PasswordCallback callback,
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__context.set_password_callback.overload2 more...]]``
 
 
-[section:native_handle_type socket_acceptor_service::native_handle_type]
+[section:overload1 ssl::context::set_password_callback (1 of 2 overloads)]
 
-[indexterm2 native_handle_type..socket_acceptor_service]
-The native acceptor type.
 
+Set the password callback.
 
- typedef implementation_defined native_handle_type;
 
+ template<
+ typename PasswordCallback>
+ void set_password_callback(
+ PasswordCallback callback);
 
 
-[heading Requirements]
+This function is used to specify a callback function to obtain password information about an encrypted key in PEM format.
 
-[*Header: ][^boost/asio/socket_acceptor_service.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
+[heading Parameters]
+
 
+[variablelist
+
+[[callback][The function object to be used for obtaining the password. The function signature of the handler must be:
+``
+ std::string password_callback(
+ std::size_t max_length, // The maximum size for a password.
+ password_purpose purpose // Whether password is for reading or writing.
+ );
+``
+The return value of the callback is a string containing the password.]]
 
-[endsect]
+]
 
 
-[section:native_non_blocking socket_acceptor_service::native_non_blocking]
+[heading Exceptions]
+
 
-[indexterm2 native_non_blocking..socket_acceptor_service]
-Gets the non-blocking mode of the native acceptor implementation.
+[variablelist
+
+[[boost::system::system_error][Thrown on failure.]]
 
+]
 
- bool ``[link boost_asio.reference.socket_acceptor_service.native_non_blocking.overload1 native_non_blocking]``(
- const implementation_type & impl) const;
- `` [''''&raquo;''' [link boost_asio.reference.socket_acceptor_service.native_non_blocking.overload1 more...]]``
 
+[heading Remarks]
+
+Calls `SSL_CTX_set_default_passwd_cb`.
 
-Sets the non-blocking mode of the native acceptor implementation.
 
 
- boost::system::error_code ``[link boost_asio.reference.socket_acceptor_service.native_non_blocking.overload2 native_non_blocking]``(
- implementation_type & impl,
- bool mode,
- boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.socket_acceptor_service.native_non_blocking.overload2 more...]]``
 
+[endsect]
 
-[section:overload1 socket_acceptor_service::native_non_blocking (1 of 2 overloads)]
 
 
-Gets the non-blocking mode of the native acceptor implementation.
+[section:overload2 ssl::context::set_password_callback (2 of 2 overloads)]
 
 
- bool native_non_blocking(
- const implementation_type & impl) const;
+Set the password callback.
 
 
+ template<
+ typename PasswordCallback>
+ boost::system::error_code set_password_callback(
+ PasswordCallback callback,
+ boost::system::error_code & ec);
 
-[endsect]
 
+This function is used to specify a callback function to obtain password information about an encrypted key in PEM format.
 
 
-[section:overload2 socket_acceptor_service::native_non_blocking (2 of 2 overloads)]
+[heading Parameters]
+
 
+[variablelist
+
+[[callback][The function object to be used for obtaining the password. The function signature of the handler must be:
+``
+ std::string password_callback(
+ std::size_t max_length, // The maximum size for a password.
+ password_purpose purpose // Whether password is for reading or writing.
+ );
+``
+The return value of the callback is a string containing the password.]]
 
-Sets the non-blocking mode of the native acceptor implementation.
+[[ec][Set to indicate what error occurred, if any.]]
 
+]
 
- boost::system::error_code native_non_blocking(
- implementation_type & impl,
- bool mode,
- boost::system::error_code & ec);
 
+[heading Remarks]
+
+Calls `SSL_CTX_set_default_passwd_cb`.
 
 
-[endsect]
 
 
 [endsect]
 
 
-[section:native_type socket_acceptor_service::native_type]
-
-[indexterm2 native_type..socket_acceptor_service]
-(Deprecated: Use native\_handle\_type.) The native acceptor type.
+[endsect]
 
+[section:set_verify_callback ssl::context::set_verify_callback]
 
- typedef implementation_defined native_type;
+[indexterm2 set_verify_callback..ssl::context]
+Set the callback used to verify peer certificates.
 
 
+ template<
+ typename VerifyCallback>
+ void ``[link boost_asio.reference.ssl__context.set_verify_callback.overload1 set_verify_callback]``(
+ VerifyCallback callback);
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__context.set_verify_callback.overload1 more...]]``
 
-[heading Requirements]
+ template<
+ typename VerifyCallback>
+ boost::system::error_code ``[link boost_asio.reference.ssl__context.set_verify_callback.overload2 set_verify_callback]``(
+ VerifyCallback callback,
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__context.set_verify_callback.overload2 more...]]``
 
-[*Header: ][^boost/asio/socket_acceptor_service.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
+[section:overload1 ssl::context::set_verify_callback (1 of 2 overloads)]
 
 
-[endsect]
+Set the callback used to verify peer certificates.
 
 
-[section:non_blocking socket_acceptor_service::non_blocking]
+ template<
+ typename VerifyCallback>
+ void set_verify_callback(
+ VerifyCallback callback);
 
-[indexterm2 non_blocking..socket_acceptor_service]
-Gets the non-blocking mode of the acceptor.
 
+This function is used to specify a callback function that will be called by the implementation when it needs to verify a peer certificate.
 
- bool ``[link boost_asio.reference.socket_acceptor_service.non_blocking.overload1 non_blocking]``(
- const implementation_type & impl) const;
- `` [''''&raquo;''' [link boost_asio.reference.socket_acceptor_service.non_blocking.overload1 more...]]``
 
+[heading Parameters]
+
 
-Sets the non-blocking mode of the acceptor.
+[variablelist
+
+[[callback][The function object to be used for verifying a certificate. The function signature of the handler must be:
+``
+ bool verify_callback(
+ bool preverified, // True if the certificate passed pre-verification.
+ verify_context& ctx // The peer certificate and other context.
+ );
+``
+The return value of the callback is true if the certificate has passed verification, false otherwise.]]
 
+]
 
- boost::system::error_code ``[link boost_asio.reference.socket_acceptor_service.non_blocking.overload2 non_blocking]``(
- implementation_type & impl,
- bool mode,
- boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.socket_acceptor_service.non_blocking.overload2 more...]]``
 
+[heading Exceptions]
+
 
-[section:overload1 socket_acceptor_service::non_blocking (1 of 2 overloads)]
+[variablelist
+
+[[boost::system::system_error][Thrown on failure.]]
 
+]
 
-Gets the non-blocking mode of the acceptor.
 
+[heading Remarks]
+
+Calls `SSL_CTX_set_verify`.
 
- bool non_blocking(
- const implementation_type & impl) const;
 
 
 
@@ -79772,90 +83580,106 @@
 
 
 
-[section:overload2 socket_acceptor_service::non_blocking (2 of 2 overloads)]
+[section:overload2 ssl::context::set_verify_callback (2 of 2 overloads)]
 
 
-Sets the non-blocking mode of the acceptor.
+Set the callback used to verify peer certificates.
 
 
- boost::system::error_code non_blocking(
- implementation_type & impl,
- bool mode,
+ template<
+ typename VerifyCallback>
+ boost::system::error_code set_verify_callback(
+ VerifyCallback callback,
       boost::system::error_code & ec);
 
 
+This function is used to specify a callback function that will be called by the implementation when it needs to verify a peer certificate.
 
-[endsect]
 
+[heading Parameters]
+
 
-[endsect]
+[variablelist
+
+[[callback][The function object to be used for verifying a certificate. The function signature of the handler must be:
+``
+ bool verify_callback(
+ bool preverified, // True if the certificate passed pre-verification.
+ verify_context& ctx // The peer certificate and other context.
+ );
+``
+The return value of the callback is true if the certificate has passed verification, false otherwise.]]
 
+[[ec][Set to indicate what error occurred, if any.]]
 
-[section:open socket_acceptor_service::open]
+]
 
-[indexterm2 open..socket_acceptor_service]
-Open a new socket acceptor implementation.
 
+[heading Remarks]
+
+Calls `SSL_CTX_set_verify`.
 
- boost::system::error_code open(
- implementation_type & impl,
- const protocol_type & protocol,
- boost::system::error_code & ec);
 
 
 
 [endsect]
 
 
+[endsect]
 
-[section:protocol_type socket_acceptor_service::protocol_type]
-
-[indexterm2 protocol_type..socket_acceptor_service]
-The protocol type.
-
+[section:set_verify_mode ssl::context::set_verify_mode]
 
- typedef Protocol protocol_type;
+[indexterm2 set_verify_mode..ssl::context]
+Set the peer verification mode.
 
 
+ void ``[link boost_asio.reference.ssl__context.set_verify_mode.overload1 set_verify_mode]``(
+ verify_mode v);
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__context.set_verify_mode.overload1 more...]]``
 
-[heading Requirements]
+ boost::system::error_code ``[link boost_asio.reference.ssl__context.set_verify_mode.overload2 set_verify_mode]``(
+ verify_mode v,
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__context.set_verify_mode.overload2 more...]]``
 
-[*Header: ][^boost/asio/socket_acceptor_service.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
+[section:overload1 ssl::context::set_verify_mode (1 of 2 overloads)]
 
 
-[endsect]
+Set the peer verification mode.
 
 
+ void set_verify_mode(
+ verify_mode v);
 
-[section:set_option socket_acceptor_service::set_option]
 
-[indexterm2 set_option..socket_acceptor_service]
-Set a socket option.
+This function may be used to configure the peer verification mode used by the context.
 
 
- template<
- typename ``[link boost_asio.reference.SettableSocketOption SettableSocketOption]``>
- boost::system::error_code set_option(
- implementation_type & impl,
- const SettableSocketOption & option,
- boost::system::error_code & ec);
+[heading Parameters]
+
 
+[variablelist
+
+[[v][A bitmask of peer verification modes. See [link boost_asio.reference.ssl__verify_mode `ssl::verify_mode`] for available values.]]
 
+]
 
-[endsect]
 
+[heading Exceptions]
+
 
+[variablelist
+
+[[boost::system::system_error][Thrown on failure.]]
 
-[section:socket_acceptor_service socket_acceptor_service::socket_acceptor_service]
+]
 
-[indexterm2 socket_acceptor_service..socket_acceptor_service]
-Construct a new socket acceptor service for the specified [link boost_asio.reference.io_service `io_service`].
 
+[heading Remarks]
+
+Calls `SSL_CTX_set_verify`.
 
- socket_acceptor_service(
- boost::asio::io_service & io_service);
 
 
 
@@ -79863,594 +83687,580 @@
 
 
 
-[endsect]
-
-[section:socket_base socket_base]
-
+[section:overload2 ssl::context::set_verify_mode (2 of 2 overloads)]
 
-The [link boost_asio.reference.socket_base `socket_base`] class is used as a base for the [link boost_asio.reference.basic_stream_socket `basic_stream_socket`] and [link boost_asio.reference.basic_datagram_socket `basic_datagram_socket`] class templates so that we have a common place to define the shutdown\_type and enum.
 
+Set the peer verification mode.
 
- class socket_base
 
+ boost::system::error_code set_verify_mode(
+ verify_mode v,
+ boost::system::error_code & ec);
 
-[heading Types]
-[table
- [[Name][Description]]
 
- [
+This function may be used to configure the peer verification mode used by the context.
 
- [[link boost_asio.reference.socket_base.broadcast [*broadcast]]]
- [Socket option to permit sending of broadcast messages. ]
-
- ]
 
- [
+[heading Parameters]
+
 
- [[link boost_asio.reference.socket_base.bytes_readable [*bytes_readable]]]
- [IO control command to get the amount of data that can be read without blocking. ]
+[variablelist
   
- ]
+[[v][A bitmask of peer verification modes. See [link boost_asio.reference.ssl__verify_mode `ssl::verify_mode`] for available values.]]
 
- [
+[[ec][Set to indicate what error occurred, if any.]]
 
- [[link boost_asio.reference.socket_base.debug [*debug]]]
- [Socket option to enable socket-level debugging. ]
-
- ]
+]
 
- [
 
- [[link boost_asio.reference.socket_base.do_not_route [*do_not_route]]]
- [Socket option to prevent routing, use local interfaces only. ]
-
- ]
+[heading Remarks]
+
+Calls `SSL_CTX_set_verify`.
 
- [
 
- [[link boost_asio.reference.socket_base.enable_connection_aborted [*enable_connection_aborted]]]
- [Socket option to report aborted connections on accept. ]
-
- ]
 
- [
 
- [[link boost_asio.reference.socket_base.keep_alive [*keep_alive]]]
- [Socket option to send keep-alives. ]
-
- ]
+[endsect]
 
- [
 
- [[link boost_asio.reference.socket_base.linger [*linger]]]
- [Socket option to specify whether the socket lingers on close if unsent data is present. ]
-
- ]
+[endsect]
 
- [
 
- [[link boost_asio.reference.socket_base.message_flags [*message_flags]]]
- [Bitmask type for flags that can be passed to send and receive operations. ]
-
- ]
+[section:single_dh_use ssl::context::single_dh_use]
 
- [
+[indexterm2 single_dh_use..ssl::context]
+Always create a new key when using tmp\_dh parameters.
 
- [[link boost_asio.reference.socket_base.non_blocking_io [*non_blocking_io]]]
- [(Deprecated: Use non_blocking().) IO control command to set the blocking mode of the socket. ]
-
- ]
 
- [
+ static const int single_dh_use = implementation_defined;
 
- [[link boost_asio.reference.socket_base.receive_buffer_size [*receive_buffer_size]]]
- [Socket option for the receive buffer size of a socket. ]
-
- ]
 
- [
 
- [[link boost_asio.reference.socket_base.receive_low_watermark [*receive_low_watermark]]]
- [Socket option for the receive low watermark. ]
-
- ]
+[endsect]
 
- [
 
- [[link boost_asio.reference.socket_base.reuse_address [*reuse_address]]]
- [Socket option to allow the socket to be bound to an address that is already in use. ]
-
- ]
+[section:use_certificate_chain_file ssl::context::use_certificate_chain_file]
 
- [
+[indexterm2 use_certificate_chain_file..ssl::context]
+Use a certificate chain from a file.
 
- [[link boost_asio.reference.socket_base.send_buffer_size [*send_buffer_size]]]
- [Socket option for the send buffer size of a socket. ]
-
- ]
 
- [
+ void ``[link boost_asio.reference.ssl__context.use_certificate_chain_file.overload1 use_certificate_chain_file]``(
+ const std::string & filename);
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__context.use_certificate_chain_file.overload1 more...]]``
 
- [[link boost_asio.reference.socket_base.send_low_watermark [*send_low_watermark]]]
- [Socket option for the send low watermark. ]
-
- ]
+ boost::system::error_code ``[link boost_asio.reference.ssl__context.use_certificate_chain_file.overload2 use_certificate_chain_file]``(
+ const std::string & filename,
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__context.use_certificate_chain_file.overload2 more...]]``
 
- [
 
- [[link boost_asio.reference.socket_base.shutdown_type [*shutdown_type]]]
- [Different ways a socket may be shutdown. ]
-
- ]
+[section:overload1 ssl::context::use_certificate_chain_file (1 of 2 overloads)]
 
-]
 
-[heading Protected Member Functions]
-[table
- [[Name][Description]]
+Use a certificate chain from a file.
 
- [
- [[link boost_asio.reference.socket_base._socket_base [*~socket_base]]]
- [Protected destructor to prevent deletion through this type. ]
- ]
-
-]
 
-[heading Data Members]
-[table
- [[Name][Description]]
+ void use_certificate_chain_file(
+ const std::string & filename);
 
- [
- [[link boost_asio.reference.socket_base.max_connections [*max_connections]]]
- [The maximum length of the queue of pending incoming connections. ]
- ]
 
- [
- [[link boost_asio.reference.socket_base.message_do_not_route [*message_do_not_route]]]
- [Specify that the data should not be subject to routing. ]
- ]
+This function is used to load a certificate chain into the context from a file.
 
- [
- [[link boost_asio.reference.socket_base.message_end_of_record [*message_end_of_record]]]
- [Specifies that the data marks the end of a record. ]
- ]
 
- [
- [[link boost_asio.reference.socket_base.message_out_of_band [*message_out_of_band]]]
- [Process out-of-band data. ]
- ]
+[heading Parameters]
+
 
- [
- [[link boost_asio.reference.socket_base.message_peek [*message_peek]]]
- [Peek at incoming data without removing it from the input queue. ]
- ]
+[variablelist
+
+[[filename][The name of the file containing the certificate. The file must use the PEM format.]]
 
 ]
 
-[heading Requirements]
-
-[*Header: ][^boost/asio/socket_base.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
+[heading Exceptions]
+
 
+[variablelist
+
+[[boost::system::system_error][Thrown on failure.]]
 
-[section:broadcast socket_base::broadcast]
+]
 
-[indexterm2 broadcast..socket_base]
-Socket option to permit sending of broadcast messages.
 
+[heading Remarks]
+
+Calls `SSL_CTX_use_certificate_chain_file`.
 
- typedef implementation_defined broadcast;
 
 
 
-Implements the SOL\_SOCKET/SO\_BROADCAST socket option.
+[endsect]
 
 
-[heading Examples]
-
-Setting the option:
 
- boost::asio::ip::udp::socket socket(io_service);
- ...
- boost::asio::socket_base::broadcast option(true);
- socket.set_option(option);
+[section:overload2 ssl::context::use_certificate_chain_file (2 of 2 overloads)]
 
 
+Use a certificate chain from a file.
 
 
+ boost::system::error_code use_certificate_chain_file(
+ const std::string & filename,
+ boost::system::error_code & ec);
 
-Getting the current option value:
 
- boost::asio::ip::udp::socket socket(io_service);
- ...
- boost::asio::socket_base::broadcast option;
- socket.get_option(option);
- bool is_set = option.value();
+This function is used to load a certificate chain into the context from a file.
 
 
+[heading Parameters]
+
 
+[variablelist
+
+[[filename][The name of the file containing the certificate. The file must use the PEM format.]]
 
+[[ec][Set to indicate what error occurred, if any.]]
 
+]
 
 
-[heading Requirements]
+[heading Remarks]
+
+Calls `SSL_CTX_use_certificate_chain_file`.
 
-[*Header: ][^boost/asio/socket_base.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
+[endsect]
 
-[section:bytes_readable socket_base::bytes_readable]
-
-[indexterm2 bytes_readable..socket_base]
-IO control command to get the amount of data that can be read without blocking.
-
+[section:use_certificate_file ssl::context::use_certificate_file]
 
- typedef implementation_defined bytes_readable;
+[indexterm2 use_certificate_file..ssl::context]
+Use a certificate from a file.
 
 
+ void ``[link boost_asio.reference.ssl__context.use_certificate_file.overload1 use_certificate_file]``(
+ const std::string & filename,
+ file_format format);
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__context.use_certificate_file.overload1 more...]]``
 
-Implements the FIONREAD IO control command.
+ boost::system::error_code ``[link boost_asio.reference.ssl__context.use_certificate_file.overload2 use_certificate_file]``(
+ const std::string & filename,
+ file_format format,
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__context.use_certificate_file.overload2 more...]]``
 
 
-[heading Example]
-
+[section:overload1 ssl::context::use_certificate_file (1 of 2 overloads)]
 
 
- boost::asio::ip::tcp::socket socket(io_service);
- ...
- boost::asio::socket_base::bytes_readable command(true);
- socket.io_control(command);
- std::size_t bytes_readable = command.get();
+Use a certificate from a file.
 
 
+ void use_certificate_file(
+ const std::string & filename,
+ file_format format);
 
 
+This function is used to load a certificate into the context from a file.
 
 
+[heading Parameters]
+
 
-[heading Requirements]
+[variablelist
+
+[[filename][The name of the file containing the certificate.]]
 
-[*Header: ][^boost/asio/socket_base.hpp]
+[[format][The file format (ASN.1 or PEM).]]
 
-[*Convenience header: ][^boost/asio.hpp]
+]
 
 
-[endsect]
+[heading Exceptions]
+
 
+[variablelist
+
+[[boost::system::system_error][Thrown on failure.]]
 
+]
 
-[section:debug socket_base::debug]
 
-[indexterm2 debug..socket_base]
-Socket option to enable socket-level debugging.
+[heading Remarks]
+
+Calls `SSL_CTX_use_certificate_file`.
 
 
- typedef implementation_defined debug;
 
 
+[endsect]
 
-Implements the SOL\_SOCKET/SO\_DEBUG socket option.
 
 
-[heading Examples]
-
-Setting the option:
+[section:overload2 ssl::context::use_certificate_file (2 of 2 overloads)]
 
- boost::asio::ip::tcp::socket socket(io_service);
- ...
- boost::asio::socket_base::debug option(true);
- socket.set_option(option);
 
+Use a certificate from a file.
 
 
+ boost::system::error_code use_certificate_file(
+ const std::string & filename,
+ file_format format,
+ boost::system::error_code & ec);
 
 
-Getting the current option value:
+This function is used to load a certificate into the context from a file.
 
- boost::asio::ip::tcp::socket socket(io_service);
- ...
- boost::asio::socket_base::debug option;
- socket.get_option(option);
- bool is_set = option.value();
 
+[heading Parameters]
+
 
+[variablelist
+
+[[filename][The name of the file containing the certificate.]]
 
+[[format][The file format (ASN.1 or PEM).]]
 
+[[ec][Set to indicate what error occurred, if any.]]
 
+]
 
 
-[heading Requirements]
+[heading Remarks]
+
+Calls `SSL_CTX_use_certificate_file`.
 
-[*Header: ][^boost/asio/socket_base.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
+[endsect]
 
-[section:do_not_route socket_base::do_not_route]
-
-[indexterm2 do_not_route..socket_base]
-Socket option to prevent routing, use local interfaces only.
-
-
- typedef implementation_defined do_not_route;
-
-
+[section:use_private_key_file ssl::context::use_private_key_file]
 
-Implements the SOL\_SOCKET/SO\_DONTROUTE socket option.
+[indexterm2 use_private_key_file..ssl::context]
+Use a private key from a file.
 
 
-[heading Examples]
-
-Setting the option:
+ void ``[link boost_asio.reference.ssl__context.use_private_key_file.overload1 use_private_key_file]``(
+ const std::string & filename,
+ file_format format);
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__context.use_private_key_file.overload1 more...]]``
 
- boost::asio::ip::udp::socket socket(io_service);
- ...
- boost::asio::socket_base::do_not_route option(true);
- socket.set_option(option);
+ boost::system::error_code ``[link boost_asio.reference.ssl__context.use_private_key_file.overload2 use_private_key_file]``(
+ const std::string & filename,
+ file_format format,
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__context.use_private_key_file.overload2 more...]]``
 
 
+[section:overload1 ssl::context::use_private_key_file (1 of 2 overloads)]
 
 
+Use a private key from a file.
 
-Getting the current option value:
 
- boost::asio::ip::udp::socket socket(io_service);
- ...
- boost::asio::socket_base::do_not_route option;
- socket.get_option(option);
- bool is_set = option.value();
+ void use_private_key_file(
+ const std::string & filename,
+ file_format format);
 
 
+This function is used to load a private key into the context from a file.
 
 
+[heading Parameters]
+
 
+[variablelist
+
+[[filename][The name of the file containing the private key.]]
 
+[[format][The file format (ASN.1 or PEM).]]
 
-[heading Requirements]
+]
 
-[*Header: ][^boost/asio/socket_base.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
+[heading Exceptions]
+
 
+[variablelist
+
+[[boost::system::system_error][Thrown on failure.]]
 
-[endsect]
+]
 
 
+[heading Remarks]
+
+Calls `SSL_CTX_use_PrivateKey_file`.
 
-[section:enable_connection_aborted socket_base::enable_connection_aborted]
 
-[indexterm2 enable_connection_aborted..socket_base]
-Socket option to report aborted connections on accept.
 
 
- typedef implementation_defined enable_connection_aborted;
+[endsect]
 
 
 
-Implements a custom socket option that determines whether or not an accept operation is permitted to fail with `boost::asio::error::connection_aborted`. By default the option is false.
+[section:overload2 ssl::context::use_private_key_file (2 of 2 overloads)]
 
 
-[heading Examples]
-
-Setting the option:
+Use a private key from a file.
 
- boost::asio::ip::tcp::acceptor acceptor(io_service);
- ...
- boost::asio::socket_base::enable_connection_aborted option(true);
- acceptor.set_option(option);
 
+ boost::system::error_code use_private_key_file(
+ const std::string & filename,
+ file_format format,
+ boost::system::error_code & ec);
 
 
+This function is used to load a private key into the context from a file.
 
 
-Getting the current option value:
+[heading Parameters]
+
 
- boost::asio::ip::tcp::acceptor acceptor(io_service);
- ...
- boost::asio::socket_base::enable_connection_aborted option;
- acceptor.get_option(option);
- bool is_set = option.value();
+[variablelist
+
+[[filename][The name of the file containing the private key.]]
 
+[[format][The file format (ASN.1 or PEM).]]
 
+[[ec][Set to indicate what error occurred, if any.]]
 
+]
 
 
+[heading Remarks]
+
+Calls `SSL_CTX_use_PrivateKey_file`.
 
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/socket_base.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
+[endsect]
 
 
 [endsect]
 
+[section:use_rsa_private_key_file ssl::context::use_rsa_private_key_file]
 
+[indexterm2 use_rsa_private_key_file..ssl::context]
+Use an RSA private key from a file.
 
-[section:keep_alive socket_base::keep_alive]
-
-[indexterm2 keep_alive..socket_base]
-Socket option to send keep-alives.
 
+ void ``[link boost_asio.reference.ssl__context.use_rsa_private_key_file.overload1 use_rsa_private_key_file]``(
+ const std::string & filename,
+ file_format format);
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__context.use_rsa_private_key_file.overload1 more...]]``
 
- typedef implementation_defined keep_alive;
+ boost::system::error_code ``[link boost_asio.reference.ssl__context.use_rsa_private_key_file.overload2 use_rsa_private_key_file]``(
+ const std::string & filename,
+ file_format format,
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__context.use_rsa_private_key_file.overload2 more...]]``
 
 
+[section:overload1 ssl::context::use_rsa_private_key_file (1 of 2 overloads)]
 
-Implements the SOL\_SOCKET/SO\_KEEPALIVE socket option.
 
+Use an RSA private key from a file.
 
-[heading Examples]
-
-Setting the option:
 
- boost::asio::ip::tcp::socket socket(io_service);
- ...
- boost::asio::socket_base::keep_alive option(true);
- socket.set_option(option);
+ void use_rsa_private_key_file(
+ const std::string & filename,
+ file_format format);
 
 
+This function is used to load an RSA private key into the context from a file.
 
 
+[heading Parameters]
+
 
-Getting the current option value:
+[variablelist
+
+[[filename][The name of the file containing the RSA private key.]]
 
- boost::asio::ip::tcp::socket socket(io_service);
- ...
- boost::asio::socket_base::keep_alive option;
- socket.get_option(option);
- bool is_set = option.value();
+[[format][The file format (ASN.1 or PEM).]]
 
+]
 
 
+[heading Exceptions]
+
 
+[variablelist
+
+[[boost::system::system_error][Thrown on failure.]]
 
+]
 
 
-[heading Requirements]
+[heading Remarks]
+
+Calls `SSL_CTX_use_RSAPrivateKey_file`.
 
-[*Header: ][^boost/asio/socket_base.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
 
-[section:linger socket_base::linger]
+[section:overload2 ssl::context::use_rsa_private_key_file (2 of 2 overloads)]
 
-[indexterm2 linger..socket_base]
-Socket option to specify whether the socket lingers on close if unsent data is present.
 
+Use an RSA private key from a file.
 
- typedef implementation_defined linger;
+
+ boost::system::error_code use_rsa_private_key_file(
+ const std::string & filename,
+ file_format format,
+ boost::system::error_code & ec);
 
 
+This function is used to load an RSA private key into the context from a file.
 
-Implements the SOL\_SOCKET/SO\_LINGER socket option.
 
+[heading Parameters]
+
 
-[heading Examples]
+[variablelist
   
-Setting the option:
+[[filename][The name of the file containing the RSA private key.]]
 
- boost::asio::ip::tcp::socket socket(io_service);
- ...
- boost::asio::socket_base::linger option(true, 30);
- socket.set_option(option);
+[[format][The file format (ASN.1 or PEM).]]
 
+[[ec][Set to indicate what error occurred, if any.]]
 
+]
 
 
+[heading Remarks]
+
+Calls `SSL_CTX_use_RSAPrivateKey_file`.
 
-Getting the current option value:
 
- boost::asio::ip::tcp::socket socket(io_service);
- ...
- boost::asio::socket_base::linger option;
- socket.get_option(option);
- bool is_set = option.enabled();
- unsigned short timeout = option.timeout();
 
 
+[endsect]
 
 
+[endsect]
 
+[section:use_tmp_dh_file ssl::context::use_tmp_dh_file]
 
+[indexterm2 use_tmp_dh_file..ssl::context]
+Use the specified file to obtain the temporary Diffie-Hellman parameters.
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/socket_base.hpp]
+ void ``[link boost_asio.reference.ssl__context.use_tmp_dh_file.overload1 use_tmp_dh_file]``(
+ const std::string & filename);
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__context.use_tmp_dh_file.overload1 more...]]``
 
-[*Convenience header: ][^boost/asio.hpp]
+ boost::system::error_code ``[link boost_asio.reference.ssl__context.use_tmp_dh_file.overload2 use_tmp_dh_file]``(
+ const std::string & filename,
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__context.use_tmp_dh_file.overload2 more...]]``
 
 
-[endsect]
+[section:overload1 ssl::context::use_tmp_dh_file (1 of 2 overloads)]
 
 
+Use the specified file to obtain the temporary Diffie-Hellman parameters.
 
-[section:max_connections socket_base::max_connections]
 
-[indexterm2 max_connections..socket_base]
-The maximum length of the queue of pending incoming connections.
+ void use_tmp_dh_file(
+ const std::string & filename);
 
 
- static const int max_connections = implementation_defined;
+This function is used to load Diffie-Hellman parameters into the context from a file.
 
 
+[heading Parameters]
+
 
-[endsect]
+[variablelist
+
+[[filename][The name of the file containing the Diffie-Hellman parameters. The file must use the PEM format.]]
 
+]
 
 
-[section:message_do_not_route socket_base::message_do_not_route]
+[heading Exceptions]
+
 
-[indexterm2 message_do_not_route..socket_base]
-Specify that the data should not be subject to routing.
+[variablelist
+
+[[boost::system::system_error][Thrown on failure.]]
 
+]
 
- static const int message_do_not_route = implementation_defined;
 
+[heading Remarks]
+
+Calls `SSL_CTX_set_tmp_dh`.
 
 
-[endsect]
 
 
+[endsect]
 
-[section:message_end_of_record socket_base::message_end_of_record]
 
-[indexterm2 message_end_of_record..socket_base]
-Specifies that the data marks the end of a record.
 
+[section:overload2 ssl::context::use_tmp_dh_file (2 of 2 overloads)]
 
- static const int message_end_of_record = implementation_defined;
 
+Use the specified file to obtain the temporary Diffie-Hellman parameters.
 
 
-[endsect]
+ boost::system::error_code use_tmp_dh_file(
+ const std::string & filename,
+ boost::system::error_code & ec);
 
 
+This function is used to load Diffie-Hellman parameters into the context from a file.
 
-[section:message_flags socket_base::message_flags]
 
-[indexterm2 message_flags..socket_base]
-Bitmask type for flags that can be passed to send and receive operations.
+[heading Parameters]
+
 
+[variablelist
+
+[[filename][The name of the file containing the Diffie-Hellman parameters. The file must use the PEM format.]]
 
- typedef int message_flags;
+[[ec][Set to indicate what error occurred, if any.]]
 
+]
 
 
-[heading Requirements]
+[heading Remarks]
+
+Calls `SSL_CTX_set_tmp_dh`.
 
-[*Header: ][^boost/asio/socket_base.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
+[endsect]
+
 
-[section:message_out_of_band socket_base::message_out_of_band]
+[section:_context ssl::context::~context]
 
-[indexterm2 message_out_of_band..socket_base]
-Process out-of-band data.
+[indexterm2 ~context..ssl::context]
+Destructor.
 
 
- static const int message_out_of_band = implementation_defined;
+ ~context();
 
 
 
@@ -80458,359 +84268,486 @@
 
 
 
-[section:message_peek socket_base::message_peek]
+[endsect]
 
-[indexterm2 message_peek..socket_base]
-Peek at incoming data without removing it from the input queue.
+[section:ssl__context_base ssl::context_base]
 
 
- static const int message_peek = implementation_defined;
+The [link boost_asio.reference.ssl__context_base `ssl::context_base`] class is used as a base for the basic\_context class template so that we have a common place to define various enums.
 
 
+ class context_base
 
-[endsect]
 
+[heading Types]
+[table
+ [[Name][Description]]
 
+ [
 
-[section:non_blocking_io socket_base::non_blocking_io]
+ [[link boost_asio.reference.ssl__context_base.file_format [*file_format]]]
+ [File format types. ]
+
+ ]
 
-[indexterm2 non_blocking_io..socket_base]
-(Deprecated: Use non\_blocking().) IO control command to set the blocking mode of the socket.
+ [
 
+ [[link boost_asio.reference.ssl__context_base.method [*method]]]
+ [Different methods supported by a context. ]
+
+ ]
 
- typedef implementation_defined non_blocking_io;
+ [
 
+ [[link boost_asio.reference.ssl__context_base.options [*options]]]
+ [Bitmask type for SSL options. ]
+
+ ]
 
+ [
 
-Implements the FIONBIO IO control command.
+ [[link boost_asio.reference.ssl__context_base.password_purpose [*password_purpose]]]
+ [Purpose of PEM password. ]
+
+ ]
 
+]
 
-[heading Example]
-
+[heading Protected Member Functions]
+[table
+ [[Name][Description]]
 
+ [
+ [[link boost_asio.reference.ssl__context_base._context_base [*~context_base]]]
+ [Protected destructor to prevent deletion through this type. ]
+ ]
+
+]
 
- boost::asio::ip::tcp::socket socket(io_service);
- ...
- boost::asio::socket_base::non_blocking_io command(true);
- socket.io_control(command);
+[heading Data Members]
+[table
+ [[Name][Description]]
 
+ [
+ [[link boost_asio.reference.ssl__context_base.default_workarounds [*default_workarounds]]]
+ [Implement various bug workarounds. ]
+ ]
 
+ [
+ [[link boost_asio.reference.ssl__context_base.no_sslv2 [*no_sslv2]]]
+ [Disable SSL v2. ]
+ ]
 
+ [
+ [[link boost_asio.reference.ssl__context_base.no_sslv3 [*no_sslv3]]]
+ [Disable SSL v3. ]
+ ]
 
+ [
+ [[link boost_asio.reference.ssl__context_base.no_tlsv1 [*no_tlsv1]]]
+ [Disable TLS v1. ]
+ ]
 
+ [
+ [[link boost_asio.reference.ssl__context_base.single_dh_use [*single_dh_use]]]
+ [Always create a new key when using tmp_dh parameters. ]
+ ]
 
+]
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/socket_base.hpp]
+[*Header: ][^boost/asio/ssl/context_base.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
+[*Convenience header: ][^boost/asio/ssl.hpp]
 
 
-[endsect]
+[section:default_workarounds ssl::context_base::default_workarounds]
 
+[indexterm2 default_workarounds..ssl::context_base]
+Implement various bug workarounds.
 
 
-[section:receive_buffer_size socket_base::receive_buffer_size]
+ static const int default_workarounds = implementation_defined;
 
-[indexterm2 receive_buffer_size..socket_base]
-Socket option for the receive buffer size of a socket.
 
 
- typedef implementation_defined receive_buffer_size;
+[endsect]
 
 
 
-Implements the SOL\_SOCKET/SO\_RCVBUF socket option.
+[section:file_format ssl::context_base::file_format]
+
+[indexterm2 file_format..ssl::context_base]
+File format types.
 
 
-[heading Examples]
-
-Setting the option:
+ enum file_format
 
- boost::asio::ip::tcp::socket socket(io_service);
- ...
- boost::asio::socket_base::receive_buffer_size option(8192);
- socket.set_option(option);
+[indexterm2 asn1..ssl::context_base]
+[indexterm2 pem..ssl::context_base]
 
+[heading Values]
+[variablelist
 
+ [
+ [asn1]
+ [ASN.1 file. ]
+ ]
 
+ [
+ [pem]
+ [PEM file. ]
+ ]
 
+]
 
-Getting the current option value:
 
- boost::asio::ip::tcp::socket socket(io_service);
- ...
- boost::asio::socket_base::receive_buffer_size option;
- socket.get_option(option);
- int size = option.value();
 
+[endsect]
 
 
 
+[section:method ssl::context_base::method]
 
+[indexterm2 method..ssl::context_base]
+Different methods supported by a context.
 
 
-[heading Requirements]
+ enum method
 
-[*Header: ][^boost/asio/socket_base.hpp]
+[indexterm2 sslv2..ssl::context_base]
+[indexterm2 sslv2_client..ssl::context_base]
+[indexterm2 sslv2_server..ssl::context_base]
+[indexterm2 sslv3..ssl::context_base]
+[indexterm2 sslv3_client..ssl::context_base]
+[indexterm2 sslv3_server..ssl::context_base]
+[indexterm2 tlsv1..ssl::context_base]
+[indexterm2 tlsv1_client..ssl::context_base]
+[indexterm2 tlsv1_server..ssl::context_base]
+[indexterm2 sslv23..ssl::context_base]
+[indexterm2 sslv23_client..ssl::context_base]
+[indexterm2 sslv23_server..ssl::context_base]
 
-[*Convenience header: ][^boost/asio.hpp]
+[heading Values]
+[variablelist
 
+ [
+ [sslv2]
+ [Generic SSL version 2. ]
+ ]
 
-[endsect]
+ [
+ [sslv2_client]
+ [SSL version 2 client. ]
+ ]
 
+ [
+ [sslv2_server]
+ [SSL version 2 server. ]
+ ]
 
+ [
+ [sslv3]
+ [Generic SSL version 3. ]
+ ]
 
-[section:receive_low_watermark socket_base::receive_low_watermark]
+ [
+ [sslv3_client]
+ [SSL version 3 client. ]
+ ]
 
-[indexterm2 receive_low_watermark..socket_base]
-Socket option for the receive low watermark.
+ [
+ [sslv3_server]
+ [SSL version 3 server. ]
+ ]
 
+ [
+ [tlsv1]
+ [Generic TLS version 1. ]
+ ]
 
- typedef implementation_defined receive_low_watermark;
+ [
+ [tlsv1_client]
+ [TLS version 1 client. ]
+ ]
 
+ [
+ [tlsv1_server]
+ [TLS version 1 server. ]
+ ]
 
+ [
+ [sslv23]
+ [Generic SSL/TLS. ]
+ ]
 
-Implements the SOL\_SOCKET/SO\_RCVLOWAT socket option.
+ [
+ [sslv23_client]
+ [SSL/TLS client. ]
+ ]
 
+ [
+ [sslv23_server]
+ [SSL/TLS server. ]
+ ]
 
-[heading Examples]
-
-Setting the option:
+]
 
- boost::asio::ip::tcp::socket socket(io_service);
- ...
- boost::asio::socket_base::receive_low_watermark option(1024);
- socket.set_option(option);
 
 
+[endsect]
 
 
 
-Getting the current option value:
+[section:no_sslv2 ssl::context_base::no_sslv2]
 
- boost::asio::ip::tcp::socket socket(io_service);
- ...
- boost::asio::socket_base::receive_low_watermark option;
- socket.get_option(option);
- int size = option.value();
+[indexterm2 no_sslv2..ssl::context_base]
+Disable SSL v2.
 
 
+ static const int no_sslv2 = implementation_defined;
 
 
 
+[endsect]
 
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/socket_base.hpp]
+[section:no_sslv3 ssl::context_base::no_sslv3]
+
+[indexterm2 no_sslv3..ssl::context_base]
+Disable SSL v3.
+
+
+ static const int no_sslv3 = implementation_defined;
 
-[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
 
-[section:reuse_address socket_base::reuse_address]
+[section:no_tlsv1 ssl::context_base::no_tlsv1]
 
-[indexterm2 reuse_address..socket_base]
-Socket option to allow the socket to be bound to an address that is already in use.
+[indexterm2 no_tlsv1..ssl::context_base]
+Disable TLS v1.
 
 
- typedef implementation_defined reuse_address;
+ static const int no_tlsv1 = implementation_defined;
 
 
 
-Implements the SOL\_SOCKET/SO\_REUSEADDR socket option.
+[endsect]
 
 
-[heading Examples]
-
-Setting the option:
 
- boost::asio::ip::tcp::acceptor acceptor(io_service);
- ...
- boost::asio::socket_base::reuse_address option(true);
- acceptor.set_option(option);
+[section:options ssl::context_base::options]
 
+[indexterm2 options..ssl::context_base]
+Bitmask type for SSL options.
 
 
+ typedef int options;
 
 
-Getting the current option value:
 
- boost::asio::ip::tcp::acceptor acceptor(io_service);
- ...
- boost::asio::socket_base::reuse_address option;
- acceptor.get_option(option);
- bool is_set = option.value();
+[heading Requirements]
 
+[*Header: ][^boost/asio/ssl/context_base.hpp]
 
+[*Convenience header: ][^boost/asio/ssl.hpp]
 
 
+[endsect]
 
 
 
-[heading Requirements]
+[section:password_purpose ssl::context_base::password_purpose]
 
-[*Header: ][^boost/asio/socket_base.hpp]
+[indexterm2 password_purpose..ssl::context_base]
+Purpose of PEM password.
 
-[*Convenience header: ][^boost/asio.hpp]
 
+ enum password_purpose
+
+[indexterm2 for_reading..ssl::context_base]
+[indexterm2 for_writing..ssl::context_base]
+
+[heading Values]
+[variablelist
 
-[endsect]
+ [
+ [for_reading]
+ [The password is needed for reading/decryption. ]
+ ]
 
+ [
+ [for_writing]
+ [The password is needed for writing/encryption. ]
+ ]
 
+]
 
-[section:send_buffer_size socket_base::send_buffer_size]
 
-[indexterm2 send_buffer_size..socket_base]
-Socket option for the send buffer size of a socket.
 
+[endsect]
 
- typedef implementation_defined send_buffer_size;
 
 
+[section:single_dh_use ssl::context_base::single_dh_use]
 
-Implements the SOL\_SOCKET/SO\_SNDBUF socket option.
+[indexterm2 single_dh_use..ssl::context_base]
+Always create a new key when using tmp\_dh parameters.
 
 
-[heading Examples]
-
-Setting the option:
+ static const int single_dh_use = implementation_defined;
 
- boost::asio::ip::tcp::socket socket(io_service);
- ...
- boost::asio::socket_base::send_buffer_size option(8192);
- socket.set_option(option);
 
 
+[endsect]
 
 
 
-Getting the current option value:
+[section:_context_base ssl::context_base::~context_base]
 
- boost::asio::ip::tcp::socket socket(io_service);
- ...
- boost::asio::socket_base::send_buffer_size option;
- socket.get_option(option);
- int size = option.value();
+[indexterm2 ~context_base..ssl::context_base]
+Protected destructor to prevent deletion through this type.
 
 
+ ~context_base();
 
 
 
+[endsect]
 
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/socket_base.hpp]
+[endsect]
 
-[*Convenience header: ][^boost/asio.hpp]
+[section:ssl__rfc2818_verification ssl::rfc2818_verification]
 
 
-[endsect]
+Verifies a certificate against a hostname according to the rules described in RFC 2818.
 
 
+ class rfc2818_verification
 
-[section:send_low_watermark socket_base::send_low_watermark]
 
-[indexterm2 send_low_watermark..socket_base]
-Socket option for the send low watermark.
+[heading Types]
+[table
+ [[Name][Description]]
 
+ [
 
- typedef implementation_defined send_low_watermark;
+ [[link boost_asio.reference.ssl__rfc2818_verification.result_type [*result_type]]]
+ [The type of the function object's result. ]
+
+ ]
 
+]
 
+[heading Member Functions]
+[table
+ [[Name][Description]]
 
-Implements the SOL\_SOCKET/SO\_SNDLOWAT socket option.
+ [
+ [[link boost_asio.reference.ssl__rfc2818_verification.operator_lp__rp_ [*operator()]]]
+ [Perform certificate verification. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ssl__rfc2818_verification.rfc2818_verification [*rfc2818_verification]]]
+ [Constructor. ]
+ ]
+
+]
 
 
-[heading Examples]
+[heading Example]
   
-Setting the option:
+The following example shows how to synchronously open a secure connection to a given host name:
 
- boost::asio::ip::tcp::socket socket(io_service);
- ...
- boost::asio::socket_base::send_low_watermark option(1024);
- socket.set_option(option);
+ using boost::asio::ip::tcp;
+ namespace ssl = boost::asio::ssl;
+ typedef ssl::stream<tcp::socket> ssl_socket;
 
+ // Create a context that uses the default paths for finding CA certificates.
+ ssl::context ctx(ssl::context::sslv23);
+ ctx.set_default_verify_paths();
 
+ // Open a socket and connect it to the remote host.
+ boost::asio::io_service io_service;
+ ssl_socket sock(io_service, ctx);
+ tcp::resolver resolver(io_service);
+ tcp::resolver::query query("host.name", "https");
+ boost::asio::connect(sock.lowest_layer(), resolver.resolve(query));
+ sock.lowest_layer().set_option(tcp::no_delay(true));
 
+ // Perform SSL handshake and verify the remote host's certificate.
+ sock.set_verify_mode(ssl::verify_peer);
+ sock.set_verify_callback(ssl::rfc2818_verification("host.name"));
+ sock.handshake(ssl_socket::client);
 
+ // ... read and write as normal ...
 
-Getting the current option value:
 
- boost::asio::ip::tcp::socket socket(io_service);
- ...
- boost::asio::socket_base::send_low_watermark option;
- socket.get_option(option);
- int size = option.value();
 
 
 
 
+[heading Requirements]
 
+[*Header: ][^boost/asio/ssl/rfc2818_verification.hpp]
 
+[*Convenience header: ][^boost/asio/ssl.hpp]
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/socket_base.hpp]
+[section:operator_lp__rp_ ssl::rfc2818_verification::operator()]
 
-[*Convenience header: ][^boost/asio.hpp]
+[indexterm2 operator()..ssl::rfc2818_verification]
+Perform certificate verification.
 
 
-[endsect]
+ bool operator()(
+ bool preverified,
+ verify_context & ctx) const;
 
 
 
-[section:shutdown_type socket_base::shutdown_type]
+[endsect]
 
-[indexterm2 shutdown_type..socket_base]
-Different ways a socket may be shutdown.
 
 
- enum shutdown_type
+[section:result_type ssl::rfc2818_verification::result_type]
 
-[indexterm2 shutdown_receive..socket_base]
-[indexterm2 shutdown_send..socket_base]
-[indexterm2 shutdown_both..socket_base]
+[indexterm2 result_type..ssl::rfc2818_verification]
+The type of the function object's result.
 
-[heading Values]
-[variablelist
 
- [
- [shutdown_receive]
- [Shutdown the receive side of the socket. ]
- ]
+ typedef bool result_type;
 
- [
- [shutdown_send]
- [Shutdown the send side of the socket. ]
- ]
 
- [
- [shutdown_both]
- [Shutdown both send and receive on the socket. ]
- ]
 
-]
+[heading Requirements]
+
+[*Header: ][^boost/asio/ssl/rfc2818_verification.hpp]
 
+[*Convenience header: ][^boost/asio/ssl.hpp]
 
 
 [endsect]
 
 
 
-[section:_socket_base socket_base::~socket_base]
+[section:rfc2818_verification ssl::rfc2818_verification::rfc2818_verification]
 
-[indexterm2 ~socket_base..socket_base]
-Protected destructor to prevent deletion through this type.
+[indexterm2 rfc2818_verification..ssl::rfc2818_verification]
+Constructor.
 
 
- ~socket_base();
+ rfc2818_verification(
+ const std::string & host);
 
 
 
@@ -80820,12 +84757,16 @@
 
 [endsect]
 
-[section:ssl__context ssl::context]
+[section:ssl__stream ssl::stream]
 
 
+Provides stream-oriented functionality using SSL.
 
- class context :
- public ssl::context_base,
+
+ template<
+ typename Stream>
+ class stream :
+ public ssl::stream_base,
     noncopyable
 
 
@@ -80835,43 +84776,43 @@
 
   [
 
- [[link boost_asio.reference.ssl__context.file_format [*file_format]]]
- [File format types. ]
+ [[link boost_asio.reference.ssl__stream__impl_struct [*impl_struct]]]
+ [Structure for use with deprecated impl_type. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.ssl__context.impl_type [*impl_type]]]
- [(Deprecated: Use native_handle_type.) The native type of the SSL context. ]
+ [[link boost_asio.reference.ssl__stream.handshake_type [*handshake_type]]]
+ [Different handshake types. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.ssl__context.method [*method]]]
- [Different methods supported by a context. ]
+ [[link boost_asio.reference.ssl__stream.impl_type [*impl_type]]]
+ [(Deprecated: Use native_handle_type.) The underlying implementation type. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.ssl__context.native_handle_type [*native_handle_type]]]
- [The native handle type of the SSL context. ]
+ [[link boost_asio.reference.ssl__stream.lowest_layer_type [*lowest_layer_type]]]
+ [The type of the lowest layer. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.ssl__context.options [*options]]]
- [Bitmask type for SSL options. ]
+ [[link boost_asio.reference.ssl__stream.native_handle_type [*native_handle_type]]]
+ [The native handle type of the SSL stream. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.ssl__context.password_purpose [*password_purpose]]]
- [Purpose of PEM password. ]
+ [[link boost_asio.reference.ssl__stream.next_layer_type [*next_layer_type]]]
+ [The type of the next layer. ]
   
   ]
 
@@ -80882,160 +84823,137 @@
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.ssl__context.add_verify_path [*add_verify_path]]]
- [Add a directory containing certificate authority files to be used for performing verification. ]
+ [[link boost_asio.reference.ssl__stream.async_handshake [*async_handshake]]]
+ [Start an asynchronous SSL handshake. ]
   ]
   
   [
- [[link boost_asio.reference.ssl__context.context [*context]]]
- [Constructor.
-
- Deprecated constructor taking a reference to an io_service object.
-
- Move-construct a context from another. ]
+ [[link boost_asio.reference.ssl__stream.async_read_some [*async_read_some]]]
+ [Start an asynchronous read. ]
   ]
   
   [
- [[link boost_asio.reference.ssl__context.impl [*impl]]]
- [(Deprecated: Use native_handle().) Get the underlying implementation in the native type. ]
+ [[link boost_asio.reference.ssl__stream.async_shutdown [*async_shutdown]]]
+ [Asynchronously shut down SSL on the stream. ]
   ]
   
   [
- [[link boost_asio.reference.ssl__context.load_verify_file [*load_verify_file]]]
- [Load a certification authority file for performing verification. ]
+ [[link boost_asio.reference.ssl__stream.async_write_some [*async_write_some]]]
+ [Start an asynchronous write. ]
   ]
   
   [
- [[link boost_asio.reference.ssl__context.native_handle [*native_handle]]]
- [Get the underlying implementation in the native type. ]
+ [[link boost_asio.reference.ssl__stream.get_io_service [*get_io_service]]]
+ [Get the io_service associated with the object. ]
   ]
   
   [
- [[link boost_asio.reference.ssl__context.operator_eq_ [*operator=]]]
- [Move-assign a context from another. ]
+ [[link boost_asio.reference.ssl__stream.handshake [*handshake]]]
+ [Perform SSL handshaking. ]
   ]
   
   [
- [[link boost_asio.reference.ssl__context.set_default_verify_paths [*set_default_verify_paths]]]
- [Configures the context to use the default directories for finding certification authority certificates. ]
+ [[link boost_asio.reference.ssl__stream.impl [*impl]]]
+ [(Deprecated: Use native_handle().) Get the underlying implementation in the native type. ]
   ]
   
   [
- [[link boost_asio.reference.ssl__context.set_options [*set_options]]]
- [Set options on the context. ]
+ [[link boost_asio.reference.ssl__stream.lowest_layer [*lowest_layer]]]
+ [Get a reference to the lowest layer. ]
   ]
   
   [
- [[link boost_asio.reference.ssl__context.set_password_callback [*set_password_callback]]]
- [Set the password callback. ]
+ [[link boost_asio.reference.ssl__stream.native_handle [*native_handle]]]
+ [Get the underlying implementation in the native type. ]
   ]
   
   [
- [[link boost_asio.reference.ssl__context.set_verify_callback [*set_verify_callback]]]
- [Set the callback used to verify peer certificates. ]
+ [[link boost_asio.reference.ssl__stream.next_layer [*next_layer]]]
+ [Get a reference to the next layer. ]
   ]
   
   [
- [[link boost_asio.reference.ssl__context.set_verify_mode [*set_verify_mode]]]
- [Set the peer verification mode. ]
+ [[link boost_asio.reference.ssl__stream.read_some [*read_some]]]
+ [Read some data from the stream. ]
   ]
   
   [
- [[link boost_asio.reference.ssl__context.use_certificate_chain_file [*use_certificate_chain_file]]]
- [Use a certificate chain from a file. ]
+ [[link boost_asio.reference.ssl__stream.set_verify_callback [*set_verify_callback]]]
+ [Set the callback used to verify peer certificates. ]
   ]
   
   [
- [[link boost_asio.reference.ssl__context.use_certificate_file [*use_certificate_file]]]
- [Use a certificate from a file. ]
+ [[link boost_asio.reference.ssl__stream.set_verify_mode [*set_verify_mode]]]
+ [Set the peer verification mode. ]
   ]
   
   [
- [[link boost_asio.reference.ssl__context.use_private_key_file [*use_private_key_file]]]
- [Use a private key from a file. ]
+ [[link boost_asio.reference.ssl__stream.shutdown [*shutdown]]]
+ [Shut down SSL on the stream. ]
   ]
   
   [
- [[link boost_asio.reference.ssl__context.use_rsa_private_key_file [*use_rsa_private_key_file]]]
- [Use an RSA private key from a file. ]
+ [[link boost_asio.reference.ssl__stream.stream [*stream]]]
+ [Construct a stream. ]
   ]
   
   [
- [[link boost_asio.reference.ssl__context.use_tmp_dh_file [*use_tmp_dh_file]]]
- [Use the specified file to obtain the temporary Diffie-Hellman parameters. ]
+ [[link boost_asio.reference.ssl__stream.write_some [*write_some]]]
+ [Write some data to the stream. ]
   ]
   
   [
- [[link boost_asio.reference.ssl__context._context [*~context]]]
+ [[link boost_asio.reference.ssl__stream._stream [*~stream]]]
     [Destructor. ]
   ]
   
 ]
 
-[heading Data Members]
-[table
- [[Name][Description]]
+The stream class template provides asynchronous and blocking stream-oriented functionality using SSL.
 
- [
- [[link boost_asio.reference.ssl__context.default_workarounds [*default_workarounds]]]
- [Implement various bug workarounds. ]
- ]
 
- [
- [[link boost_asio.reference.ssl__context.no_sslv2 [*no_sslv2]]]
- [Disable SSL v2. ]
- ]
+[heading Thread Safety]
+
+[*Distinct] [*objects:] Safe.
 
- [
- [[link boost_asio.reference.ssl__context.no_sslv3 [*no_sslv3]]]
- [Disable SSL v3. ]
- ]
+[*Shared] [*objects:] Unsafe. The application must also ensure that all asynchronous operations are performed within the same implicit or explicit strand.
 
- [
- [[link boost_asio.reference.ssl__context.no_tlsv1 [*no_tlsv1]]]
- [Disable TLS v1. ]
- ]
 
- [
- [[link boost_asio.reference.ssl__context.single_dh_use [*single_dh_use]]]
- [Always create a new key when using tmp_dh parameters. ]
- ]
+[heading Example]
+
+To use the SSL stream template with an `ip::tcp::socket`, you would write:
 
-]
+ boost::asio::io_service io_service;
+ boost::asio::ssl::context ctx(boost::asio::ssl::context::sslv23);
+ boost::asio::ssl::stream<asio:ip::tcp::socket> sock(io_service, ctx);
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/ssl/context.hpp]
 
-[*Convenience header: ][^boost/asio/ssl.hpp]
 
-[section:add_verify_path ssl::context::add_verify_path]
 
-[indexterm2 add_verify_path..ssl::context]
-Add a directory containing certificate authority files to be used for performing verification.
 
 
- void ``[link boost_asio.reference.ssl__context.add_verify_path.overload1 add_verify_path]``(
- const std::string & path);
- `` [''''&raquo;''' [link boost_asio.reference.ssl__context.add_verify_path.overload1 more...]]``
+[heading Requirements]
 
- boost::system::error_code ``[link boost_asio.reference.ssl__context.add_verify_path.overload2 add_verify_path]``(
- const std::string & path,
- boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.ssl__context.add_verify_path.overload2 more...]]``
+[*Header: ][^boost/asio/ssl/stream.hpp]
 
+[*Convenience header: ][^boost/asio/ssl.hpp]
 
-[section:overload1 ssl::context::add_verify_path (1 of 2 overloads)]
 
+[section:async_handshake ssl::stream::async_handshake]
 
-Add a directory containing certificate authority files to be used for performing verification.
+[indexterm2 async_handshake..ssl::stream]
+Start an asynchronous SSL handshake.
 
 
- void add_verify_path(
- const std::string & path);
+ template<
+ typename ``[link boost_asio.reference.HandshakeHandler HandshakeHandler]``>
+ void async_handshake(
+ handshake_type type,
+ HandshakeHandler handler);
 
 
-This function is used to specify the name of a directory containing certification authority certificates. Each file in the directory must contain a single certificate. The files must be named using the subject name's hash and an extension of ".0".
+This function is used to asynchronously perform an SSL handshake on the stream. This function call always returns immediately.
 
 
 [heading Parameters]
@@ -81043,24 +84961,64 @@
 
 [variablelist
   
-[[path][The name of a directory containing the certificates.]]
+[[type][The type of handshaking to be performed, i.e. as a client or as a server.]]
+
+[[handler][The handler to be called when the handshake operation completes. Copies will be made of the handler as required. The equivalent function signature of the handler must be:
+``
+ void handler(
+ const boost::system::error_code& error // Result of operation.
+ );
+``
+]]
 
 ]
 
 
-[heading Exceptions]
+
+
+[endsect]
+
+
+
+[section:async_read_some ssl::stream::async_read_some]
+
+[indexterm2 async_read_some..ssl::stream]
+Start an asynchronous read.
+
+
+ template<
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
+ typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
+ void async_read_some(
+ const MutableBufferSequence & buffers,
+ ReadHandler handler);
+
+
+This function is used to asynchronously read one or more bytes of data from the stream. The function call always returns immediately.
+
+
+[heading Parameters]
     
 
 [variablelist
   
-[[boost::system::system_error][Thrown on failure.]]
+[[buffers][The buffers into which the data will be read. Although the buffers object may be copied as necessary, ownership of the underlying buffers is retained by the caller, which must guarantee that they remain valid until the handler is called.]]
+
+[[handler][The handler to be called when the read operation completes. Copies will be made of the handler as required. The equivalent function signature of the handler must be:
+``
+ void handler(
+ const boost::system::error_code& error, // Result of operation.
+ std::size_t bytes_transferred // Number of bytes read.
+ );
+``
+]]
 
 ]
 
 
 [heading Remarks]
       
-Calls `SSL_CTX_load_verify_locations`.
+The async\_read\_some operation may not read all of the requested number of bytes. Consider using the [link boost_asio.reference.async_read `async_read`] function if you need to ensure that the requested amount of data is read before the asynchronous operation completes.
 
 
 
@@ -81069,18 +85027,19 @@
 
 
 
-[section:overload2 ssl::context::add_verify_path (2 of 2 overloads)]
-
+[section:async_shutdown ssl::stream::async_shutdown]
 
-Add a directory containing certificate authority files to be used for performing verification.
+[indexterm2 async_shutdown..ssl::stream]
+Asynchronously shut down SSL on the stream.
 
 
- boost::system::error_code add_verify_path(
- const std::string & path,
- boost::system::error_code & ec);
+ template<
+ typename ``[link boost_asio.reference.ShutdownHandler ShutdownHandler]``>
+ void async_shutdown(
+ ShutdownHandler handler);
 
 
-This function is used to specify the name of a directory containing certification authority certificates. Each file in the directory must contain a single certificate. The files must be named using the subject name's hash and an extension of ".0".
+This function is used to asynchronously shut down SSL on the stream. This function call always returns immediately.
 
 
 [heading Parameters]
@@ -81088,95 +85047,119 @@
 
 [variablelist
   
-[[path][The name of a directory containing the certificates.]]
-
-[[ec][Set to indicate what error occurred, if any.]]
+[[handler][The handler to be called when the handshake operation completes. Copies will be made of the handler as required. The equivalent function signature of the handler must be:
+``
+ void handler(
+ const boost::system::error_code& error // Result of operation.
+ );
+``
+]]
 
 ]
 
 
-[heading Remarks]
-
-Calls `SSL_CTX_load_verify_locations`.
-
-
 
 
 [endsect]
 
 
-[endsect]
 
-[section:context ssl::context::context]
+[section:async_write_some ssl::stream::async_write_some]
 
-[indexterm2 context..ssl::context]
-Constructor.
+[indexterm2 async_write_some..ssl::stream]
+Start an asynchronous write.
 
 
- explicit ``[link boost_asio.reference.ssl__context.context.overload1 context]``(
- method m);
- `` [''''&raquo;''' [link boost_asio.reference.ssl__context.context.overload1 more...]]``
+ template<
+ typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
+ typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
+ void async_write_some(
+ const ConstBufferSequence & buffers,
+ WriteHandler handler);
 
 
-Deprecated constructor taking a reference to an [link boost_asio.reference.io_service `io_service`] object.
+This function is used to asynchronously write one or more bytes of data to the stream. The function call always returns immediately.
 
 
- ``[link boost_asio.reference.ssl__context.context.overload2 context]``(
- boost::asio::io_service & ,
- method m);
- `` [''''&raquo;''' [link boost_asio.reference.ssl__context.context.overload2 more...]]``
+[heading Parameters]
+
 
+[variablelist
+
+[[buffers][The data to be written to the stream. Although the buffers object may be copied as necessary, ownership of the underlying buffers is retained by the caller, which must guarantee that they remain valid until the handler is called.]]
 
-Move-construct a context from another.
+[[handler][The handler to be called when the write operation completes. Copies will be made of the handler as required. The equivalent function signature of the handler must be:
+``
+ void handler(
+ const boost::system::error_code& error, // Result of operation.
+ std::size_t bytes_transferred // Number of bytes written.
+ );
+``
+]]
 
+]
 
- ``[link boost_asio.reference.ssl__context.context.overload3 context]``(
- context && other);
- `` [''''&raquo;''' [link boost_asio.reference.ssl__context.context.overload3 more...]]``
 
+[heading Remarks]
+
+The async\_write\_some operation may not transmit all of the data to the peer. Consider using the [link boost_asio.reference.async_write `async_write`] function if you need to ensure that all data is written before the blocking operation completes.
 
-[section:overload1 ssl::context::context (1 of 3 overloads)]
 
 
-Constructor.
 
+[endsect]
 
- context(
- method m);
 
 
+[section:get_io_service ssl::stream::get_io_service]
 
-[endsect]
+[indexterm2 get_io_service..ssl::stream]
+Get the [link boost_asio.reference.io_service `io_service`] associated with the object.
 
 
+ boost::asio::io_service & get_io_service();
 
-[section:overload2 ssl::context::context (2 of 3 overloads)]
 
+This function may be used to obtain the [link boost_asio.reference.io_service `io_service`] object that the stream uses to dispatch handlers for asynchronous operations.
 
-Deprecated constructor taking a reference to an [link boost_asio.reference.io_service `io_service`] object.
 
+[heading Return Value]
+
+A reference to the [link boost_asio.reference.io_service `io_service`] object that stream will use to dispatch handlers. Ownership is not transferred to the caller.
 
- context(
- boost::asio::io_service & ,
- method m);
 
 
 
 [endsect]
 
 
+[section:handshake ssl::stream::handshake]
+
+[indexterm2 handshake..ssl::stream]
+Perform SSL handshaking.
 
-[section:overload3 ssl::context::context (3 of 3 overloads)]
 
+ void ``[link boost_asio.reference.ssl__stream.handshake.overload1 handshake]``(
+ handshake_type type);
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__stream.handshake.overload1 more...]]``
 
-Move-construct a context from another.
+ boost::system::error_code ``[link boost_asio.reference.ssl__stream.handshake.overload2 handshake]``(
+ handshake_type type,
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__stream.handshake.overload2 more...]]``
 
 
- context(
- context && other);
+[section:overload1 ssl::stream::handshake (1 of 2 overloads)]
 
 
-This constructor moves an SSL context from one object to another.
+Perform SSL handshaking.
+
+
+ void handshake(
+ handshake_type type);
+
+
+This function is used to perform SSL handshaking on the stream. The function call will block until handshaking is complete or an error occurs.
 
 
 [heading Parameters]
@@ -81184,65 +85167,83 @@
 
 [variablelist
   
-[[other][The other context object from which the move will occur.]]
+[[type][The type of handshaking to be performed, i.e. as a client or as a server.]]
+
+]
+
+
+[heading Exceptions]
+
+
+[variablelist
+
+[[boost::system::system_error][Thrown on failure. ]]
 
 ]
 
 
-[heading Remarks]
-
-Following the move, the following operations only are valid for the moved-from object:
-* Destruction.
 
-* As a target for move-assignment.
 
+[endsect]
+
+
+
+[section:overload2 ssl::stream::handshake (2 of 2 overloads)]
 
 
+Perform SSL handshaking.
 
 
+ boost::system::error_code handshake(
+ handshake_type type,
+ boost::system::error_code & ec);
 
-[endsect]
 
+This function is used to perform SSL handshaking on the stream. The function call will block until handshaking is complete or an error occurs.
 
-[endsect]
 
+[heading Parameters]
+
 
-[section:default_workarounds ssl::context::default_workarounds]
+[variablelist
+
+[[type][The type of handshaking to be performed, i.e. as a client or as a server.]]
 
-[indexterm2 default_workarounds..ssl::context]
-Implement various bug workarounds.
+[[ec][Set to indicate what error occurred, if any. ]]
 
+]
 
- static const int default_workarounds = implementation_defined;
 
 
 
 [endsect]
 
 
+[endsect]
 
-[section:file_format ssl::context::file_format]
 
-[indexterm2 file_format..ssl::context]
-File format types.
+[section:handshake_type ssl::stream::handshake_type]
 
+[indexterm2 handshake_type..ssl::stream]
+Different handshake types.
 
- enum file_format
 
-[indexterm2 asn1..ssl::context]
-[indexterm2 pem..ssl::context]
+ enum handshake_type
+
+[indexterm2 client..ssl::stream]
+[indexterm2 server..ssl::stream]
 
 [heading Values]
 [variablelist
 
   [
- [asn1]
- [ASN.1 file. ]
+ [client]
+ [Perform handshaking as a client. ]
   ]
 
   [
- [pem]
- [PEM file. ]
+ [server]
+ [Perform handshaking as a server. ]
   ]
 
 ]
@@ -81253,35 +85254,35 @@
 
 
 
-[section:impl ssl::context::impl]
+[section:impl ssl::stream::impl]
 
-[indexterm2 impl..ssl::context]
+[indexterm2 impl..ssl::stream]
 (Deprecated: Use `native_handle()`.) Get the underlying implementation in the native type.
 
 
   impl_type impl();
 
 
-This function may be used to obtain the underlying implementation of the context. This is intended to allow access to context functionality that is not otherwise provided.
+This function may be used to obtain the underlying implementation of the context. This is intended to allow access to stream functionality that is not otherwise provided.
 
 
 [endsect]
 
 
 
-[section:impl_type ssl::context::impl_type]
+[section:impl_type ssl::stream::impl_type]
 
-[indexterm2 impl_type..ssl::context]
-(Deprecated: Use native\_handle\_type.) The native type of the SSL context.
+[indexterm2 impl_type..ssl::stream]
+(Deprecated: Use native\_handle\_type.) The underlying implementation type.
 
 
- typedef SSL_CTX * impl_type;
+ typedef impl_struct * impl_type;
 
 
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/ssl/context.hpp]
+[*Header: ][^boost/asio/ssl/stream.hpp]
 
 [*Convenience header: ][^boost/asio/ssl.hpp]
 
@@ -81289,58 +85290,57 @@
 [endsect]
 
 
-[section:load_verify_file ssl::context::load_verify_file]
+[section:lowest_layer ssl::stream::lowest_layer]
 
-[indexterm2 load_verify_file..ssl::context]
-Load a certification authority file for performing verification.
+[indexterm2 lowest_layer..ssl::stream]
+Get a reference to the lowest layer.
 
 
- void ``[link boost_asio.reference.ssl__context.load_verify_file.overload1 load_verify_file]``(
- const std::string & filename);
- `` [''''&raquo;''' [link boost_asio.reference.ssl__context.load_verify_file.overload1 more...]]``
+ lowest_layer_type & ``[link boost_asio.reference.ssl__stream.lowest_layer.overload1 lowest_layer]``();
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__stream.lowest_layer.overload1 more...]]``
 
- boost::system::error_code ``[link boost_asio.reference.ssl__context.load_verify_file.overload2 load_verify_file]``(
- const std::string & filename,
- boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.ssl__context.load_verify_file.overload2 more...]]``
+ const lowest_layer_type & ``[link boost_asio.reference.ssl__stream.lowest_layer.overload2 lowest_layer]``() const;
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__stream.lowest_layer.overload2 more...]]``
 
 
-[section:overload1 ssl::context::load_verify_file (1 of 2 overloads)]
+[section:overload1 ssl::stream::lowest_layer (1 of 2 overloads)]
 
 
-Load a certification authority file for performing verification.
+Get a reference to the lowest layer.
 
 
- void load_verify_file(
- const std::string & filename);
+ lowest_layer_type & lowest_layer();
 
 
-This function is used to load one or more trusted certification authorities from a file.
+This function returns a reference to the lowest layer in a stack of stream layers.
 
 
-[heading Parameters]
-
+[heading Return Value]
+
+A reference to the lowest layer in the stack of stream layers. Ownership is not transferred to the caller.
 
-[variablelist
-
-[[filename][The name of a file containing certification authority certificates in PEM format.]]
 
-]
 
 
-[heading Exceptions]
-
+[endsect]
 
-[variablelist
-
-[[boost::system::system_error][Thrown on failure.]]
 
-]
 
+[section:overload2 ssl::stream::lowest_layer (2 of 2 overloads)]
 
-[heading Remarks]
+
+Get a reference to the lowest layer.
+
+
+ const lowest_layer_type & lowest_layer() const;
+
+
+This function returns a reference to the lowest layer in a stack of stream layers.
+
+
+[heading Return Value]
       
-Calls `SSL_CTX_load_verify_locations`.
+A reference to the lowest layer in the stack of stream layers. Ownership is not transferred to the caller.
 
 
 
@@ -81348,228 +85348,202 @@
 [endsect]
 
 
+[endsect]
 
-[section:overload2 ssl::context::load_verify_file (2 of 2 overloads)]
 
+[section:lowest_layer_type ssl::stream::lowest_layer_type]
 
-Load a certification authority file for performing verification.
+[indexterm2 lowest_layer_type..ssl::stream]
+The type of the lowest layer.
 
 
- boost::system::error_code load_verify_file(
- const std::string & filename,
- boost::system::error_code & ec);
+ typedef next_layer_type::lowest_layer_type lowest_layer_type;
 
 
-This function is used to load the certificates for one or more trusted certification authorities from a file.
 
+[heading Requirements]
 
-[heading Parameters]
-
+[*Header: ][^boost/asio/ssl/stream.hpp]
 
-[variablelist
-
-[[filename][The name of a file containing certification authority certificates in PEM format.]]
+[*Convenience header: ][^boost/asio/ssl.hpp]
 
-[[ec][Set to indicate what error occurred, if any.]]
 
-]
+[endsect]
 
 
-[heading Remarks]
-
-Calls `SSL_CTX_load_verify_locations`.
 
+[section:native_handle ssl::stream::native_handle]
 
+[indexterm2 native_handle..ssl::stream]
+Get the underlying implementation in the native type.
 
 
-[endsect]
+ native_handle_type native_handle();
 
 
-[endsect]
+This function may be used to obtain the underlying implementation of the context. This is intended to allow access to context functionality that is not otherwise provided.
 
 
-[section:method ssl::context::method]
+[heading Example]
+
+The `native_handle()` function returns a pointer of type `SSL*` that is suitable for passing to functions such as `SSL_get_verify_result` and `SSL_get_peer_certificate:`
 
-[indexterm2 method..ssl::context]
-Different methods supported by a context.
+ boost::asio::ssl::stream<asio:ip::tcp::socket> sock(io_service, ctx);
 
+ // ... establish connection and perform handshake ...
 
- enum method
+ if (X509* cert = SSL_get_peer_certificate(sock.native_handle()))
+ {
+ if (SSL_get_verify_result(sock.native_handle()) == X509_V_OK)
+ {
+ // ...
+ }
+ }
 
-[indexterm2 sslv2..ssl::context]
-[indexterm2 sslv2_client..ssl::context]
-[indexterm2 sslv2_server..ssl::context]
-[indexterm2 sslv3..ssl::context]
-[indexterm2 sslv3_client..ssl::context]
-[indexterm2 sslv3_server..ssl::context]
-[indexterm2 tlsv1..ssl::context]
-[indexterm2 tlsv1_client..ssl::context]
-[indexterm2 tlsv1_server..ssl::context]
-[indexterm2 sslv23..ssl::context]
-[indexterm2 sslv23_client..ssl::context]
-[indexterm2 sslv23_server..ssl::context]
 
-[heading Values]
-[variablelist
 
- [
- [sslv2]
- [Generic SSL version 2. ]
- ]
 
- [
- [sslv2_client]
- [SSL version 2 client. ]
- ]
 
- [
- [sslv2_server]
- [SSL version 2 server. ]
- ]
 
- [
- [sslv3]
- [Generic SSL version 3. ]
- ]
 
- [
- [sslv3_client]
- [SSL version 3 client. ]
- ]
+[endsect]
 
- [
- [sslv3_server]
- [SSL version 3 server. ]
- ]
 
- [
- [tlsv1]
- [Generic TLS version 1. ]
- ]
 
- [
- [tlsv1_client]
- [TLS version 1 client. ]
- ]
+[section:native_handle_type ssl::stream::native_handle_type]
 
- [
- [tlsv1_server]
- [TLS version 1 server. ]
- ]
+[indexterm2 native_handle_type..ssl::stream]
+The native handle type of the SSL stream.
 
- [
- [sslv23]
- [Generic SSL/TLS. ]
- ]
 
- [
- [sslv23_client]
- [SSL/TLS client. ]
- ]
+ typedef SSL * native_handle_type;
 
- [
- [sslv23_server]
- [SSL/TLS server. ]
- ]
 
-]
 
+[heading Requirements]
+
+[*Header: ][^boost/asio/ssl/stream.hpp]
+
+[*Convenience header: ][^boost/asio/ssl.hpp]
 
 
 [endsect]
 
 
+[section:next_layer ssl::stream::next_layer]
 
-[section:native_handle ssl::context::native_handle]
+[indexterm2 next_layer..ssl::stream]
+Get a reference to the next layer.
 
-[indexterm2 native_handle..ssl::context]
-Get the underlying implementation in the native type.
 
+ const next_layer_type & ``[link boost_asio.reference.ssl__stream.next_layer.overload1 next_layer]``() const;
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__stream.next_layer.overload1 more...]]``
+
+ next_layer_type & ``[link boost_asio.reference.ssl__stream.next_layer.overload2 next_layer]``();
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__stream.next_layer.overload2 more...]]``
 
- native_handle_type native_handle();
 
+[section:overload1 ssl::stream::next_layer (1 of 2 overloads)]
 
-This function may be used to obtain the underlying implementation of the context. This is intended to allow access to context functionality that is not otherwise provided.
 
+Get a reference to the next layer.
 
-[endsect]
 
+ const next_layer_type & next_layer() const;
 
 
-[section:native_handle_type ssl::context::native_handle_type]
+This function returns a reference to the next layer in a stack of stream layers.
 
-[indexterm2 native_handle_type..ssl::context]
-The native handle type of the SSL context.
+
+[heading Return Value]
+
+A reference to the next layer in the stack of stream layers. Ownership is not transferred to the caller.
 
 
- typedef SSL_CTX * native_handle_type;
 
 
+[endsect]
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/ssl/context.hpp]
 
-[*Convenience header: ][^boost/asio/ssl.hpp]
+[section:overload2 ssl::stream::next_layer (2 of 2 overloads)]
 
 
-[endsect]
+Get a reference to the next layer.
 
 
+ next_layer_type & next_layer();
 
-[section:no_sslv2 ssl::context::no_sslv2]
 
-[indexterm2 no_sslv2..ssl::context]
-Disable SSL v2.
+This function returns a reference to the next layer in a stack of stream layers.
 
 
- static const int no_sslv2 = implementation_defined;
+[heading Return Value]
+
+A reference to the next layer in the stack of stream layers. Ownership is not transferred to the caller.
+
 
 
 
 [endsect]
 
 
+[endsect]
 
-[section:no_sslv3 ssl::context::no_sslv3]
 
-[indexterm2 no_sslv3..ssl::context]
-Disable SSL v3.
+[section:next_layer_type ssl::stream::next_layer_type]
 
+[indexterm2 next_layer_type..ssl::stream]
+The type of the next layer.
 
- static const int no_sslv3 = implementation_defined;
 
+ typedef boost::remove_reference< Stream >::type next_layer_type;
 
 
-[endsect]
 
+[heading Requirements]
 
+[*Header: ][^boost/asio/ssl/stream.hpp]
 
-[section:no_tlsv1 ssl::context::no_tlsv1]
+[*Convenience header: ][^boost/asio/ssl.hpp]
 
-[indexterm2 no_tlsv1..ssl::context]
-Disable TLS v1.
 
+[endsect]
 
- static const int no_tlsv1 = implementation_defined;
 
+[section:read_some ssl::stream::read_some]
 
+[indexterm2 read_some..ssl::stream]
+Read some data from the stream.
 
-[endsect]
 
+ template<
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
+ std::size_t ``[link boost_asio.reference.ssl__stream.read_some.overload1 read_some]``(
+ const MutableBufferSequence & buffers);
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__stream.read_some.overload1 more...]]``
 
+ template<
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
+ std::size_t ``[link boost_asio.reference.ssl__stream.read_some.overload2 read_some]``(
+ const MutableBufferSequence & buffers,
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__stream.read_some.overload2 more...]]``
 
-[section:operator_eq_ ssl::context::operator=]
 
-[indexterm2 operator=..ssl::context]
-Move-assign a context from another.
+[section:overload1 ssl::stream::read_some (1 of 2 overloads)]
 
 
- context & operator=(
- context && other);
+Read some data from the stream.
 
 
-This assignment operator moves an SSL context from one object to another.
+ template<
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
+ std::size_t read_some(
+ const MutableBufferSequence & buffers);
+
+
+This function is used to read data from the stream. The function call will block until one or more bytes of data has been read successfully, or until an error occurs.
 
 
 [heading Parameters]
@@ -81577,103 +85551,132 @@
 
 [variablelist
   
-[[other][The other context object from which the move will occur.]]
+[[buffers][The buffers into which the data will be read.]]
 
 ]
 
 
-[heading Remarks]
+[heading Return Value]
       
-Following the move, the following operations only are valid for the moved-from object:
-* Destruction.
+The number of bytes read.
 
-* As a target for move-assignment.
 
+[heading Exceptions]
+
 
+[variablelist
+
+[[boost::system::system_error][Thrown on failure.]]
 
+]
 
 
+[heading Remarks]
+
+The read\_some operation may not read all of the requested number of bytes. Consider using the [link boost_asio.reference.read `read`] function if you need to ensure that the requested amount of data is read before the blocking operation completes.
 
-[endsect]
 
 
 
-[section:options ssl::context::options]
+[endsect]
 
-[indexterm2 options..ssl::context]
-Bitmask type for SSL options.
 
 
- typedef int options;
+[section:overload2 ssl::stream::read_some (2 of 2 overloads)]
 
 
+Read some data from the stream.
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/ssl/context.hpp]
+ template<
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
+ std::size_t read_some(
+ const MutableBufferSequence & buffers,
+ boost::system::error_code & ec);
 
-[*Convenience header: ][^boost/asio/ssl.hpp]
 
+This function is used to read data from the stream. The function call will block until one or more bytes of data has been read successfully, or until an error occurs.
 
-[endsect]
 
+[heading Parameters]
+
 
+[variablelist
+
+[[buffers][The buffers into which the data will be read.]]
 
-[section:password_purpose ssl::context::password_purpose]
+[[ec][Set to indicate what error occurred, if any.]]
 
-[indexterm2 password_purpose..ssl::context]
-Purpose of PEM password.
+]
 
 
- enum password_purpose
+[heading Return Value]
+
+The number of bytes read. Returns 0 if an error occurred.
 
-[indexterm2 for_reading..ssl::context]
-[indexterm2 for_writing..ssl::context]
 
-[heading Values]
-[variablelist
+[heading Remarks]
+
+The read\_some operation may not read all of the requested number of bytes. Consider using the [link boost_asio.reference.read `read`] function if you need to ensure that the requested amount of data is read before the blocking operation completes.
 
- [
- [for_reading]
- [The password is needed for reading/decryption. ]
- ]
 
- [
- [for_writing]
- [The password is needed for writing/encryption. ]
- ]
 
-]
 
+[endsect]
 
 
 [endsect]
 
+[section:set_verify_callback ssl::stream::set_verify_callback]
 
-[section:set_default_verify_paths ssl::context::set_default_verify_paths]
-
-[indexterm2 set_default_verify_paths..ssl::context]
-Configures the context to use the default directories for finding certification authority certificates.
+[indexterm2 set_verify_callback..ssl::stream]
+Set the callback used to verify peer certificates.
 
 
- void ``[link boost_asio.reference.ssl__context.set_default_verify_paths.overload1 set_default_verify_paths]``();
- `` [''''&raquo;''' [link boost_asio.reference.ssl__context.set_default_verify_paths.overload1 more...]]``
+ template<
+ typename VerifyCallback>
+ void ``[link boost_asio.reference.ssl__stream.set_verify_callback.overload1 set_verify_callback]``(
+ VerifyCallback callback);
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__stream.set_verify_callback.overload1 more...]]``
 
- boost::system::error_code ``[link boost_asio.reference.ssl__context.set_default_verify_paths.overload2 set_default_verify_paths]``(
+ template<
+ typename VerifyCallback>
+ boost::system::error_code ``[link boost_asio.reference.ssl__stream.set_verify_callback.overload2 set_verify_callback]``(
+ VerifyCallback callback,
       boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.ssl__context.set_default_verify_paths.overload2 more...]]``
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__stream.set_verify_callback.overload2 more...]]``
 
 
-[section:overload1 ssl::context::set_default_verify_paths (1 of 2 overloads)]
+[section:overload1 ssl::stream::set_verify_callback (1 of 2 overloads)]
 
 
-Configures the context to use the default directories for finding certification authority certificates.
+Set the callback used to verify peer certificates.
 
 
- void set_default_verify_paths();
+ template<
+ typename VerifyCallback>
+ void set_verify_callback(
+ VerifyCallback callback);
 
 
-This function specifies that the context should use the default, system-dependent directories for locating certification authority certificates.
+This function is used to specify a callback function that will be called by the implementation when it needs to verify a peer certificate.
+
+
+[heading Parameters]
+
+
+[variablelist
+
+[[callback][The function object to be used for verifying a certificate. The function signature of the handler must be:
+``
+ bool verify_callback(
+ bool preverified, // True if the certificate passed pre-verification.
+ verify_context& ctx // The peer certificate and other context.
+ );
+``
+The return value of the callback is true if the certificate has passed verification, false otherwise.]]
+
+]
 
 
 [heading Exceptions]
@@ -81688,7 +85691,7 @@
 
 [heading Remarks]
       
-Calls `SSL_CTX_set_default_verify_paths`.
+Calls `SSL_set_verify`.
 
 
 
@@ -81697,17 +85700,20 @@
 
 
 
-[section:overload2 ssl::context::set_default_verify_paths (2 of 2 overloads)]
+[section:overload2 ssl::stream::set_verify_callback (2 of 2 overloads)]
 
 
-Configures the context to use the default directories for finding certification authority certificates.
+Set the callback used to verify peer certificates.
 
 
- boost::system::error_code set_default_verify_paths(
+ template<
+ typename VerifyCallback>
+ boost::system::error_code set_verify_callback(
+ VerifyCallback callback,
       boost::system::error_code & ec);
 
 
-This function specifies that the context should use the default, system-dependent directories for locating certification authority certificates.
+This function is used to specify a callback function that will be called by the implementation when it needs to verify a peer certificate.
 
 
 [heading Parameters]
@@ -81715,6 +85721,15 @@
 
 [variablelist
   
+[[callback][The function object to be used for verifying a certificate. The function signature of the handler must be:
+``
+ bool verify_callback(
+ bool preverified, // True if the certificate passed pre-verification.
+ verify_context& ctx // The peer certificate and other context.
+ );
+``
+The return value of the callback is true if the certificate has passed verification, false otherwise.]]
+
 [[ec][Set to indicate what error occurred, if any.]]
 
 ]
@@ -81722,7 +85737,7 @@
 
 [heading Remarks]
       
-Calls `SSL_CTX_set_default_verify_paths`.
+Calls `SSL_set_verify`.
 
 
 
@@ -81732,33 +85747,33 @@
 
 [endsect]
 
-[section:set_options ssl::context::set_options]
+[section:set_verify_mode ssl::stream::set_verify_mode]
 
-[indexterm2 set_options..ssl::context]
-Set options on the context.
+[indexterm2 set_verify_mode..ssl::stream]
+Set the peer verification mode.
 
 
- void ``[link boost_asio.reference.ssl__context.set_options.overload1 set_options]``(
- options o);
- `` [''''&raquo;''' [link boost_asio.reference.ssl__context.set_options.overload1 more...]]``
+ void ``[link boost_asio.reference.ssl__stream.set_verify_mode.overload1 set_verify_mode]``(
+ verify_mode v);
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__stream.set_verify_mode.overload1 more...]]``
 
- boost::system::error_code ``[link boost_asio.reference.ssl__context.set_options.overload2 set_options]``(
- options o,
+ boost::system::error_code ``[link boost_asio.reference.ssl__stream.set_verify_mode.overload2 set_verify_mode]``(
+ verify_mode v,
       boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.ssl__context.set_options.overload2 more...]]``
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__stream.set_verify_mode.overload2 more...]]``
 
 
-[section:overload1 ssl::context::set_options (1 of 2 overloads)]
+[section:overload1 ssl::stream::set_verify_mode (1 of 2 overloads)]
 
 
-Set options on the context.
+Set the peer verification mode.
 
 
- void set_options(
- options o);
+ void set_verify_mode(
+ verify_mode v);
 
 
-This function may be used to configure the SSL options used by the context.
+This function may be used to configure the peer verification mode used by the stream. The new mode will override the mode inherited from the context.
 
 
 [heading Parameters]
@@ -81766,7 +85781,7 @@
 
 [variablelist
   
-[[o][A bitmask of options. The available option values are defined in the [link boost_asio.reference.ssl__context_base `ssl::context_base`] class. The options are bitwise-ored with any existing value for the options.]]
+[[v][A bitmask of peer verification modes. See [link boost_asio.reference.ssl__verify_mode `ssl::verify_mode`] for available values.]]
 
 ]
 
@@ -81783,7 +85798,7 @@
 
 [heading Remarks]
       
-Calls `SSL_CTX_set_options`.
+Calls `SSL_set_verify`.
 
 
 
@@ -81792,18 +85807,18 @@
 
 
 
-[section:overload2 ssl::context::set_options (2 of 2 overloads)]
+[section:overload2 ssl::stream::set_verify_mode (2 of 2 overloads)]
 
 
-Set options on the context.
+Set the peer verification mode.
 
 
- boost::system::error_code set_options(
- options o,
+ boost::system::error_code set_verify_mode(
+ verify_mode v,
       boost::system::error_code & ec);
 
 
-This function may be used to configure the SSL options used by the context.
+This function may be used to configure the peer verification mode used by the stream. The new mode will override the mode inherited from the context.
 
 
 [heading Parameters]
@@ -81811,7 +85826,7 @@
 
 [variablelist
   
-[[o][A bitmask of options. The available option values are defined in the [link boost_asio.reference.ssl__context_base `ssl::context_base`] class. The options are bitwise-ored with any existing value for the options.]]
+[[v][A bitmask of peer verification modes. See [link boost_asio.reference.ssl__verify_mode `ssl::verify_mode`] for available values.]]
 
 [[ec][Set to indicate what error occurred, if any.]]
 
@@ -81820,7 +85835,7 @@
 
 [heading Remarks]
       
-Calls `SSL_CTX_set_options`.
+Calls `SSL_set_verify`.
 
 
 
@@ -81830,93 +85845,93 @@
 
 [endsect]
 
-[section:set_password_callback ssl::context::set_password_callback]
+[section:shutdown ssl::stream::shutdown]
 
-[indexterm2 set_password_callback..ssl::context]
-Set the password callback.
+[indexterm2 shutdown..ssl::stream]
+Shut down SSL on the stream.
 
 
- template<
- typename PasswordCallback>
- void ``[link boost_asio.reference.ssl__context.set_password_callback.overload1 set_password_callback]``(
- PasswordCallback callback);
- `` [''''&raquo;''' [link boost_asio.reference.ssl__context.set_password_callback.overload1 more...]]``
+ void ``[link boost_asio.reference.ssl__stream.shutdown.overload1 shutdown]``();
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__stream.shutdown.overload1 more...]]``
 
- template<
- typename PasswordCallback>
- boost::system::error_code ``[link boost_asio.reference.ssl__context.set_password_callback.overload2 set_password_callback]``(
- PasswordCallback callback,
+ boost::system::error_code ``[link boost_asio.reference.ssl__stream.shutdown.overload2 shutdown]``(
       boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.ssl__context.set_password_callback.overload2 more...]]``
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__stream.shutdown.overload2 more...]]``
 
 
-[section:overload1 ssl::context::set_password_callback (1 of 2 overloads)]
+[section:overload1 ssl::stream::shutdown (1 of 2 overloads)]
 
 
-Set the password callback.
+Shut down SSL on the stream.
 
 
- template<
- typename PasswordCallback>
- void set_password_callback(
- PasswordCallback callback);
+ void shutdown();
 
 
-This function is used to specify a callback function to obtain password information about an encrypted key in PEM format.
+This function is used to shut down SSL on the stream. The function call will block until SSL has been shut down or an error occurs.
 
 
-[heading Parameters]
+[heading Exceptions]
     
 
 [variablelist
   
-[[callback][The function object to be used for obtaining the password. The function signature of the handler must be:
-``
- std::string password_callback(
- std::size_t max_length, // The maximum size for a password.
- password_purpose purpose // Whether password is for reading or writing.
- );
-``
-The return value of the callback is a string containing the password.]]
+[[boost::system::system_error][Thrown on failure. ]]
 
 ]
 
 
-[heading Exceptions]
+
+
+[endsect]
+
+
+
+[section:overload2 ssl::stream::shutdown (2 of 2 overloads)]
+
+
+Shut down SSL on the stream.
+
+
+ boost::system::error_code shutdown(
+ boost::system::error_code & ec);
+
+
+This function is used to shut down SSL on the stream. The function call will block until SSL has been shut down or an error occurs.
+
+
+[heading Parameters]
     
 
 [variablelist
   
-[[boost::system::system_error][Thrown on failure.]]
+[[ec][Set to indicate what error occurred, if any. ]]
 
 ]
 
 
-[heading Remarks]
-
-Calls `SSL_CTX_set_default_passwd_cb`.
-
-
 
 
 [endsect]
 
 
+[endsect]
 
-[section:overload2 ssl::context::set_password_callback (2 of 2 overloads)]
 
+[section:stream ssl::stream::stream]
 
-Set the password callback.
+[indexterm2 stream..ssl::stream]
+Construct a stream.
 
 
   template<
- typename PasswordCallback>
- boost::system::error_code set_password_callback(
- PasswordCallback callback,
- boost::system::error_code & ec);
+ typename Arg>
+ stream(
+ Arg & arg,
+ context & ctx);
 
 
-This function is used to specify a callback function to obtain password information about an encrypted key in PEM format.
+This constructor creates a stream and initialises the underlying stream object.
 
 
 [heading Parameters]
@@ -81924,65 +85939,51 @@
 
 [variablelist
   
-[[callback][The function object to be used for obtaining the password. The function signature of the handler must be:
-``
- std::string password_callback(
- std::size_t max_length, // The maximum size for a password.
- password_purpose purpose // Whether password is for reading or writing.
- );
-``
-The return value of the callback is a string containing the password.]]
+[[arg][The argument to be passed to initialise the underlying stream.]]
 
-[[ec][Set to indicate what error occurred, if any.]]
+[[ctx][The SSL context to be used for the stream. ]]
 
 ]
 
 
-[heading Remarks]
-
-Calls `SSL_CTX_set_default_passwd_cb`.
-
-
 
 
 [endsect]
 
 
-[endsect]
-
-[section:set_verify_callback ssl::context::set_verify_callback]
+[section:write_some ssl::stream::write_some]
 
-[indexterm2 set_verify_callback..ssl::context]
-Set the callback used to verify peer certificates.
+[indexterm2 write_some..ssl::stream]
+Write some data to the stream.
 
 
   template<
- typename VerifyCallback>
- void ``[link boost_asio.reference.ssl__context.set_verify_callback.overload1 set_verify_callback]``(
- VerifyCallback callback);
- `` [''''&raquo;''' [link boost_asio.reference.ssl__context.set_verify_callback.overload1 more...]]``
+ typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
+ std::size_t ``[link boost_asio.reference.ssl__stream.write_some.overload1 write_some]``(
+ const ConstBufferSequence & buffers);
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__stream.write_some.overload1 more...]]``
 
   template<
- typename VerifyCallback>
- boost::system::error_code ``[link boost_asio.reference.ssl__context.set_verify_callback.overload2 set_verify_callback]``(
- VerifyCallback callback,
+ typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
+ std::size_t ``[link boost_asio.reference.ssl__stream.write_some.overload2 write_some]``(
+ const ConstBufferSequence & buffers,
       boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.ssl__context.set_verify_callback.overload2 more...]]``
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__stream.write_some.overload2 more...]]``
 
 
-[section:overload1 ssl::context::set_verify_callback (1 of 2 overloads)]
+[section:overload1 ssl::stream::write_some (1 of 2 overloads)]
 
 
-Set the callback used to verify peer certificates.
+Write some data to the stream.
 
 
   template<
- typename VerifyCallback>
- void set_verify_callback(
- VerifyCallback callback);
+ typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
+ std::size_t write_some(
+ const ConstBufferSequence & buffers);
 
 
-This function is used to specify a callback function that will be called by the implementation when it needs to verify a peer certificate.
+This function is used to write data on the stream. The function call will block until one or more bytes of data has been written successfully, or until an error occurs.
 
 
 [heading Parameters]
@@ -81990,18 +85991,16 @@
 
 [variablelist
   
-[[callback][The function object to be used for verifying a certificate. The function signature of the handler must be:
-``
- bool verify_callback(
- bool preverified, // True if the certificate passed pre-verification.
- verify_context& ctx // The peer certificate and other context.
- );
-``
-The return value of the callback is true if the certificate has passed verification, false otherwise.]]
+[[buffers][The data to be written.]]
 
 ]
 
 
+[heading Return Value]
+
+The number of bytes written.
+
+
 [heading Exceptions]
     
 
@@ -82014,7 +86013,7 @@
 
 [heading Remarks]
       
-Calls `SSL_CTX_set_verify`.
+The write\_some operation may not transmit all of the data to the peer. Consider using the [link boost_asio.reference.write `write`] function if you need to ensure that all data is written before the blocking operation completes.
 
 
 
@@ -82023,20 +86022,20 @@
 
 
 
-[section:overload2 ssl::context::set_verify_callback (2 of 2 overloads)]
+[section:overload2 ssl::stream::write_some (2 of 2 overloads)]
 
 
-Set the callback used to verify peer certificates.
+Write some data to the stream.
 
 
   template<
- typename VerifyCallback>
- boost::system::error_code set_verify_callback(
- VerifyCallback callback,
+ typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
+ std::size_t write_some(
+ const ConstBufferSequence & buffers,
       boost::system::error_code & ec);
 
 
-This function is used to specify a callback function that will be called by the implementation when it needs to verify a peer certificate.
+This function is used to write data on the stream. The function call will block until one or more bytes of data has been written successfully, or until an error occurs.
 
 
 [heading Parameters]
@@ -82044,23 +86043,21 @@
 
 [variablelist
   
-[[callback][The function object to be used for verifying a certificate. The function signature of the handler must be:
-``
- bool verify_callback(
- bool preverified, // True if the certificate passed pre-verification.
- verify_context& ctx // The peer certificate and other context.
- );
-``
-The return value of the callback is true if the certificate has passed verification, false otherwise.]]
+[[buffers][The data to be written to the stream.]]
 
 [[ec][Set to indicate what error occurred, if any.]]
 
 ]
 
 
+[heading Return Value]
+
+The number of bytes written. Returns 0 if an error occurred.
+
+
 [heading Remarks]
       
-Calls `SSL_CTX_set_verify`.
+The write\_some operation may not transmit all of the data to the peer. Consider using the [link boost_asio.reference.write `write`] function if you need to ensure that all data is written before the blocking operation completes.
 
 
 
@@ -82070,59 +86067,55 @@
 
 [endsect]
 
-[section:set_verify_mode ssl::context::set_verify_mode]
 
-[indexterm2 set_verify_mode..ssl::context]
-Set the peer verification mode.
+[section:_stream ssl::stream::~stream]
+
+[indexterm2 ~stream..ssl::stream]
+Destructor.
 
 
- void ``[link boost_asio.reference.ssl__context.set_verify_mode.overload1 set_verify_mode]``(
- verify_mode v);
- `` [''''&raquo;''' [link boost_asio.reference.ssl__context.set_verify_mode.overload1 more...]]``
+ ~stream();
 
- boost::system::error_code ``[link boost_asio.reference.ssl__context.set_verify_mode.overload2 set_verify_mode]``(
- verify_mode v,
- boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.ssl__context.set_verify_mode.overload2 more...]]``
 
 
-[section:overload1 ssl::context::set_verify_mode (1 of 2 overloads)]
+[endsect]
 
 
-Set the peer verification mode.
 
+[endsect]
 
- void set_verify_mode(
- verify_mode v);
+[section:ssl__stream__impl_struct ssl::stream::impl_struct]
 
 
-This function may be used to configure the peer verification mode used by the context.
+Structure for use with deprecated impl\_type.
 
 
-[heading Parameters]
-
+ struct impl_struct
 
-[variablelist
-
-[[v][A bitmask of peer verification modes. See [link boost_asio.reference.ssl__verify_mode `ssl::verify_mode`] for available values.]]
+
+[heading Data Members]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.ssl__stream__impl_struct.ssl [*ssl]]]
+ []
+ ]
 
 ]
 
+[heading Requirements]
 
-[heading Exceptions]
-
+[*Header: ][^boost/asio/ssl/stream.hpp]
 
-[variablelist
-
-[[boost::system::system_error][Thrown on failure.]]
+[*Convenience header: ][^boost/asio/ssl.hpp]
 
-]
 
+[section:ssl ssl::stream::impl_struct::ssl]
 
-[heading Remarks]
-
-Calls `SSL_CTX_set_verify`.
+[indexterm2 ssl..ssl::stream::impl_struct]
 
+ SSL * ssl;
 
 
 
@@ -82130,596 +86123,701 @@
 
 
 
-[section:overload2 ssl::context::set_verify_mode (2 of 2 overloads)]
+[endsect]
 
+[section:ssl__stream_base ssl::stream_base]
 
-Set the peer verification mode.
 
+The [link boost_asio.reference.ssl__stream_base `ssl::stream_base`] class is used as a base for the [link boost_asio.reference.ssl__stream `ssl::stream`] class template so that we have a common place to define various enums.
 
- boost::system::error_code set_verify_mode(
- verify_mode v,
- boost::system::error_code & ec);
 
+ class stream_base
 
-This function may be used to configure the peer verification mode used by the context.
 
+[heading Types]
+[table
+ [[Name][Description]]
 
-[heading Parameters]
-
+ [
 
-[variablelist
+ [[link boost_asio.reference.ssl__stream_base.handshake_type [*handshake_type]]]
+ [Different handshake types. ]
   
-[[v][A bitmask of peer verification modes. See [link boost_asio.reference.ssl__verify_mode `ssl::verify_mode`] for available values.]]
+ ]
 
-[[ec][Set to indicate what error occurred, if any.]]
+]
+
+[heading Protected Member Functions]
+[table
+ [[Name][Description]]
 
+ [
+ [[link boost_asio.reference.ssl__stream_base._stream_base [*~stream_base]]]
+ [Protected destructor to prevent deletion through this type. ]
+ ]
+
 ]
 
+[heading Requirements]
 
-[heading Remarks]
-
-Calls `SSL_CTX_set_verify`.
+[*Header: ][^boost/asio/ssl/stream_base.hpp]
 
+[*Convenience header: ][^boost/asio/ssl.hpp]
 
 
+[section:handshake_type ssl::stream_base::handshake_type]
 
-[endsect]
+[indexterm2 handshake_type..ssl::stream_base]
+Different handshake types.
 
 
-[endsect]
+ enum handshake_type
 
+[indexterm2 client..ssl::stream_base]
+[indexterm2 server..ssl::stream_base]
 
-[section:single_dh_use ssl::context::single_dh_use]
+[heading Values]
+[variablelist
 
-[indexterm2 single_dh_use..ssl::context]
-Always create a new key when using tmp\_dh parameters.
+ [
+ [client]
+ [Perform handshaking as a client. ]
+ ]
 
+ [
+ [server]
+ [Perform handshaking as a server. ]
+ ]
 
- static const int single_dh_use = implementation_defined;
+]
 
 
 
 [endsect]
 
 
-[section:use_certificate_chain_file ssl::context::use_certificate_chain_file]
 
-[indexterm2 use_certificate_chain_file..ssl::context]
-Use a certificate chain from a file.
+[section:_stream_base ssl::stream_base::~stream_base]
 
+[indexterm2 ~stream_base..ssl::stream_base]
+Protected destructor to prevent deletion through this type.
 
- void ``[link boost_asio.reference.ssl__context.use_certificate_chain_file.overload1 use_certificate_chain_file]``(
- const std::string & filename);
- `` [''''&raquo;''' [link boost_asio.reference.ssl__context.use_certificate_chain_file.overload1 more...]]``
 
- boost::system::error_code ``[link boost_asio.reference.ssl__context.use_certificate_chain_file.overload2 use_certificate_chain_file]``(
- const std::string & filename,
- boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.ssl__context.use_certificate_chain_file.overload2 more...]]``
+ ~stream_base();
 
 
-[section:overload1 ssl::context::use_certificate_chain_file (1 of 2 overloads)]
 
+[endsect]
 
-Use a certificate chain from a file.
 
 
- void use_certificate_chain_file(
- const std::string & filename);
+[endsect]
 
 
-This function is used to load a certificate chain into the context from a file.
+[section:ssl__verify_client_once ssl::verify_client_once]
 
+[indexterm1 ssl::verify_client_once]
+Do not request client certificate on renegotiation. Ignored unless [link boost_asio.reference.ssl__verify_peer `ssl::verify_peer`] is set.
 
-[heading Parameters]
-
 
-[variablelist
-
-[[filename][The name of the file containing the certificate. The file must use the PEM format.]]
+ const int verify_client_once = implementation_defined;
 
-]
 
+[heading Requirements]
 
-[heading Exceptions]
-
+[*Header: ][^boost/asio/ssl/verify_mode.hpp]
 
-[variablelist
-
-[[boost::system::system_error][Thrown on failure.]]
+[*Convenience header: ][^boost/asio/ssl.hpp]
 
-]
 
+[endsect]
 
-[heading Remarks]
-
-Calls `SSL_CTX_use_certificate_chain_file`.
 
+[section:ssl__verify_context ssl::verify_context]
 
 
+A simple wrapper around the X509\_STORE\_CTX type, used during verification of a peer certificate.
 
-[endsect]
 
+ class verify_context :
+ noncopyable
 
 
-[section:overload2 ssl::context::use_certificate_chain_file (2 of 2 overloads)]
+[heading Types]
+[table
+ [[Name][Description]]
 
+ [
 
-Use a certificate chain from a file.
+ [[link boost_asio.reference.ssl__verify_context.native_handle_type [*native_handle_type]]]
+ [The native handle type of the verification context. ]
+
+ ]
 
+]
 
- boost::system::error_code use_certificate_chain_file(
- const std::string & filename,
- boost::system::error_code & ec);
+[heading Member Functions]
+[table
+ [[Name][Description]]
 
+ [
+ [[link boost_asio.reference.ssl__verify_context.native_handle [*native_handle]]]
+ [Get the underlying implementation in the native type. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ssl__verify_context.verify_context [*verify_context]]]
+ [Constructor. ]
+ ]
+
+]
 
-This function is used to load a certificate chain into the context from a file.
 
+[heading Remarks]
+
+The [link boost_asio.reference.ssl__verify_context `ssl::verify_context`] does not own the underlying X509\_STORE\_CTX object.
 
-[heading Parameters]
-
 
-[variablelist
-
-[[filename][The name of the file containing the certificate. The file must use the PEM format.]]
 
-[[ec][Set to indicate what error occurred, if any.]]
+[heading Requirements]
 
-]
+[*Header: ][^boost/asio/ssl/verify_context.hpp]
 
+[*Convenience header: ][^boost/asio/ssl.hpp]
 
-[heading Remarks]
-
-Calls `SSL_CTX_use_certificate_chain_file`.
 
+[section:native_handle ssl::verify_context::native_handle]
 
+[indexterm2 native_handle..ssl::verify_context]
+Get the underlying implementation in the native type.
 
 
-[endsect]
+ native_handle_type native_handle();
+
+
+This function may be used to obtain the underlying implementation of the context. This is intended to allow access to context functionality that is not otherwise provided.
 
 
 [endsect]
 
-[section:use_certificate_file ssl::context::use_certificate_file]
 
-[indexterm2 use_certificate_file..ssl::context]
-Use a certificate from a file.
 
+[section:native_handle_type ssl::verify_context::native_handle_type]
 
- void ``[link boost_asio.reference.ssl__context.use_certificate_file.overload1 use_certificate_file]``(
- const std::string & filename,
- file_format format);
- `` [''''&raquo;''' [link boost_asio.reference.ssl__context.use_certificate_file.overload1 more...]]``
+[indexterm2 native_handle_type..ssl::verify_context]
+The native handle type of the verification context.
 
- boost::system::error_code ``[link boost_asio.reference.ssl__context.use_certificate_file.overload2 use_certificate_file]``(
- const std::string & filename,
- file_format format,
- boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.ssl__context.use_certificate_file.overload2 more...]]``
 
+ typedef X509_STORE_CTX * native_handle_type;
 
-[section:overload1 ssl::context::use_certificate_file (1 of 2 overloads)]
 
 
-Use a certificate from a file.
+[heading Requirements]
 
+[*Header: ][^boost/asio/ssl/verify_context.hpp]
 
- void use_certificate_file(
- const std::string & filename,
- file_format format);
+[*Convenience header: ][^boost/asio/ssl.hpp]
 
 
-This function is used to load a certificate into the context from a file.
+[endsect]
 
 
-[heading Parameters]
-
 
-[variablelist
-
-[[filename][The name of the file containing the certificate.]]
+[section:verify_context ssl::verify_context::verify_context]
 
-[[format][The file format (ASN.1 or PEM).]]
+[indexterm2 verify_context..ssl::verify_context]
+Constructor.
 
-]
 
+ verify_context(
+ native_handle_type handle);
 
-[heading Exceptions]
-
 
-[variablelist
-
-[[boost::system::system_error][Thrown on failure.]]
 
-]
+[endsect]
 
 
-[heading Remarks]
-
-Calls `SSL_CTX_use_certificate_file`.
 
+[endsect]
 
 
+[section:ssl__verify_fail_if_no_peer_cert ssl::verify_fail_if_no_peer_cert]
 
-[endsect]
+[indexterm1 ssl::verify_fail_if_no_peer_cert]
+Fail verification if the peer has no certificate. Ignored unless [link boost_asio.reference.ssl__verify_peer `ssl::verify_peer`] is set.
 
 
+ const int verify_fail_if_no_peer_cert = implementation_defined;
 
-[section:overload2 ssl::context::use_certificate_file (2 of 2 overloads)]
 
+[heading Requirements]
 
-Use a certificate from a file.
+[*Header: ][^boost/asio/ssl/verify_mode.hpp]
 
+[*Convenience header: ][^boost/asio/ssl.hpp]
 
- boost::system::error_code use_certificate_file(
- const std::string & filename,
- file_format format,
- boost::system::error_code & ec);
 
+[endsect]
 
-This function is used to load a certificate into the context from a file.
 
 
-[heading Parameters]
-
+[section:ssl__verify_mode ssl::verify_mode]
 
-[variablelist
-
-[[filename][The name of the file containing the certificate.]]
+[indexterm1 ssl::verify_mode]
+Bitmask type for peer verification.
 
-[[format][The file format (ASN.1 or PEM).]]
 
-[[ec][Set to indicate what error occurred, if any.]]
+ typedef int verify_mode;
 
-]
 
 
-[heading Remarks]
-
-Calls `SSL_CTX_use_certificate_file`.
+Possible values are:
 
 
+* [link boost_asio.reference.ssl__verify_none `ssl::verify_none`]
 
+* [link boost_asio.reference.ssl__verify_peer `ssl::verify_peer`]
 
-[endsect]
+* [link boost_asio.reference.ssl__verify_fail_if_no_peer_cert `ssl::verify_fail_if_no_peer_cert`]
 
+* [link boost_asio.reference.ssl__verify_client_once `ssl::verify_client_once`]
 
-[endsect]
 
-[section:use_private_key_file ssl::context::use_private_key_file]
 
-[indexterm2 use_private_key_file..ssl::context]
-Use a private key from a file.
+[heading Requirements]
 
+[*Header: ][^boost/asio/ssl/verify_mode.hpp]
 
- void ``[link boost_asio.reference.ssl__context.use_private_key_file.overload1 use_private_key_file]``(
- const std::string & filename,
- file_format format);
- `` [''''&raquo;''' [link boost_asio.reference.ssl__context.use_private_key_file.overload1 more...]]``
+[*Convenience header: ][^boost/asio/ssl.hpp]
 
- boost::system::error_code ``[link boost_asio.reference.ssl__context.use_private_key_file.overload2 use_private_key_file]``(
- const std::string & filename,
- file_format format,
- boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.ssl__context.use_private_key_file.overload2 more...]]``
+
+[endsect]
 
 
-[section:overload1 ssl::context::use_private_key_file (1 of 2 overloads)]
 
+[section:ssl__verify_none ssl::verify_none]
+
+[indexterm1 ssl::verify_none]
+No verification.
 
-Use a private key from a file.
 
+ const int verify_none = implementation_defined;
 
- void use_private_key_file(
- const std::string & filename,
- file_format format);
 
+[heading Requirements]
 
-This function is used to load a private key into the context from a file.
+[*Header: ][^boost/asio/ssl/verify_mode.hpp]
 
+[*Convenience header: ][^boost/asio/ssl.hpp]
 
-[heading Parameters]
-
 
-[variablelist
-
-[[filename][The name of the file containing the private key.]]
+[endsect]
 
-[[format][The file format (ASN.1 or PEM).]]
 
-]
 
+[section:ssl__verify_peer ssl::verify_peer]
 
-[heading Exceptions]
-
+[indexterm1 ssl::verify_peer]
+Verify the peer.
 
-[variablelist
-
-[[boost::system::system_error][Thrown on failure.]]
 
-]
+ const int verify_peer = implementation_defined;
 
 
-[heading Remarks]
-
-Calls `SSL_CTX_use_PrivateKey_file`.
+[heading Requirements]
 
+[*Header: ][^boost/asio/ssl/verify_mode.hpp]
 
+[*Convenience header: ][^boost/asio/ssl.hpp]
 
 
 [endsect]
 
 
 
-[section:overload2 ssl::context::use_private_key_file (2 of 2 overloads)]
+[section:steady_timer steady_timer]
 
+[indexterm1 steady_timer]
+Typedef for a timer based on the steady clock.
 
-Use a private key from a file.
 
+ typedef basic_waitable_timer< chrono::steady_clock > steady_timer;
 
- boost::system::error_code use_private_key_file(
- const std::string & filename,
- file_format format,
- boost::system::error_code & ec);
 
+[heading Types]
+[table
+ [[Name][Description]]
 
-This function is used to load a private key into the context from a file.
+ [
 
+ [[link boost_asio.reference.basic_waitable_timer.clock_type [*clock_type]]]
+ [The clock type. ]
+
+ ]
 
-[heading Parameters]
-
+ [
 
-[variablelist
+ [[link boost_asio.reference.basic_waitable_timer.duration [*duration]]]
+ [The duration type of the clock. ]
   
-[[filename][The name of the file containing the private key.]]
+ ]
 
-[[format][The file format (ASN.1 or PEM).]]
+ [
 
-[[ec][Set to indicate what error occurred, if any.]]
+ [[link boost_asio.reference.basic_waitable_timer.implementation_type [*implementation_type]]]
+ [The underlying implementation type of I/O object. ]
+
+ ]
 
-]
+ [
 
+ [[link boost_asio.reference.basic_waitable_timer.service_type [*service_type]]]
+ [The type of the service that will be used to provide I/O operations. ]
+
+ ]
 
-[heading Remarks]
-
-Calls `SSL_CTX_use_PrivateKey_file`.
+ [
 
+ [[link boost_asio.reference.basic_waitable_timer.time_point [*time_point]]]
+ [The time point type of the clock. ]
+
+ ]
 
+ [
 
+ [[link boost_asio.reference.basic_waitable_timer.traits_type [*traits_type]]]
+ [The wait traits type. ]
+
+ ]
 
-[endsect]
+]
 
+[heading Member Functions]
+[table
+ [[Name][Description]]
 
-[endsect]
+ [
+ [[link boost_asio.reference.basic_waitable_timer.async_wait [*async_wait]]]
+ [Start an asynchronous wait on the timer. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_waitable_timer.basic_waitable_timer [*basic_waitable_timer]]]
+ [Constructor.
 
-[section:use_rsa_private_key_file ssl::context::use_rsa_private_key_file]
+ Constructor to set a particular expiry time as an absolute time.
 
-[indexterm2 use_rsa_private_key_file..ssl::context]
-Use an RSA private key from a file.
+ Constructor to set a particular expiry time relative to now. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_waitable_timer.cancel [*cancel]]]
+ [Cancel any asynchronous operations that are waiting on the timer. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_waitable_timer.cancel_one [*cancel_one]]]
+ [Cancels one asynchronous operation that is waiting on the timer. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_waitable_timer.expires_at [*expires_at]]]
+ [Get the timer's expiry time as an absolute time.
 
+ Set the timer's expiry time as an absolute time. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_waitable_timer.expires_from_now [*expires_from_now]]]
+ [Get the timer's expiry time relative to now.
 
- void ``[link boost_asio.reference.ssl__context.use_rsa_private_key_file.overload1 use_rsa_private_key_file]``(
- const std::string & filename,
- file_format format);
- `` [''''&raquo;''' [link boost_asio.reference.ssl__context.use_rsa_private_key_file.overload1 more...]]``
+ Set the timer's expiry time relative to now. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_waitable_timer.get_io_service [*get_io_service]]]
+ [Get the io_service associated with the object. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_waitable_timer.wait [*wait]]]
+ [Perform a blocking wait on the timer. ]
+ ]
+
+]
 
- boost::system::error_code ``[link boost_asio.reference.ssl__context.use_rsa_private_key_file.overload2 use_rsa_private_key_file]``(
- const std::string & filename,
- file_format format,
- boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.ssl__context.use_rsa_private_key_file.overload2 more...]]``
+[heading Protected Member Functions]
+[table
+ [[Name][Description]]
 
+ [
+ [[link boost_asio.reference.basic_waitable_timer.get_implementation [*get_implementation]]]
+ [Get the underlying implementation of the I/O object. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_waitable_timer.get_service [*get_service]]]
+ [Get the service associated with the I/O object. ]
+ ]
+
+]
 
-[section:overload1 ssl::context::use_rsa_private_key_file (1 of 2 overloads)]
+[heading Protected Data Members]
+[table
+ [[Name][Description]]
 
+ [
+ [[link boost_asio.reference.basic_waitable_timer.implementation [*implementation]]]
+ [(Deprecated: Use get_implementation().) The underlying implementation of the I/O object. ]
+ ]
 
-Use an RSA private key from a file.
+ [
+ [[link boost_asio.reference.basic_waitable_timer.service [*service]]]
+ [(Deprecated: Use get_service().) The service associated with the I/O object. ]
+ ]
 
+]
 
- void use_rsa_private_key_file(
- const std::string & filename,
- file_format format);
+The [link boost_asio.reference.basic_waitable_timer `basic_waitable_timer`] class template provides the ability to perform a blocking or asynchronous wait for a timer to expire.
 
+A waitable timer is always in one of two states: "expired" or "not expired". If the `wait()` or `async_wait()` function is called on an expired timer, the wait operation will complete immediately.
 
-This function is used to load an RSA private key into the context from a file.
+Most applications will use the boost::asio::waitable\_timer typedef.
 
 
-[heading Parameters]
-
+[heading Remarks]
+
+This waitable timer functionality is for use with the C++11 standard library's `<chrono>` facility, or with the Boost.Chrono library.
 
-[variablelist
+
+[heading Thread Safety]
   
-[[filename][The name of the file containing the RSA private key.]]
+[*Distinct] [*objects:] Safe.
 
-[[format][The file format (ASN.1 or PEM).]]
+[*Shared] [*objects:] Unsafe.
 
-]
 
+[heading Examples]
+
+Performing a blocking wait:
 
-[heading Exceptions]
-
+ // Construct a timer without setting an expiry time.
+ boost::asio::waitable_timer timer(io_service);
 
-[variablelist
-
-[[boost::system::system_error][Thrown on failure.]]
+ // Set an expiry time relative to now.
+ timer.expires_from_now(boost::posix_time::seconds(5));
 
-]
+ // Wait for the timer to expire.
+ timer.wait();
 
 
-[heading Remarks]
-
-Calls `SSL_CTX_use_RSAPrivateKey_file`.
 
 
 
+Performing an asynchronous wait:
 
-[endsect]
+ void handler(const boost::system::error_code& error)
+ {
+ if (!error)
+ {
+ // Timer expired.
+ }
+ }
 
+ ...
 
+ // Construct a timer with an absolute expiry time.
+ boost::asio::waitable_timer timer(io_service,
+ boost::posix_time::time_from_string("2005-12-07 23:59:59.000"));
 
-[section:overload2 ssl::context::use_rsa_private_key_file (2 of 2 overloads)]
+ // Start an asynchronous wait.
+ timer.async_wait(handler);
 
 
-Use an RSA private key from a file.
 
 
- boost::system::error_code use_rsa_private_key_file(
- const std::string & filename,
- file_format format,
- boost::system::error_code & ec);
 
+[heading Changing an active waitable_timer's expiry time]
+
 
-This function is used to load an RSA private key into the context from a file.
 
+Changing the expiry time of a timer while there are pending asynchronous waits causes those wait operations to be cancelled. To ensure that the action associated with the timer is performed only once, use something like this: used:
 
-[heading Parameters]
-
 
-[variablelist
-
-[[filename][The name of the file containing the RSA private key.]]
 
-[[format][The file format (ASN.1 or PEM).]]
+ void on_some_event()
+ {
+ if (my_timer.expires_from_now(seconds(5)) > 0)
+ {
+ // We managed to cancel the timer. Start new asynchronous wait.
+ my_timer.async_wait(on_timeout);
+ }
+ else
+ {
+ // Too late, timer has already expired!
+ }
+ }
 
-[[ec][Set to indicate what error occurred, if any.]]
+ void on_timeout(const boost::system::error_code& e)
+ {
+ if (e != boost::asio::error::operation_aborted)
+ {
+ // Timer was not cancelled, take necessary action.
+ }
+ }
 
-]
 
 
-[heading Remarks]
-
-Calls `SSL_CTX_use_RSAPrivateKey_file`.
 
 
+* The `boost::asio::basic_waitable_timer::expires_from_now()` function cancels any pending asynchronous waits, and returns the number of asynchronous waits that were cancelled. If it returns 0 then you were too late and the wait handler has already been executed, or will soon be executed. If it returns 1 then the wait handler was successfully cancelled.
 
 
-[endsect]
+* If a wait handler is cancelled, the boost::system::error\_code passed to it contains the value `boost::asio::error::operation_aborted`.
 
 
-[endsect]
 
-[section:use_tmp_dh_file ssl::context::use_tmp_dh_file]
 
-[indexterm2 use_tmp_dh_file..ssl::context]
-Use the specified file to obtain the temporary Diffie-Hellman parameters.
+This typedef uses the C++11 `<chrono>` standard library facility, if available. Otherwise, it may use the Boost.Chrono library. To explicitly utilise Boost.Chrono, use the [link boost_asio.reference.basic_waitable_timer `basic_waitable_timer`] template directly:
 
+ typedef basic_waitable_timer<boost::chrono::steady_clock> timer;
 
- void ``[link boost_asio.reference.ssl__context.use_tmp_dh_file.overload1 use_tmp_dh_file]``(
- const std::string & filename);
- `` [''''&raquo;''' [link boost_asio.reference.ssl__context.use_tmp_dh_file.overload1 more...]]``
 
- boost::system::error_code ``[link boost_asio.reference.ssl__context.use_tmp_dh_file.overload2 use_tmp_dh_file]``(
- const std::string & filename,
- boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.ssl__context.use_tmp_dh_file.overload2 more...]]``
 
 
-[section:overload1 ssl::context::use_tmp_dh_file (1 of 2 overloads)]
+[heading Requirements]
 
+[*Header: ][^boost/asio/steady_timer.hpp]
 
-Use the specified file to obtain the temporary Diffie-Hellman parameters.
+[*Convenience header: ]None
 
 
- void use_tmp_dh_file(
- const std::string & filename);
+[endsect]
 
 
-This function is used to load Diffie-Hellman parameters into the context from a file.
 
+[section:strand strand]
 
-[heading Parameters]
-
+[indexterm1 strand]
+Typedef for backwards compatibility.
 
-[variablelist
-
-[[filename][The name of the file containing the Diffie-Hellman parameters. The file must use the PEM format.]]
 
-]
+ typedef boost::asio::io_service::strand strand;
 
 
-[heading Exceptions]
-
+[heading Member Functions]
+[table
+ [[Name][Description]]
 
-[variablelist
+ [
+ [[link boost_asio.reference.io_service__strand.dispatch [*dispatch]]]
+ [Request the strand to invoke the given handler. ]
+ ]
+
+ [
+ [[link boost_asio.reference.io_service__strand.get_io_service [*get_io_service]]]
+ [Get the io_service associated with the strand. ]
+ ]
+
+ [
+ [[link boost_asio.reference.io_service__strand.post [*post]]]
+ [Request the strand to invoke the given handler and return immediately. ]
+ ]
+
+ [
+ [[link boost_asio.reference.io_service__strand.strand [*strand]]]
+ [Constructor. ]
+ ]
+
+ [
+ [[link boost_asio.reference.io_service__strand.wrap [*wrap]]]
+ [Create a new handler that automatically dispatches the wrapped handler on the strand. ]
+ ]
+
+ [
+ [[link boost_asio.reference.io_service__strand._strand [*~strand]]]
+ [Destructor. ]
+ ]
   
-[[boost::system::system_error][Thrown on failure.]]
-
 ]
 
+The [link boost_asio.reference.io_service__strand `io_service::strand`] class provides the ability to post and dispatch handlers with the guarantee that none of those handlers will execute concurrently.
 
-[heading Remarks]
-
-Calls `SSL_CTX_set_tmp_dh`.
 
+[heading Order of handler invocation]
+
+Given:
 
 
+* a strand object `s`
 
-[endsect]
 
+* an object `a` meeting completion handler requirements
 
 
-[section:overload2 ssl::context::use_tmp_dh_file (2 of 2 overloads)]
+* an object `a1` which is an arbitrary copy of `a` made by the implementation
 
 
-Use the specified file to obtain the temporary Diffie-Hellman parameters.
+* an object `b` meeting completion handler requirements
 
 
- boost::system::error_code use_tmp_dh_file(
- const std::string & filename,
- boost::system::error_code & ec);
+* an object `b1` which is an arbitrary copy of `b` made by the implementation
 
+if any of the following conditions are true:
 
-This function is used to load Diffie-Hellman parameters into the context from a file.
 
+* `s.post(a)` happens-before `s.post(b)`
 
-[heading Parameters]
-
 
-[variablelist
-
-[[filename][The name of the file containing the Diffie-Hellman parameters. The file must use the PEM format.]]
+* `s.post(a)` happens-before `s.dispatch(b)`, where the latter is performed outside the strand
 
-[[ec][Set to indicate what error occurred, if any.]]
 
-]
+* `s.dispatch(a)` happens-before `s.post(b)`, where the former is performed outside the strand
 
 
-[heading Remarks]
-
-Calls `SSL_CTX_set_tmp_dh`.
+* `s.dispatch(a)` happens-before `s.dispatch(b)`, where both are performed outside the strand
 
+then `asio_handler_invoke(a1, &a1)` happens-before `asio_handler_invoke(b1, &b1)`.
 
+Note that in the following case:
 
+ async_op_1(..., s.wrap(a));
+ async_op_2(..., s.wrap(b));
 
-[endsect]
 
+the completion of the first async operation will perform `s.dispatch(a)`, and the second will perform `s.dispatch(b)`, but the order in which those are performed is unspecified. That is, you cannot state whether one happens-before the other. Therefore none of the above conditions are met and no ordering guarantee is made.
 
-[endsect]
 
+[heading Thread Safety]
+
+[*Distinct] [*objects:] Safe.
 
-[section:_context ssl::context::~context]
+[*Shared] [*objects:] Safe.
 
-[indexterm2 ~context..ssl::context]
-Destructor.
 
 
- ~context();
 
 
+[heading Requirements]
 
-[endsect]
+[*Header: ][^boost/asio/strand.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
-[section:ssl__context_base ssl::context_base]
 
+[section:stream_socket_service stream_socket_service]
 
-The [link boost_asio.reference.ssl__context_base `ssl::context_base`] class is used as a base for the basic\_context class template so that we have a common place to define various enums.
 
+Default service implementation for a stream socket.
 
- class context_base
+
+ template<
+ typename ``[link boost_asio.reference.Protocol Protocol]``>
+ class stream_socket_service :
+ public io_service::service
 
 
 [heading Types]
@@ -82728,228 +86826,230 @@
 
   [
 
- [[link boost_asio.reference.ssl__context_base.file_format [*file_format]]]
- [File format types. ]
+ [[link boost_asio.reference.stream_socket_service.endpoint_type [*endpoint_type]]]
+ [The endpoint type. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.ssl__context_base.method [*method]]]
- [Different methods supported by a context. ]
+ [[link boost_asio.reference.stream_socket_service.implementation_type [*implementation_type]]]
+ [The type of a stream socket implementation. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.ssl__context_base.options [*options]]]
- [Bitmask type for SSL options. ]
+ [[link boost_asio.reference.stream_socket_service.native_handle_type [*native_handle_type]]]
+ [The native socket type. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.ssl__context_base.password_purpose [*password_purpose]]]
- [Purpose of PEM password. ]
+ [[link boost_asio.reference.stream_socket_service.native_type [*native_type]]]
+ [(Deprecated: Use native_handle_type.) The native socket type. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.stream_socket_service.protocol_type [*protocol_type]]]
+ [The protocol type. ]
   
   ]
 
 ]
 
-[heading Protected Member Functions]
+[heading Member Functions]
 [table
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.ssl__context_base._context_base [*~context_base]]]
- [Protected destructor to prevent deletion through this type. ]
+ [[link boost_asio.reference.stream_socket_service.assign [*assign]]]
+ [Assign an existing native socket to a stream socket. ]
   ]
   
-]
-
-[heading Data Members]
-[table
- [[Name][Description]]
-
   [
- [[link boost_asio.reference.ssl__context_base.default_workarounds [*default_workarounds]]]
- [Implement various bug workarounds. ]
+ [[link boost_asio.reference.stream_socket_service.async_connect [*async_connect]]]
+ [Start an asynchronous connect. ]
   ]
-
+
   [
- [[link boost_asio.reference.ssl__context_base.no_sslv2 [*no_sslv2]]]
- [Disable SSL v2. ]
+ [[link boost_asio.reference.stream_socket_service.async_receive [*async_receive]]]
+ [Start an asynchronous receive. ]
   ]
-
+
   [
- [[link boost_asio.reference.ssl__context_base.no_sslv3 [*no_sslv3]]]
- [Disable SSL v3. ]
+ [[link boost_asio.reference.stream_socket_service.async_send [*async_send]]]
+ [Start an asynchronous send. ]
   ]
-
+
   [
- [[link boost_asio.reference.ssl__context_base.no_tlsv1 [*no_tlsv1]]]
- [Disable TLS v1. ]
+ [[link boost_asio.reference.stream_socket_service.at_mark [*at_mark]]]
+ [Determine whether the socket is at the out-of-band data mark. ]
   ]
-
+
   [
- [[link boost_asio.reference.ssl__context_base.single_dh_use [*single_dh_use]]]
- [Always create a new key when using tmp_dh parameters. ]
+ [[link boost_asio.reference.stream_socket_service.available [*available]]]
+ [Determine the number of bytes available for reading. ]
   ]
-
-]
-
-[heading Requirements]
-
-[*Header: ][^boost/asio/ssl/context_base.hpp]
-
-[*Convenience header: ][^boost/asio/ssl.hpp]
-
-
-[section:default_workarounds ssl::context_base::default_workarounds]
-
-[indexterm2 default_workarounds..ssl::context_base]
-Implement various bug workarounds.
-
-
- static const int default_workarounds = implementation_defined;
-
-
-
-[endsect]
-
-
-
-[section:file_format ssl::context_base::file_format]
-
-[indexterm2 file_format..ssl::context_base]
-File format types.
-
-
- enum file_format
-
-[indexterm2 asn1..ssl::context_base]
-[indexterm2 pem..ssl::context_base]
-
-[heading Values]
-[variablelist
-
+
+ [
+ [[link boost_asio.reference.stream_socket_service.bind [*bind]]]
+ [Bind the stream socket to the specified local endpoint. ]
+ ]
+
+ [
+ [[link boost_asio.reference.stream_socket_service.cancel [*cancel]]]
+ [Cancel all asynchronous operations associated with the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.stream_socket_service.close [*close]]]
+ [Close a stream socket implementation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.stream_socket_service.connect [*connect]]]
+ [Connect the stream socket to the specified endpoint. ]
+ ]
+
+ [
+ [[link boost_asio.reference.stream_socket_service.construct [*construct]]]
+ [Construct a new stream socket implementation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.stream_socket_service.destroy [*destroy]]]
+ [Destroy a stream socket implementation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.stream_socket_service.get_io_service [*get_io_service]]]
+ [Get the io_service object that owns the service. ]
+ ]
+
+ [
+ [[link boost_asio.reference.stream_socket_service.get_option [*get_option]]]
+ [Get a socket option. ]
+ ]
+
+ [
+ [[link boost_asio.reference.stream_socket_service.io_control [*io_control]]]
+ [Perform an IO control command on the socket. ]
+ ]
+
   [
- [asn1]
- [ASN.1 file. ]
+ [[link boost_asio.reference.stream_socket_service.is_open [*is_open]]]
+ [Determine whether the socket is open. ]
   ]
-
+
   [
- [pem]
- [PEM file. ]
+ [[link boost_asio.reference.stream_socket_service.local_endpoint [*local_endpoint]]]
+ [Get the local endpoint. ]
   ]
-
-]
-
-
-
-[endsect]
-
-
-
-[section:method ssl::context_base::method]
-
-[indexterm2 method..ssl::context_base]
-Different methods supported by a context.
-
-
- enum method
-
-[indexterm2 sslv2..ssl::context_base]
-[indexterm2 sslv2_client..ssl::context_base]
-[indexterm2 sslv2_server..ssl::context_base]
-[indexterm2 sslv3..ssl::context_base]
-[indexterm2 sslv3_client..ssl::context_base]
-[indexterm2 sslv3_server..ssl::context_base]
-[indexterm2 tlsv1..ssl::context_base]
-[indexterm2 tlsv1_client..ssl::context_base]
-[indexterm2 tlsv1_server..ssl::context_base]
-[indexterm2 sslv23..ssl::context_base]
-[indexterm2 sslv23_client..ssl::context_base]
-[indexterm2 sslv23_server..ssl::context_base]
-
-[heading Values]
-[variablelist
-
+
   [
- [sslv2]
- [Generic SSL version 2. ]
+ [[link boost_asio.reference.stream_socket_service.move_assign [*move_assign]]]
+ [Move-assign from another stream socket implementation. ]
   ]
-
+
   [
- [sslv2_client]
- [SSL version 2 client. ]
+ [[link boost_asio.reference.stream_socket_service.move_construct [*move_construct]]]
+ [Move-construct a new stream socket implementation. ]
   ]
-
+
   [
- [sslv2_server]
- [SSL version 2 server. ]
+ [[link boost_asio.reference.stream_socket_service.native [*native]]]
+ [(Deprecated: Use native_handle().) Get the native socket implementation. ]
   ]
-
+
   [
- [sslv3]
- [Generic SSL version 3. ]
+ [[link boost_asio.reference.stream_socket_service.native_handle [*native_handle]]]
+ [Get the native socket implementation. ]
   ]
-
+
   [
- [sslv3_client]
- [SSL version 3 client. ]
+ [[link boost_asio.reference.stream_socket_service.native_non_blocking [*native_non_blocking]]]
+ [Gets the non-blocking mode of the native socket implementation.
+
+ Sets the non-blocking mode of the native socket implementation. ]
   ]
+
+ [
+ [[link boost_asio.reference.stream_socket_service.non_blocking [*non_blocking]]]
+ [Gets the non-blocking mode of the socket.
 
+ Sets the non-blocking mode of the socket. ]
+ ]
+
   [
- [sslv3_server]
- [SSL version 3 server. ]
+ [[link boost_asio.reference.stream_socket_service.open [*open]]]
+ [Open a stream socket. ]
   ]
-
+
   [
- [tlsv1]
- [Generic TLS version 1. ]
+ [[link boost_asio.reference.stream_socket_service.receive [*receive]]]
+ [Receive some data from the peer. ]
   ]
-
+
   [
- [tlsv1_client]
- [TLS version 1 client. ]
+ [[link boost_asio.reference.stream_socket_service.remote_endpoint [*remote_endpoint]]]
+ [Get the remote endpoint. ]
   ]
-
+
   [
- [tlsv1_server]
- [TLS version 1 server. ]
+ [[link boost_asio.reference.stream_socket_service.send [*send]]]
+ [Send the given data to the peer. ]
   ]
-
+
   [
- [sslv23]
- [Generic SSL/TLS. ]
+ [[link boost_asio.reference.stream_socket_service.set_option [*set_option]]]
+ [Set a socket option. ]
   ]
-
+
   [
- [sslv23_client]
- [SSL/TLS client. ]
+ [[link boost_asio.reference.stream_socket_service.shutdown [*shutdown]]]
+ [Disable sends or receives on the socket. ]
+ ]
+
+ [
+ [[link boost_asio.reference.stream_socket_service.stream_socket_service [*stream_socket_service]]]
+ [Construct a new stream socket service for the specified io_service. ]
   ]
+
+]
+
+[heading Data Members]
+[table
+ [[Name][Description]]
 
   [
- [sslv23_server]
- [SSL/TLS server. ]
+ [[link boost_asio.reference.stream_socket_service.id [*id]]]
+ [The unique service identifier. ]
   ]
 
 ]
 
+[heading Requirements]
 
+[*Header: ][^boost/asio/stream_socket_service.hpp]
 
-[endsect]
-
+[*Convenience header: ][^boost/asio.hpp]
 
 
-[section:no_sslv2 ssl::context_base::no_sslv2]
+[section:assign stream_socket_service::assign]
 
-[indexterm2 no_sslv2..ssl::context_base]
-Disable SSL v2.
+[indexterm2 assign..stream_socket_service]
+Assign an existing native socket to a stream socket.
 
 
- static const int no_sslv2 = implementation_defined;
+ boost::system::error_code assign(
+ implementation_type & impl,
+ const protocol_type & protocol,
+ const native_handle_type & native_socket,
+ boost::system::error_code & ec);
 
 
 
@@ -82957,13 +87057,18 @@
 
 
 
-[section:no_sslv3 ssl::context_base::no_sslv3]
+[section:async_connect stream_socket_service::async_connect]
 
-[indexterm2 no_sslv3..ssl::context_base]
-Disable SSL v3.
+[indexterm2 async_connect..stream_socket_service]
+Start an asynchronous connect.
 
 
- static const int no_sslv3 = implementation_defined;
+ template<
+ typename ``[link boost_asio.reference.ConnectHandler ConnectHandler]``>
+ void async_connect(
+ implementation_type & impl,
+ const endpoint_type & peer_endpoint,
+ ConnectHandler handler);
 
 
 
@@ -82971,13 +87076,20 @@
 
 
 
-[section:no_tlsv1 ssl::context_base::no_tlsv1]
+[section:async_receive stream_socket_service::async_receive]
 
-[indexterm2 no_tlsv1..ssl::context_base]
-Disable TLS v1.
+[indexterm2 async_receive..stream_socket_service]
+Start an asynchronous receive.
 
 
- static const int no_tlsv1 = implementation_defined;
+ template<
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
+ typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
+ void async_receive(
+ implementation_type & impl,
+ const MutableBufferSequence & buffers,
+ socket_base::message_flags flags,
+ ReadHandler handler);
 
 
 
@@ -82985,52 +87097,52 @@
 
 
 
-[section:options ssl::context_base::options]
+[section:async_send stream_socket_service::async_send]
 
-[indexterm2 options..ssl::context_base]
-Bitmask type for SSL options.
+[indexterm2 async_send..stream_socket_service]
+Start an asynchronous send.
 
 
- typedef int options;
+ template<
+ typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
+ typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
+ void async_send(
+ implementation_type & impl,
+ const ConstBufferSequence & buffers,
+ socket_base::message_flags flags,
+ WriteHandler handler);
 
 
 
-[heading Requirements]
+[endsect]
 
-[*Header: ][^boost/asio/ssl/context_base.hpp]
 
-[*Convenience header: ][^boost/asio/ssl.hpp]
 
+[section:at_mark stream_socket_service::at_mark]
 
-[endsect]
+[indexterm2 at_mark..stream_socket_service]
+Determine whether the socket is at the out-of-band data mark.
 
 
+ bool at_mark(
+ const implementation_type & impl,
+ boost::system::error_code & ec) const;
 
-[section:password_purpose ssl::context_base::password_purpose]
 
-[indexterm2 password_purpose..ssl::context_base]
-Purpose of PEM password.
 
+[endsect]
 
- enum password_purpose
 
-[indexterm2 for_reading..ssl::context_base]
-[indexterm2 for_writing..ssl::context_base]
 
-[heading Values]
-[variablelist
+[section:available stream_socket_service::available]
 
- [
- [for_reading]
- [The password is needed for reading/decryption. ]
- ]
+[indexterm2 available..stream_socket_service]
+Determine the number of bytes available for reading.
 
- [
- [for_writing]
- [The password is needed for writing/encryption. ]
- ]
 
-]
+ std::size_t available(
+ const implementation_type & impl,
+ boost::system::error_code & ec) const;
 
 
 
@@ -83038,13 +87150,16 @@
 
 
 
-[section:single_dh_use ssl::context_base::single_dh_use]
+[section:bind stream_socket_service::bind]
 
-[indexterm2 single_dh_use..ssl::context_base]
-Always create a new key when using tmp\_dh parameters.
+[indexterm2 bind..stream_socket_service]
+Bind the stream socket to the specified local endpoint.
 
 
- static const int single_dh_use = implementation_defined;
+ boost::system::error_code bind(
+ implementation_type & impl,
+ const endpoint_type & endpoint,
+ boost::system::error_code & ec);
 
 
 
@@ -83052,13 +87167,15 @@
 
 
 
-[section:_context_base ssl::context_base::~context_base]
+[section:cancel stream_socket_service::cancel]
 
-[indexterm2 ~context_base..ssl::context_base]
-Protected destructor to prevent deletion through this type.
+[indexterm2 cancel..stream_socket_service]
+Cancel all asynchronous operations associated with the socket.
 
 
- ~context_base();
+ boost::system::error_code cancel(
+ implementation_type & impl,
+ boost::system::error_code & ec);
 
 
 
@@ -83066,95 +87183,62 @@
 
 
 
-[endsect]
-
-[section:ssl__rfc2818_verification ssl::rfc2818_verification]
-
+[section:close stream_socket_service::close]
 
-Verifies a certificate against a hostname according to the rules described in RFC 2818.
+[indexterm2 close..stream_socket_service]
+Close a stream socket implementation.
 
 
- class rfc2818_verification
+ boost::system::error_code close(
+ implementation_type & impl,
+ boost::system::error_code & ec);
 
 
-[heading Types]
-[table
- [[Name][Description]]
 
- [
+[endsect]
 
- [[link boost_asio.reference.ssl__rfc2818_verification.result_type [*result_type]]]
- [The type of the function object's result. ]
-
- ]
 
-]
 
-[heading Member Functions]
-[table
- [[Name][Description]]
+[section:connect stream_socket_service::connect]
 
- [
- [[link boost_asio.reference.ssl__rfc2818_verification.operator_lp__rp_ [*operator()]]]
- [Perform certificate verification. ]
- ]
-
- [
- [[link boost_asio.reference.ssl__rfc2818_verification.rfc2818_verification [*rfc2818_verification]]]
- [Constructor. ]
- ]
-
-]
+[indexterm2 connect..stream_socket_service]
+Connect the stream socket to the specified endpoint.
 
 
-[heading Example]
-
-The following example shows how to synchronously open a secure connection to a given host name:
+ boost::system::error_code connect(
+ implementation_type & impl,
+ const endpoint_type & peer_endpoint,
+ boost::system::error_code & ec);
 
- using boost::asio::ip::tcp;
- namespace ssl = boost::asio::ssl;
- typedef ssl::stream<tcp::socket> ssl_socket;
 
- // Create a context that uses the default paths for finding CA certificates.
- ssl::context ctx(ssl::context::sslv23);
- ctx.set_default_verify_paths();
 
- // Open a socket and connect it to the remote host.
- boost::asio::io_service io_service;
- ssl_socket sock(io_service, ctx);
- tcp::resolver resolver(io_service);
- tcp::resolver::query query("host.name", "https");
- boost::asio::connect(sock.lowest_layer(), resolver.resolve(query));
- sock.lowest_layer().set_option(tcp::no_delay(true));
+[endsect]
 
- // Perform SSL handshake and verify the remote host's certificate.
- sock.set_verify_mode(ssl::verify_peer);
- sock.set_verify_callback(ssl::rfc2818_verification("host.name"));
- sock.handshake(ssl_socket::client);
 
- // ... read and write as normal ...
 
+[section:construct stream_socket_service::construct]
 
+[indexterm2 construct..stream_socket_service]
+Construct a new stream socket implementation.
 
 
+ void construct(
+ implementation_type & impl);
 
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/ssl/rfc2818_verification.hpp]
+[endsect]
 
-[*Convenience header: ][^boost/asio/ssl.hpp]
 
 
-[section:operator_lp__rp_ ssl::rfc2818_verification::operator()]
+[section:destroy stream_socket_service::destroy]
 
-[indexterm2 operator()..ssl::rfc2818_verification]
-Perform certificate verification.
+[indexterm2 destroy..stream_socket_service]
+Destroy a stream socket implementation.
 
 
- bool operator()(
- bool preverified,
- verify_context & ctx) const;
+ void destroy(
+ implementation_type & impl);
 
 
 
@@ -83162,307 +87246,141 @@
 
 
 
-[section:result_type ssl::rfc2818_verification::result_type]
+[section:endpoint_type stream_socket_service::endpoint_type]
 
-[indexterm2 result_type..ssl::rfc2818_verification]
-The type of the function object's result.
+[indexterm2 endpoint_type..stream_socket_service]
+The endpoint type.
 
 
- typedef bool result_type;
+ typedef Protocol::endpoint endpoint_type;
 
 
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/ssl/rfc2818_verification.hpp]
+[*Header: ][^boost/asio/stream_socket_service.hpp]
 
-[*Convenience header: ][^boost/asio/ssl.hpp]
+[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
 
-[section:rfc2818_verification ssl::rfc2818_verification::rfc2818_verification]
-
-[indexterm2 rfc2818_verification..ssl::rfc2818_verification]
-Constructor.
+[section:get_io_service stream_socket_service::get_io_service]
 
 
- rfc2818_verification(
- const std::string & host);
+['Inherited from io_service.]
 
+[indexterm2 get_io_service..stream_socket_service]
+Get the [link boost_asio.reference.io_service `io_service`] object that owns the service.
 
 
-[endsect]
+ boost::asio::io_service & get_io_service();
 
 
 
 [endsect]
 
-[section:ssl__stream ssl::stream]
-
-
-Provides stream-oriented functionality using SSL.
-
-
- template<
- typename Stream>
- class stream :
- public ssl::stream_base,
- noncopyable
-
-
-[heading Types]
-[table
- [[Name][Description]]
-
- [
-
- [[link boost_asio.reference.ssl__stream__impl_struct [*impl_struct]]]
- [Structure for use with deprecated impl_type. ]
-
- ]
-
- [
-
- [[link boost_asio.reference.ssl__stream.handshake_type [*handshake_type]]]
- [Different handshake types. ]
-
- ]
-
- [
-
- [[link boost_asio.reference.ssl__stream.impl_type [*impl_type]]]
- [(Deprecated: Use native_handle_type.) The underlying implementation type. ]
-
- ]
-
- [
-
- [[link boost_asio.reference.ssl__stream.lowest_layer_type [*lowest_layer_type]]]
- [The type of the lowest layer. ]
-
- ]
-
- [
-
- [[link boost_asio.reference.ssl__stream.native_handle_type [*native_handle_type]]]
- [The native handle type of the SSL stream. ]
-
- ]
 
- [
 
- [[link boost_asio.reference.ssl__stream.next_layer_type [*next_layer_type]]]
- [The type of the next layer. ]
-
- ]
+[section:get_option stream_socket_service::get_option]
 
-]
+[indexterm2 get_option..stream_socket_service]
+Get a socket option.
 
-[heading Member Functions]
-[table
- [[Name][Description]]
 
- [
- [[link boost_asio.reference.ssl__stream.async_handshake [*async_handshake]]]
- [Start an asynchronous SSL handshake. ]
- ]
-
- [
- [[link boost_asio.reference.ssl__stream.async_read_some [*async_read_some]]]
- [Start an asynchronous read. ]
- ]
-
- [
- [[link boost_asio.reference.ssl__stream.async_shutdown [*async_shutdown]]]
- [Asynchronously shut down SSL on the stream. ]
- ]
-
- [
- [[link boost_asio.reference.ssl__stream.async_write_some [*async_write_some]]]
- [Start an asynchronous write. ]
- ]
-
- [
- [[link boost_asio.reference.ssl__stream.get_io_service [*get_io_service]]]
- [Get the io_service associated with the object. ]
- ]
-
- [
- [[link boost_asio.reference.ssl__stream.handshake [*handshake]]]
- [Perform SSL handshaking. ]
- ]
-
- [
- [[link boost_asio.reference.ssl__stream.impl [*impl]]]
- [(Deprecated: Use native_handle().) Get the underlying implementation in the native type. ]
- ]
-
- [
- [[link boost_asio.reference.ssl__stream.lowest_layer [*lowest_layer]]]
- [Get a reference to the lowest layer. ]
- ]
-
- [
- [[link boost_asio.reference.ssl__stream.native_handle [*native_handle]]]
- [Get the underlying implementation in the native type. ]
- ]
-
- [
- [[link boost_asio.reference.ssl__stream.next_layer [*next_layer]]]
- [Get a reference to the next layer. ]
- ]
-
- [
- [[link boost_asio.reference.ssl__stream.read_some [*read_some]]]
- [Read some data from the stream. ]
- ]
-
- [
- [[link boost_asio.reference.ssl__stream.set_verify_callback [*set_verify_callback]]]
- [Set the callback used to verify peer certificates. ]
- ]
-
- [
- [[link boost_asio.reference.ssl__stream.set_verify_mode [*set_verify_mode]]]
- [Set the peer verification mode. ]
- ]
-
- [
- [[link boost_asio.reference.ssl__stream.shutdown [*shutdown]]]
- [Shut down SSL on the stream. ]
- ]
-
- [
- [[link boost_asio.reference.ssl__stream.stream [*stream]]]
- [Construct a stream. ]
- ]
-
- [
- [[link boost_asio.reference.ssl__stream.write_some [*write_some]]]
- [Write some data to the stream. ]
- ]
-
- [
- [[link boost_asio.reference.ssl__stream._stream [*~stream]]]
- [Destructor. ]
- ]
-
-]
+ template<
+ typename ``[link boost_asio.reference.GettableSocketOption GettableSocketOption]``>
+ boost::system::error_code get_option(
+ const implementation_type & impl,
+ GettableSocketOption & option,
+ boost::system::error_code & ec) const;
 
-The stream class template provides asynchronous and blocking stream-oriented functionality using SSL.
 
 
-[heading Thread Safety]
-
-[*Distinct] [*objects:] Safe.
+[endsect]
 
-[*Shared] [*objects:] Unsafe. The application must also ensure that all asynchronous operations are performed within the same implicit or explicit strand.
 
 
-[heading Example]
-
-To use the SSL stream template with an `ip::tcp::socket`, you would write:
+[section:id stream_socket_service::id]
 
- boost::asio::io_service io_service;
- boost::asio::ssl::context ctx(boost::asio::ssl::context::sslv23);
- boost::asio::ssl::stream<asio:ip::tcp::socket> sock(io_service, ctx);
+[indexterm2 id..stream_socket_service]
+The unique service identifier.
 
 
+ static boost::asio::io_service::id id;
 
 
 
+[endsect]
 
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/ssl/stream.hpp]
+[section:implementation_type stream_socket_service::implementation_type]
 
-[*Convenience header: ][^boost/asio/ssl.hpp]
+[indexterm2 implementation_type..stream_socket_service]
+The type of a stream socket implementation.
 
 
-[section:async_handshake ssl::stream::async_handshake]
+ typedef implementation_defined implementation_type;
 
-[indexterm2 async_handshake..ssl::stream]
-Start an asynchronous SSL handshake.
 
 
- template<
- typename ``[link boost_asio.reference.HandshakeHandler HandshakeHandler]``>
- void async_handshake(
- handshake_type type,
- HandshakeHandler handler);
+[heading Requirements]
 
+[*Header: ][^boost/asio/stream_socket_service.hpp]
 
-This function is used to asynchronously perform an SSL handshake on the stream. This function call always returns immediately.
+[*Convenience header: ][^boost/asio.hpp]
 
 
-[heading Parameters]
-
+[endsect]
 
-[variablelist
-
-[[type][The type of handshaking to be performed, i.e. as a client or as a server.]]
 
-[[handler][The handler to be called when the handshake operation completes. Copies will be made of the handler as required. The equivalent function signature of the handler must be:
-``
- void handler(
- const boost::system::error_code& error // Result of operation.
- );
-``
-]]
 
-]
+[section:io_control stream_socket_service::io_control]
 
+[indexterm2 io_control..stream_socket_service]
+Perform an IO control command on the socket.
 
 
+ template<
+ typename ``[link boost_asio.reference.IoControlCommand IoControlCommand]``>
+ boost::system::error_code io_control(
+ implementation_type & impl,
+ IoControlCommand & command,
+ boost::system::error_code & ec);
 
-[endsect]
 
 
+[endsect]
 
-[section:async_read_some ssl::stream::async_read_some]
 
-[indexterm2 async_read_some..ssl::stream]
-Start an asynchronous read.
 
+[section:is_open stream_socket_service::is_open]
 
- template<
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
- typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void async_read_some(
- const MutableBufferSequence & buffers,
- ReadHandler handler);
+[indexterm2 is_open..stream_socket_service]
+Determine whether the socket is open.
 
 
-This function is used to asynchronously read one or more bytes of data from the stream. The function call always returns immediately.
+ bool is_open(
+ const implementation_type & impl) const;
 
 
-[heading Parameters]
-
 
-[variablelist
-
-[[buffers][The buffers into which the data will be read. Although the buffers object may be copied as necessary, ownership of the underlying buffers is retained by the caller, which must guarantee that they remain valid until the handler is called.]]
+[endsect]
 
-[[handler][The handler to be called when the read operation completes. Copies will be made of the handler as required. The equivalent function signature of the handler must be:
-``
- void handler(
- const boost::system::error_code& error, // Result of operation.
- std::size_t bytes_transferred // Number of bytes read.
- );
-``
-]]
 
-]
 
+[section:local_endpoint stream_socket_service::local_endpoint]
+
+[indexterm2 local_endpoint..stream_socket_service]
+Get the local endpoint.
 
-[heading Remarks]
-
-The async\_read\_some operation may not read all of the requested number of bytes. Consider using the [link boost_asio.reference.async_read `async_read`] function if you need to ensure that the requested amount of data is read before the asynchronous operation completes.
 
+ endpoint_type local_endpoint(
+ const implementation_type & impl,
+ boost::system::error_code & ec) const;
 
 
 
@@ -83470,963 +87388,1129 @@
 
 
 
-[section:async_shutdown ssl::stream::async_shutdown]
+[section:move_assign stream_socket_service::move_assign]
 
-[indexterm2 async_shutdown..ssl::stream]
-Asynchronously shut down SSL on the stream.
+[indexterm2 move_assign..stream_socket_service]
+Move-assign from another stream socket implementation.
 
 
- template<
- typename ``[link boost_asio.reference.ShutdownHandler ShutdownHandler]``>
- void async_shutdown(
- ShutdownHandler handler);
+ void move_assign(
+ implementation_type & impl,
+ stream_socket_service & other_service,
+ implementation_type & other_impl);
 
 
-This function is used to asynchronously shut down SSL on the stream. This function call always returns immediately.
 
+[endsect]
 
-[heading Parameters]
-
 
-[variablelist
-
-[[handler][The handler to be called when the handshake operation completes. Copies will be made of the handler as required. The equivalent function signature of the handler must be:
-``
- void handler(
- const boost::system::error_code& error // Result of operation.
- );
-``
-]]
 
-]
+[section:move_construct stream_socket_service::move_construct]
 
+[indexterm2 move_construct..stream_socket_service]
+Move-construct a new stream socket implementation.
 
 
+ void move_construct(
+ implementation_type & impl,
+ implementation_type & other_impl);
 
-[endsect]
 
 
+[endsect]
 
-[section:async_write_some ssl::stream::async_write_some]
 
-[indexterm2 async_write_some..ssl::stream]
-Start an asynchronous write.
 
+[section:native stream_socket_service::native]
 
- template<
- typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
- typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
- void async_write_some(
- const ConstBufferSequence & buffers,
- WriteHandler handler);
+[indexterm2 native..stream_socket_service]
+(Deprecated: Use `native_handle()`.) Get the native socket implementation.
 
 
-This function is used to asynchronously write one or more bytes of data to the stream. The function call always returns immediately.
+ native_type native(
+ implementation_type & impl);
 
 
-[heading Parameters]
-
 
-[variablelist
-
-[[buffers][The data to be written to the stream. Although the buffers object may be copied as necessary, ownership of the underlying buffers is retained by the caller, which must guarantee that they remain valid until the handler is called.]]
+[endsect]
 
-[[handler][The handler to be called when the write operation completes. Copies will be made of the handler as required. The equivalent function signature of the handler must be:
-``
- void handler(
- const boost::system::error_code& error, // Result of operation.
- std::size_t bytes_transferred // Number of bytes written.
- );
-``
-]]
 
-]
 
+[section:native_handle stream_socket_service::native_handle]
 
-[heading Remarks]
-
-The async\_write\_some operation may not transmit all of the data to the peer. Consider using the [link boost_asio.reference.async_write `async_write`] function if you need to ensure that all data is written before the blocking operation completes.
+[indexterm2 native_handle..stream_socket_service]
+Get the native socket implementation.
 
 
+ native_handle_type native_handle(
+ implementation_type & impl);
 
 
-[endsect]
 
+[endsect]
 
 
-[section:get_io_service ssl::stream::get_io_service]
 
-[indexterm2 get_io_service..ssl::stream]
-Get the [link boost_asio.reference.io_service `io_service`] associated with the object.
+[section:native_handle_type stream_socket_service::native_handle_type]
 
+[indexterm2 native_handle_type..stream_socket_service]
+The native socket type.
 
- boost::asio::io_service & get_io_service();
 
+ typedef implementation_defined native_handle_type;
 
-This function may be used to obtain the [link boost_asio.reference.io_service `io_service`] object that the stream uses to dispatch handlers for asynchronous operations.
 
 
-[heading Return Value]
-
-A reference to the [link boost_asio.reference.io_service `io_service`] object that stream will use to dispatch handlers. Ownership is not transferred to the caller.
+[heading Requirements]
 
+[*Header: ][^boost/asio/stream_socket_service.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
-[section:handshake ssl::stream::handshake]
+[section:native_non_blocking stream_socket_service::native_non_blocking]
 
-[indexterm2 handshake..ssl::stream]
-Perform SSL handshaking.
+[indexterm2 native_non_blocking..stream_socket_service]
+Gets the non-blocking mode of the native socket implementation.
 
 
- void ``[link boost_asio.reference.ssl__stream.handshake.overload1 handshake]``(
- handshake_type type);
- `` [''''&raquo;''' [link boost_asio.reference.ssl__stream.handshake.overload1 more...]]``
+ bool ``[link boost_asio.reference.stream_socket_service.native_non_blocking.overload1 native_non_blocking]``(
+ const implementation_type & impl) const;
+ `` [''''&raquo;''' [link boost_asio.reference.stream_socket_service.native_non_blocking.overload1 more...]]``
 
- boost::system::error_code ``[link boost_asio.reference.ssl__stream.handshake.overload2 handshake]``(
- handshake_type type,
+
+Sets the non-blocking mode of the native socket implementation.
+
+
+ boost::system::error_code ``[link boost_asio.reference.stream_socket_service.native_non_blocking.overload2 native_non_blocking]``(
+ implementation_type & impl,
+ bool mode,
       boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.ssl__stream.handshake.overload2 more...]]``
+ `` [''''&raquo;''' [link boost_asio.reference.stream_socket_service.native_non_blocking.overload2 more...]]``
 
 
-[section:overload1 ssl::stream::handshake (1 of 2 overloads)]
+[section:overload1 stream_socket_service::native_non_blocking (1 of 2 overloads)]
 
 
-Perform SSL handshaking.
+Gets the non-blocking mode of the native socket implementation.
 
 
- void handshake(
- handshake_type type);
+ bool native_non_blocking(
+ const implementation_type & impl) const;
 
 
-This function is used to perform SSL handshaking on the stream. The function call will block until handshaking is complete or an error occurs.
 
+[endsect]
 
-[heading Parameters]
-
 
-[variablelist
-
-[[type][The type of handshaking to be performed, i.e. as a client or as a server.]]
 
-]
+[section:overload2 stream_socket_service::native_non_blocking (2 of 2 overloads)]
 
 
-[heading Exceptions]
-
+Sets the non-blocking mode of the native socket implementation.
 
-[variablelist
-
-[[boost::system::system_error][Thrown on failure. ]]
 
-]
+ boost::system::error_code native_non_blocking(
+ implementation_type & impl,
+ bool mode,
+ boost::system::error_code & ec);
+
 
 
+[endsect]
 
 
 [endsect]
 
 
+[section:native_type stream_socket_service::native_type]
 
-[section:overload2 ssl::stream::handshake (2 of 2 overloads)]
+[indexterm2 native_type..stream_socket_service]
+(Deprecated: Use native\_handle\_type.) The native socket type.
 
 
-Perform SSL handshaking.
+ typedef implementation_defined native_type;
 
 
- boost::system::error_code handshake(
- handshake_type type,
- boost::system::error_code & ec);
 
+[heading Requirements]
 
-This function is used to perform SSL handshaking on the stream. The function call will block until handshaking is complete or an error occurs.
+[*Header: ][^boost/asio/stream_socket_service.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
-[heading Parameters]
-
 
-[variablelist
-
-[[type][The type of handshaking to be performed, i.e. as a client or as a server.]]
+[endsect]
 
-[[ec][Set to indicate what error occurred, if any. ]]
 
-]
+[section:non_blocking stream_socket_service::non_blocking]
 
+[indexterm2 non_blocking..stream_socket_service]
+Gets the non-blocking mode of the socket.
 
 
+ bool ``[link boost_asio.reference.stream_socket_service.non_blocking.overload1 non_blocking]``(
+ const implementation_type & impl) const;
+ `` [''''&raquo;''' [link boost_asio.reference.stream_socket_service.non_blocking.overload1 more...]]``
 
-[endsect]
 
+Sets the non-blocking mode of the socket.
 
-[endsect]
 
+ boost::system::error_code ``[link boost_asio.reference.stream_socket_service.non_blocking.overload2 non_blocking]``(
+ implementation_type & impl,
+ bool mode,
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.stream_socket_service.non_blocking.overload2 more...]]``
 
-[section:handshake_type ssl::stream::handshake_type]
 
-[indexterm2 handshake_type..ssl::stream]
-Different handshake types.
+[section:overload1 stream_socket_service::non_blocking (1 of 2 overloads)]
 
 
- enum handshake_type
+Gets the non-blocking mode of the socket.
 
-[indexterm2 client..ssl::stream]
-[indexterm2 server..ssl::stream]
 
-[heading Values]
-[variablelist
+ bool non_blocking(
+ const implementation_type & impl) const;
 
- [
- [client]
- [Perform handshaking as a client. ]
- ]
 
- [
- [server]
- [Perform handshaking as a server. ]
- ]
 
-]
+[endsect]
+
+
+
+[section:overload2 stream_socket_service::non_blocking (2 of 2 overloads)]
+
+
+Sets the non-blocking mode of the socket.
+
+
+ boost::system::error_code non_blocking(
+ implementation_type & impl,
+ bool mode,
+ boost::system::error_code & ec);
 
 
 
 [endsect]
 
 
+[endsect]
 
-[section:impl ssl::stream::impl]
 
-[indexterm2 impl..ssl::stream]
-(Deprecated: Use `native_handle()`.) Get the underlying implementation in the native type.
+[section:open stream_socket_service::open]
 
+[indexterm2 open..stream_socket_service]
+Open a stream socket.
 
- impl_type impl();
 
+ boost::system::error_code open(
+ implementation_type & impl,
+ const protocol_type & protocol,
+ boost::system::error_code & ec);
 
-This function may be used to obtain the underlying implementation of the context. This is intended to allow access to stream functionality that is not otherwise provided.
 
 
 [endsect]
 
 
 
-[section:impl_type ssl::stream::impl_type]
+[section:protocol_type stream_socket_service::protocol_type]
 
-[indexterm2 impl_type..ssl::stream]
-(Deprecated: Use native\_handle\_type.) The underlying implementation type.
+[indexterm2 protocol_type..stream_socket_service]
+The protocol type.
 
 
- typedef impl_struct * impl_type;
+ typedef Protocol protocol_type;
 
 
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/ssl/stream.hpp]
+[*Header: ][^boost/asio/stream_socket_service.hpp]
 
-[*Convenience header: ][^boost/asio/ssl.hpp]
+[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
-[section:lowest_layer ssl::stream::lowest_layer]
 
-[indexterm2 lowest_layer..ssl::stream]
-Get a reference to the lowest layer.
+[section:receive stream_socket_service::receive]
 
+[indexterm2 receive..stream_socket_service]
+Receive some data from the peer.
 
- lowest_layer_type & ``[link boost_asio.reference.ssl__stream.lowest_layer.overload1 lowest_layer]``();
- `` [''''&raquo;''' [link boost_asio.reference.ssl__stream.lowest_layer.overload1 more...]]``
 
- const lowest_layer_type & ``[link boost_asio.reference.ssl__stream.lowest_layer.overload2 lowest_layer]``() const;
- `` [''''&raquo;''' [link boost_asio.reference.ssl__stream.lowest_layer.overload2 more...]]``
+ template<
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
+ std::size_t receive(
+ implementation_type & impl,
+ const MutableBufferSequence & buffers,
+ socket_base::message_flags flags,
+ boost::system::error_code & ec);
 
 
-[section:overload1 ssl::stream::lowest_layer (1 of 2 overloads)]
 
+[endsect]
 
-Get a reference to the lowest layer.
 
 
- lowest_layer_type & lowest_layer();
+[section:remote_endpoint stream_socket_service::remote_endpoint]
+
+[indexterm2 remote_endpoint..stream_socket_service]
+Get the remote endpoint.
 
 
-This function returns a reference to the lowest layer in a stack of stream layers.
+ endpoint_type remote_endpoint(
+ const implementation_type & impl,
+ boost::system::error_code & ec) const;
 
 
-[heading Return Value]
-
-A reference to the lowest layer in the stack of stream layers. Ownership is not transferred to the caller.
 
+[endsect]
 
 
 
-[endsect]
+[section:send stream_socket_service::send]
 
+[indexterm2 send..stream_socket_service]
+Send the given data to the peer.
 
 
-[section:overload2 ssl::stream::lowest_layer (2 of 2 overloads)]
+ template<
+ typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
+ std::size_t send(
+ implementation_type & impl,
+ const ConstBufferSequence & buffers,
+ socket_base::message_flags flags,
+ boost::system::error_code & ec);
 
 
-Get a reference to the lowest layer.
 
+[endsect]
 
- const lowest_layer_type & lowest_layer() const;
 
 
-This function returns a reference to the lowest layer in a stack of stream layers.
+[section:set_option stream_socket_service::set_option]
 
+[indexterm2 set_option..stream_socket_service]
+Set a socket option.
 
-[heading Return Value]
-
-A reference to the lowest layer in the stack of stream layers. Ownership is not transferred to the caller.
 
+ template<
+ typename ``[link boost_asio.reference.SettableSocketOption SettableSocketOption]``>
+ boost::system::error_code set_option(
+ implementation_type & impl,
+ const SettableSocketOption & option,
+ boost::system::error_code & ec);
 
 
 
 [endsect]
 
 
-[endsect]
 
+[section:shutdown stream_socket_service::shutdown]
 
-[section:lowest_layer_type ssl::stream::lowest_layer_type]
+[indexterm2 shutdown..stream_socket_service]
+Disable sends or receives on the socket.
 
-[indexterm2 lowest_layer_type..ssl::stream]
-The type of the lowest layer.
 
+ boost::system::error_code shutdown(
+ implementation_type & impl,
+ socket_base::shutdown_type what,
+ boost::system::error_code & ec);
 
- typedef next_layer_type::lowest_layer_type lowest_layer_type;
 
 
+[endsect]
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/ssl/stream.hpp]
 
-[*Convenience header: ][^boost/asio/ssl.hpp]
+[section:stream_socket_service stream_socket_service::stream_socket_service]
+
+[indexterm2 stream_socket_service..stream_socket_service]
+Construct a new stream socket service for the specified [link boost_asio.reference.io_service `io_service`].
+
+
+ stream_socket_service(
+ boost::asio::io_service & io_service);
+
 
 
 [endsect]
 
 
 
-[section:native_handle ssl::stream::native_handle]
+[endsect]
 
-[indexterm2 native_handle..ssl::stream]
-Get the underlying implementation in the native type.
 
+[section:streambuf streambuf]
 
- native_handle_type native_handle();
+[indexterm1 streambuf]
+Typedef for the typical usage of [link boost_asio.reference.basic_streambuf `basic_streambuf`].
 
 
-This function may be used to obtain the underlying implementation of the context. This is intended to allow access to context functionality that is not otherwise provided.
+ typedef basic_streambuf streambuf;
 
 
-[heading Example]
+[heading Types]
+[table
+ [[Name][Description]]
+
+ [
+
+ [[link boost_asio.reference.basic_streambuf.const_buffers_type [*const_buffers_type]]]
+ [The type used to represent the input sequence as a list of buffers. ]
   
-The `native_handle()` function returns a pointer of type `SSL*` that is suitable for passing to functions such as `SSL_get_verify_result` and `SSL_get_peer_certificate:`
+ ]
 
- boost::asio::ssl::stream<asio:ip::tcp::socket> sock(io_service, ctx);
+ [
 
- // ... establish connection and perform handshake ...
+ [[link boost_asio.reference.basic_streambuf.mutable_buffers_type [*mutable_buffers_type]]]
+ [The type used to represent the output sequence as a list of buffers. ]
+
+ ]
 
- if (X509* cert = SSL_get_peer_certificate(sock.native_handle()))
- {
- if (SSL_get_verify_result(sock.native_handle()) == X509_V_OK)
- {
- // ...
- }
- }
+]
 
+[heading Member Functions]
+[table
+ [[Name][Description]]
 
+ [
+ [[link boost_asio.reference.basic_streambuf.basic_streambuf [*basic_streambuf]]]
+ [Construct a basic_streambuf object. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_streambuf.commit [*commit]]]
+ [Move characters from the output sequence to the input sequence. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_streambuf.consume [*consume]]]
+ [Remove characters from the input sequence. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_streambuf.data [*data]]]
+ [Get a list of buffers that represents the input sequence. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_streambuf.max_size [*max_size]]]
+ [Get the maximum size of the basic_streambuf. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_streambuf.prepare [*prepare]]]
+ [Get a list of buffers that represents the output sequence, with the given size. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_streambuf.size [*size]]]
+ [Get the size of the input sequence. ]
+ ]
+
+]
 
+[heading Protected Member Functions]
+[table
+ [[Name][Description]]
 
+ [
+ [[link boost_asio.reference.basic_streambuf.overflow [*overflow]]]
+ [Override std::streambuf behaviour. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_streambuf.reserve [*reserve]]]
+ []
+ ]
+
+ [
+ [[link boost_asio.reference.basic_streambuf.underflow [*underflow]]]
+ [Override std::streambuf behaviour. ]
+ ]
+
+]
 
+The `basic_streambuf` class is derived from `std::streambuf` to associate the streambuf's input and output sequences with one or more character arrays. These character arrays are internal to the `basic_streambuf` object, but direct access to the array elements is provided to permit them to be used efficiently with I/O operations. Characters written to the output sequence of a `basic_streambuf` object are appended to the input sequence of the same object.
 
+The `basic_streambuf` class's public interface is intended to permit the following implementation strategies:
 
-[endsect]
 
+* A single contiguous character array, which is reallocated as necessary to accommodate changes in the size of the character sequence. This is the implementation approach currently used in Asio.
 
 
-[section:native_handle_type ssl::stream::native_handle_type]
+* A sequence of one or more character arrays, where each array is of the same size. Additional character array objects are appended to the sequence to accommodate changes in the size of the character sequence.
 
-[indexterm2 native_handle_type..ssl::stream]
-The native handle type of the SSL stream.
 
+* A sequence of one or more character arrays of varying sizes. Additional character array objects are appended to the sequence to accommodate changes in the size of the character sequence.
 
- typedef SSL * native_handle_type;
+The constructor for [link boost_asio.reference.basic_streambuf `basic_streambuf`] accepts a `size_t` argument specifying the maximum of the sum of the sizes of the input sequence and output sequence. During the lifetime of the `basic_streambuf` object, the following invariant holds:
 
+ size() <= max_size()
 
 
-[heading Requirements]
+Any member function that would, if successful, cause the invariant to be violated shall throw an exception of class `std::length_error`.
 
-[*Header: ][^boost/asio/ssl/stream.hpp]
+The constructor for `basic_streambuf` takes an Allocator argument. A copy of this argument is used for any memory allocation performed, by the constructor and by all member functions, during the lifetime of each `basic_streambuf` object.
 
-[*Convenience header: ][^boost/asio/ssl.hpp]
 
+[heading Examples]
+
+Writing directly from an streambuf to a socket:
 
-[endsect]
+ boost::asio::streambuf b;
+ std::ostream os(&b);
+ os << "Hello, World!\n";
 
+ // try sending some data in input sequence
+ size_t n = sock.send(b.data());
 
-[section:next_layer ssl::stream::next_layer]
+ b.consume(n); // sent data is removed from input sequence
 
-[indexterm2 next_layer..ssl::stream]
-Get a reference to the next layer.
 
 
- const next_layer_type & ``[link boost_asio.reference.ssl__stream.next_layer.overload1 next_layer]``() const;
- `` [''''&raquo;''' [link boost_asio.reference.ssl__stream.next_layer.overload1 more...]]``
 
- next_layer_type & ``[link boost_asio.reference.ssl__stream.next_layer.overload2 next_layer]``();
- `` [''''&raquo;''' [link boost_asio.reference.ssl__stream.next_layer.overload2 more...]]``
+Reading from a socket directly into a streambuf:
 
+ boost::asio::streambuf b;
 
-[section:overload1 ssl::stream::next_layer (1 of 2 overloads)]
+ // reserve 512 bytes in output sequence
+ boost::asio::streambuf::mutable_buffers_type bufs = b.prepare(512);
 
+ size_t n = sock.receive(bufs);
 
-Get a reference to the next layer.
+ // received data is "committed" from output sequence to input sequence
+ b.commit(n);
 
+ std::istream is(&b);
+ std::string s;
+ is >> s;
 
- const next_layer_type & next_layer() const;
 
 
-This function returns a reference to the next layer in a stack of stream layers.
 
 
-[heading Return Value]
-
-A reference to the next layer in the stack of stream layers. Ownership is not transferred to the caller.
+[heading Requirements]
 
+[*Header: ][^boost/asio/streambuf.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
 
-[section:overload2 ssl::stream::next_layer (2 of 2 overloads)]
-
-
-Get a reference to the next layer.
-
+[section:system_timer system_timer]
 
- next_layer_type & next_layer();
+[indexterm1 system_timer]
+Typedef for a timer based on the system clock.
 
 
-This function returns a reference to the next layer in a stack of stream layers.
+ typedef basic_waitable_timer< chrono::system_clock > system_timer;
 
 
-[heading Return Value]
-
-A reference to the next layer in the stack of stream layers. Ownership is not transferred to the caller.
+[heading Types]
+[table
+ [[Name][Description]]
 
+ [
 
+ [[link boost_asio.reference.basic_waitable_timer.clock_type [*clock_type]]]
+ [The clock type. ]
+
+ ]
 
+ [
 
-[endsect]
+ [[link boost_asio.reference.basic_waitable_timer.duration [*duration]]]
+ [The duration type of the clock. ]
+
+ ]
 
+ [
 
-[endsect]
+ [[link boost_asio.reference.basic_waitable_timer.implementation_type [*implementation_type]]]
+ [The underlying implementation type of I/O object. ]
+
+ ]
 
+ [
 
-[section:next_layer_type ssl::stream::next_layer_type]
+ [[link boost_asio.reference.basic_waitable_timer.service_type [*service_type]]]
+ [The type of the service that will be used to provide I/O operations. ]
+
+ ]
 
-[indexterm2 next_layer_type..ssl::stream]
-The type of the next layer.
+ [
 
+ [[link boost_asio.reference.basic_waitable_timer.time_point [*time_point]]]
+ [The time point type of the clock. ]
+
+ ]
 
- typedef boost::remove_reference< Stream >::type next_layer_type;
+ [
 
+ [[link boost_asio.reference.basic_waitable_timer.traits_type [*traits_type]]]
+ [The wait traits type. ]
+
+ ]
 
+]
 
-[heading Requirements]
+[heading Member Functions]
+[table
+ [[Name][Description]]
 
-[*Header: ][^boost/asio/ssl/stream.hpp]
+ [
+ [[link boost_asio.reference.basic_waitable_timer.async_wait [*async_wait]]]
+ [Start an asynchronous wait on the timer. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_waitable_timer.basic_waitable_timer [*basic_waitable_timer]]]
+ [Constructor.
 
-[*Convenience header: ][^boost/asio/ssl.hpp]
+ Constructor to set a particular expiry time as an absolute time.
 
+ Constructor to set a particular expiry time relative to now. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_waitable_timer.cancel [*cancel]]]
+ [Cancel any asynchronous operations that are waiting on the timer. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_waitable_timer.cancel_one [*cancel_one]]]
+ [Cancels one asynchronous operation that is waiting on the timer. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_waitable_timer.expires_at [*expires_at]]]
+ [Get the timer's expiry time as an absolute time.
 
-[endsect]
+ Set the timer's expiry time as an absolute time. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_waitable_timer.expires_from_now [*expires_from_now]]]
+ [Get the timer's expiry time relative to now.
 
+ Set the timer's expiry time relative to now. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_waitable_timer.get_io_service [*get_io_service]]]
+ [Get the io_service associated with the object. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_waitable_timer.wait [*wait]]]
+ [Perform a blocking wait on the timer. ]
+ ]
+
+]
 
-[section:read_some ssl::stream::read_some]
+[heading Protected Member Functions]
+[table
+ [[Name][Description]]
 
-[indexterm2 read_some..ssl::stream]
-Read some data from the stream.
+ [
+ [[link boost_asio.reference.basic_waitable_timer.get_implementation [*get_implementation]]]
+ [Get the underlying implementation of the I/O object. ]
+ ]
+
+ [
+ [[link boost_asio.reference.basic_waitable_timer.get_service [*get_service]]]
+ [Get the service associated with the I/O object. ]
+ ]
+
+]
 
+[heading Protected Data Members]
+[table
+ [[Name][Description]]
 
- template<
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
- std::size_t ``[link boost_asio.reference.ssl__stream.read_some.overload1 read_some]``(
- const MutableBufferSequence & buffers);
- `` [''''&raquo;''' [link boost_asio.reference.ssl__stream.read_some.overload1 more...]]``
+ [
+ [[link boost_asio.reference.basic_waitable_timer.implementation [*implementation]]]
+ [(Deprecated: Use get_implementation().) The underlying implementation of the I/O object. ]
+ ]
 
- template<
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
- std::size_t ``[link boost_asio.reference.ssl__stream.read_some.overload2 read_some]``(
- const MutableBufferSequence & buffers,
- boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.ssl__stream.read_some.overload2 more...]]``
+ [
+ [[link boost_asio.reference.basic_waitable_timer.service [*service]]]
+ [(Deprecated: Use get_service().) The service associated with the I/O object. ]
+ ]
 
+]
 
-[section:overload1 ssl::stream::read_some (1 of 2 overloads)]
+The [link boost_asio.reference.basic_waitable_timer `basic_waitable_timer`] class template provides the ability to perform a blocking or asynchronous wait for a timer to expire.
 
+A waitable timer is always in one of two states: "expired" or "not expired". If the `wait()` or `async_wait()` function is called on an expired timer, the wait operation will complete immediately.
 
-Read some data from the stream.
+Most applications will use the boost::asio::waitable\_timer typedef.
 
 
- template<
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
- std::size_t read_some(
- const MutableBufferSequence & buffers);
+[heading Remarks]
+
+This waitable timer functionality is for use with the C++11 standard library's `<chrono>` facility, or with the Boost.Chrono library.
 
 
-This function is used to read data from the stream. The function call will block until one or more bytes of data has been read successfully, or until an error occurs.
+[heading Thread Safety]
+
+[*Distinct] [*objects:] Safe.
 
+[*Shared] [*objects:] Unsafe.
 
-[heading Parameters]
-
 
-[variablelist
+[heading Examples]
   
-[[buffers][The buffers into which the data will be read.]]
+Performing a blocking wait:
 
-]
+ // Construct a timer without setting an expiry time.
+ boost::asio::waitable_timer timer(io_service);
 
+ // Set an expiry time relative to now.
+ timer.expires_from_now(boost::posix_time::seconds(5));
 
-[heading Return Value]
-
-The number of bytes read.
+ // Wait for the timer to expire.
+ timer.wait();
 
 
-[heading Exceptions]
-
 
-[variablelist
-
-[[boost::system::system_error][Thrown on failure.]]
 
-]
 
+Performing an asynchronous wait:
 
-[heading Remarks]
-
-The read\_some operation may not read all of the requested number of bytes. Consider using the [link boost_asio.reference.read `read`] function if you need to ensure that the requested amount of data is read before the blocking operation completes.
+ void handler(const boost::system::error_code& error)
+ {
+ if (!error)
+ {
+ // Timer expired.
+ }
+ }
 
+ ...
 
+ // Construct a timer with an absolute expiry time.
+ boost::asio::waitable_timer timer(io_service,
+ boost::posix_time::time_from_string("2005-12-07 23:59:59.000"));
 
+ // Start an asynchronous wait.
+ timer.async_wait(handler);
 
-[endsect]
 
 
 
-[section:overload2 ssl::stream::read_some (2 of 2 overloads)]
 
+[heading Changing an active waitable_timer's expiry time]
+
 
-Read some data from the stream.
 
+Changing the expiry time of a timer while there are pending asynchronous waits causes those wait operations to be cancelled. To ensure that the action associated with the timer is performed only once, use something like this: used:
 
- template<
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
- std::size_t read_some(
- const MutableBufferSequence & buffers,
- boost::system::error_code & ec);
 
 
-This function is used to read data from the stream. The function call will block until one or more bytes of data has been read successfully, or until an error occurs.
+ void on_some_event()
+ {
+ if (my_timer.expires_from_now(seconds(5)) > 0)
+ {
+ // We managed to cancel the timer. Start new asynchronous wait.
+ my_timer.async_wait(on_timeout);
+ }
+ else
+ {
+ // Too late, timer has already expired!
+ }
+ }
 
+ void on_timeout(const boost::system::error_code& e)
+ {
+ if (e != boost::asio::error::operation_aborted)
+ {
+ // Timer was not cancelled, take necessary action.
+ }
+ }
 
-[heading Parameters]
-
 
-[variablelist
-
-[[buffers][The buffers into which the data will be read.]]
 
-[[ec][Set to indicate what error occurred, if any.]]
 
-]
 
+* The `boost::asio::basic_waitable_timer::expires_from_now()` function cancels any pending asynchronous waits, and returns the number of asynchronous waits that were cancelled. If it returns 0 then you were too late and the wait handler has already been executed, or will soon be executed. If it returns 1 then the wait handler was successfully cancelled.
 
-[heading Return Value]
-
-The number of bytes read. Returns 0 if an error occurred.
 
+* If a wait handler is cancelled, the boost::system::error\_code passed to it contains the value `boost::asio::error::operation_aborted`.
 
-[heading Remarks]
-
-The read\_some operation may not read all of the requested number of bytes. Consider using the [link boost_asio.reference.read `read`] function if you need to ensure that the requested amount of data is read before the blocking operation completes.
 
 
 
+This typedef uses the C++11 `<chrono>` standard library facility, if available. Otherwise, it may use the Boost.Chrono library. To explicitly utilise Boost.Chrono, use the [link boost_asio.reference.basic_waitable_timer `basic_waitable_timer`] template directly:
 
-[endsect]
+ typedef basic_waitable_timer<boost::chrono::system_clock> timer;
 
 
-[endsect]
 
-[section:set_verify_callback ssl::stream::set_verify_callback]
 
-[indexterm2 set_verify_callback..ssl::stream]
-Set the callback used to verify peer certificates.
+[heading Requirements]
 
+[*Header: ][^boost/asio/system_timer.hpp]
 
- template<
- typename VerifyCallback>
- void ``[link boost_asio.reference.ssl__stream.set_verify_callback.overload1 set_verify_callback]``(
- VerifyCallback callback);
- `` [''''&raquo;''' [link boost_asio.reference.ssl__stream.set_verify_callback.overload1 more...]]``
+[*Convenience header: ]None
 
- template<
- typename VerifyCallback>
- boost::system::error_code ``[link boost_asio.reference.ssl__stream.set_verify_callback.overload2 set_verify_callback]``(
- VerifyCallback callback,
- boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.ssl__stream.set_verify_callback.overload2 more...]]``
 
+[endsect]
 
-[section:overload1 ssl::stream::set_verify_callback (1 of 2 overloads)]
 
+[section:time_traits_lt__ptime__gt_ time_traits< boost::posix_time::ptime >]
 
-Set the callback used to verify peer certificates.
 
+Time traits specialised for posix\_time.
 
- template<
- typename VerifyCallback>
- void set_verify_callback(
- VerifyCallback callback);
 
+ template<>
+ struct time_traits< boost::posix_time::ptime >
 
-This function is used to specify a callback function that will be called by the implementation when it needs to verify a peer certificate.
 
+[heading Types]
+[table
+ [[Name][Description]]
 
-[heading Parameters]
-
+ [
 
-[variablelist
+ [[link boost_asio.reference.time_traits_lt__ptime__gt_.duration_type [*duration_type]]]
+ [The duration type. ]
   
-[[callback][The function object to be used for verifying a certificate. The function signature of the handler must be:
-``
- bool verify_callback(
- bool preverified, // True if the certificate passed pre-verification.
- verify_context& ctx // The peer certificate and other context.
- );
-``
-The return value of the callback is true if the certificate has passed verification, false otherwise.]]
-
-]
-
+ ]
 
-[heading Exceptions]
-
+ [
 
-[variablelist
+ [[link boost_asio.reference.time_traits_lt__ptime__gt_.time_type [*time_type]]]
+ [The time type. ]
   
-[[boost::system::system_error][Thrown on failure.]]
+ ]
 
 ]
 
+[heading Member Functions]
+[table
+ [[Name][Description]]
 
-[heading Remarks]
-
-Calls `SSL_set_verify`.
+ [
+ [[link boost_asio.reference.time_traits_lt__ptime__gt_.add [*add]]]
+ [Add a duration to a time. ]
+ ]
+
+ [
+ [[link boost_asio.reference.time_traits_lt__ptime__gt_.less_than [*less_than]]]
+ [Test whether one time is less than another. ]
+ ]
+
+ [
+ [[link boost_asio.reference.time_traits_lt__ptime__gt_.now [*now]]]
+ [Get the current time. ]
+ ]
+
+ [
+ [[link boost_asio.reference.time_traits_lt__ptime__gt_.subtract [*subtract]]]
+ [Subtract one time from another. ]
+ ]
+
+ [
+ [[link boost_asio.reference.time_traits_lt__ptime__gt_.to_posix_duration [*to_posix_duration]]]
+ [Convert to POSIX duration type. ]
+ ]
+
+]
 
+[heading Requirements]
 
+[*Header: ][^boost/asio/time_traits.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
-[endsect]
 
+[section:add time_traits< boost::posix_time::ptime >::add]
 
+[indexterm2 add..time_traits< boost::posix_time::ptime >]
+Add a duration to a time.
 
-[section:overload2 ssl::stream::set_verify_callback (2 of 2 overloads)]
 
+ static time_type add(
+ const time_type & t,
+ const duration_type & d);
 
-Set the callback used to verify peer certificates.
 
 
- template<
- typename VerifyCallback>
- boost::system::error_code set_verify_callback(
- VerifyCallback callback,
- boost::system::error_code & ec);
+[endsect]
 
 
-This function is used to specify a callback function that will be called by the implementation when it needs to verify a peer certificate.
 
+[section:duration_type time_traits< boost::posix_time::ptime >::duration_type]
 
-[heading Parameters]
-
+[indexterm2 duration_type..time_traits< boost::posix_time::ptime >]
+The duration type.
 
-[variablelist
-
-[[callback][The function object to be used for verifying a certificate. The function signature of the handler must be:
-``
- bool verify_callback(
- bool preverified, // True if the certificate passed pre-verification.
- verify_context& ctx // The peer certificate and other context.
- );
-``
-The return value of the callback is true if the certificate has passed verification, false otherwise.]]
 
-[[ec][Set to indicate what error occurred, if any.]]
+ typedef boost::posix_time::time_duration duration_type;
 
-]
 
 
-[heading Remarks]
-
-Calls `SSL_set_verify`.
+[heading Requirements]
 
+[*Header: ][^boost/asio/time_traits.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
-[endsect]
 
-[section:set_verify_mode ssl::stream::set_verify_mode]
+[section:less_than time_traits< boost::posix_time::ptime >::less_than]
 
-[indexterm2 set_verify_mode..ssl::stream]
-Set the peer verification mode.
+[indexterm2 less_than..time_traits< boost::posix_time::ptime >]
+Test whether one time is less than another.
 
 
- void ``[link boost_asio.reference.ssl__stream.set_verify_mode.overload1 set_verify_mode]``(
- verify_mode v);
- `` [''''&raquo;''' [link boost_asio.reference.ssl__stream.set_verify_mode.overload1 more...]]``
+ static bool less_than(
+ const time_type & t1,
+ const time_type & t2);
 
- boost::system::error_code ``[link boost_asio.reference.ssl__stream.set_verify_mode.overload2 set_verify_mode]``(
- verify_mode v,
- boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.ssl__stream.set_verify_mode.overload2 more...]]``
 
 
-[section:overload1 ssl::stream::set_verify_mode (1 of 2 overloads)]
+[endsect]
 
 
-Set the peer verification mode.
 
+[section:now time_traits< boost::posix_time::ptime >::now]
 
- void set_verify_mode(
- verify_mode v);
+[indexterm2 now..time_traits< boost::posix_time::ptime >]
+Get the current time.
 
 
-This function may be used to configure the peer verification mode used by the stream. The new mode will override the mode inherited from the context.
+ static time_type now();
 
 
-[heading Parameters]
-
 
-[variablelist
-
-[[v][A bitmask of peer verification modes. See [link boost_asio.reference.ssl__verify_mode `ssl::verify_mode`] for available values.]]
+[endsect]
 
-]
 
 
-[heading Exceptions]
-
+[section:subtract time_traits< boost::posix_time::ptime >::subtract]
 
-[variablelist
-
-[[boost::system::system_error][Thrown on failure.]]
+[indexterm2 subtract..time_traits< boost::posix_time::ptime >]
+Subtract one time from another.
 
-]
 
+ static duration_type subtract(
+ const time_type & t1,
+ const time_type & t2);
 
-[heading Remarks]
-
-Calls `SSL_set_verify`.
 
 
+[endsect]
 
 
-[endsect]
 
+[section:time_type time_traits< boost::posix_time::ptime >::time_type]
 
+[indexterm2 time_type..time_traits< boost::posix_time::ptime >]
+The time type.
 
-[section:overload2 ssl::stream::set_verify_mode (2 of 2 overloads)]
 
+ typedef boost::posix_time::ptime time_type;
 
-Set the peer verification mode.
 
 
- boost::system::error_code set_verify_mode(
- verify_mode v,
- boost::system::error_code & ec);
+[heading Requirements]
 
+[*Header: ][^boost/asio/time_traits.hpp]
 
-This function may be used to configure the peer verification mode used by the stream. The new mode will override the mode inherited from the context.
+[*Convenience header: ][^boost/asio.hpp]
 
 
-[heading Parameters]
-
+[endsect]
 
-[variablelist
-
-[[v][A bitmask of peer verification modes. See [link boost_asio.reference.ssl__verify_mode `ssl::verify_mode`] for available values.]]
 
-[[ec][Set to indicate what error occurred, if any.]]
 
-]
+[section:to_posix_duration time_traits< boost::posix_time::ptime >::to_posix_duration]
 
+[indexterm2 to_posix_duration..time_traits< boost::posix_time::ptime >]
+Convert to POSIX duration type.
 
-[heading Remarks]
-
-Calls `SSL_set_verify`.
 
+ static boost::posix_time::time_duration to_posix_duration(
+ const duration_type & d);
 
 
 
 [endsect]
 
 
+
 [endsect]
 
-[section:shutdown ssl::stream::shutdown]
 
-[indexterm2 shutdown..ssl::stream]
-Shut down SSL on the stream.
+[section:transfer_all transfer_all]
+
+[indexterm1 transfer_all]
+Return a completion condition function object that indicates that a read or write operation should continue until all of the data has been transferred, or until an error occurs.
 
 
- void ``[link boost_asio.reference.ssl__stream.shutdown.overload1 shutdown]``();
- `` [''''&raquo;''' [link boost_asio.reference.ssl__stream.shutdown.overload1 more...]]``
+ unspecified transfer_all();
 
- boost::system::error_code ``[link boost_asio.reference.ssl__stream.shutdown.overload2 shutdown]``(
- boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.ssl__stream.shutdown.overload2 more...]]``
 
+This function is used to create an object, of unspecified type, that meets CompletionCondition requirements.
 
-[section:overload1 ssl::stream::shutdown (1 of 2 overloads)]
 
+[heading Example]
+
+Reading until a buffer is full:
 
-Shut down SSL on the stream.
+ boost::array<char, 128> buf;
+ boost::system::error_code ec;
+ std::size_t n = boost::asio::read(
+ sock, boost::asio::buffer(buf),
+ boost::asio::transfer_all(), ec);
+ if (ec)
+ {
+ // An error occurred.
+ }
+ else
+ {
+ // n == 128
+ }
 
 
- void shutdown();
 
 
-This function is used to shut down SSL on the stream. The function call will block until SSL has been shut down or an error occurs.
 
 
-[heading Exceptions]
-
+[heading Requirements]
 
-[variablelist
-
-[[boost::system::system_error][Thrown on failure. ]]
+[*Header: ][^boost/asio/completion_condition.hpp]
 
-]
+[*Convenience header: ][^boost/asio.hpp]
 
 
+[endsect]
 
 
-[endsect]
 
+[section:transfer_at_least transfer_at_least]
 
+[indexterm1 transfer_at_least]
+Return a completion condition function object that indicates that a read or write operation should continue until a minimum number of bytes has been transferred, or until an error occurs.
 
-[section:overload2 ssl::stream::shutdown (2 of 2 overloads)]
 
+ unspecified transfer_at_least(
+ std::size_t minimum);
 
-Shut down SSL on the stream.
 
+This function is used to create an object, of unspecified type, that meets CompletionCondition requirements.
 
- boost::system::error_code shutdown(
- boost::system::error_code & ec);
 
+[heading Example]
+
+Reading until a buffer is full or contains at least 64 bytes:
 
-This function is used to shut down SSL on the stream. The function call will block until SSL has been shut down or an error occurs.
+ boost::array<char, 128> buf;
+ boost::system::error_code ec;
+ std::size_t n = boost::asio::read(
+ sock, boost::asio::buffer(buf),
+ boost::asio::transfer_at_least(64), ec);
+ if (ec)
+ {
+ // An error occurred.
+ }
+ else
+ {
+ // n >= 64 && n <= 128
+ }
 
 
-[heading Parameters]
-
 
-[variablelist
-
-[[ec][Set to indicate what error occurred, if any. ]]
 
-]
 
 
+[heading Requirements]
 
+[*Header: ][^boost/asio/completion_condition.hpp]
 
-[endsect]
+[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
-[section:stream ssl::stream::stream]
 
-[indexterm2 stream..ssl::stream]
-Construct a stream.
+[section:transfer_exactly transfer_exactly]
 
+[indexterm1 transfer_exactly]
+Return a completion condition function object that indicates that a read or write operation should continue until an exact number of bytes has been transferred, or until an error occurs.
 
- template<
- typename Arg>
- stream(
- Arg & arg,
- context & ctx);
 
+ unspecified transfer_exactly(
+ std::size_t size);
 
-This constructor creates a stream and initialises the underlying stream object.
 
+This function is used to create an object, of unspecified type, that meets CompletionCondition requirements.
 
-[heading Parameters]
-
 
-[variablelist
+[heading Example]
   
-[[arg][The argument to be passed to initialise the underlying stream.]]
-
-[[ctx][The SSL context to be used for the stream. ]]
-
-]
+Reading until a buffer is full or contains exactly 64 bytes:
 
+ boost::array<char, 128> buf;
+ boost::system::error_code ec;
+ std::size_t n = boost::asio::read(
+ sock, boost::asio::buffer(buf),
+ boost::asio::transfer_exactly(64), ec);
+ if (ec)
+ {
+ // An error occurred.
+ }
+ else
+ {
+ // n == 64
+ }
 
 
 
-[endsect]
 
 
-[section:write_some ssl::stream::write_some]
 
-[indexterm2 write_some..ssl::stream]
-Write some data to the stream.
+[heading Requirements]
 
+[*Header: ][^boost/asio/completion_condition.hpp]
 
- template<
- typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
- std::size_t ``[link boost_asio.reference.ssl__stream.write_some.overload1 write_some]``(
- const ConstBufferSequence & buffers);
- `` [''''&raquo;''' [link boost_asio.reference.ssl__stream.write_some.overload1 more...]]``
+[*Convenience header: ][^boost/asio.hpp]
 
- template<
- typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
- std::size_t ``[link boost_asio.reference.ssl__stream.write_some.overload2 write_some]``(
- const ConstBufferSequence & buffers,
- boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.ssl__stream.write_some.overload2 more...]]``
 
+[endsect]
 
-[section:overload1 ssl::stream::write_some (1 of 2 overloads)]
 
 
-Write some data to the stream.
+[section:use_service use_service]
 
+[indexterm1 use_service]
 
   template<
- typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
- std::size_t write_some(
- const ConstBufferSequence & buffers);
+ typename ``[link boost_asio.reference.Service Service]``>
+ Service & use_service(
+ io_service & ios);
 
 
-This function is used to write data on the stream. The function call will block until one or more bytes of data has been written successfully, or until an error occurs.
+This function is used to locate a service object that corresponds to the given service type. If there is no existing implementation of the service, then the [link boost_asio.reference.io_service `io_service`] will create a new instance of the service.
 
 
 [heading Parameters]
@@ -84434,90 +88518,71 @@
 
 [variablelist
   
-[[buffers][The data to be written.]]
+[[ios][The [link boost_asio.reference.io_service `io_service`] object that owns the service.]]
 
 ]
 
 
 [heading Return Value]
       
-The number of bytes written.
-
-
-[heading Exceptions]
-
-
-[variablelist
-
-[[boost::system::system_error][Thrown on failure.]]
+The service interface implementing the specified service type. Ownership of the service interface is not transferred to the caller.
 
-]
 
 
-[heading Remarks]
-
-The write\_some operation may not transmit all of the data to the peer. Consider using the [link boost_asio.reference.write `write`] function if you need to ensure that all data is written before the blocking operation completes.
+[heading Requirements]
 
+[*Header: ][^boost/asio/io_service.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
-
-[section:overload2 ssl::stream::write_some (2 of 2 overloads)]
+[section:wait_traits wait_traits]
 
 
-Write some data to the stream.
+Wait traits suitable for use with the [link boost_asio.reference.basic_waitable_timer `basic_waitable_timer`] class template.
 
 
   template<
- typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
- std::size_t write_some(
- const ConstBufferSequence & buffers,
- boost::system::error_code & ec);
-
-
-This function is used to write data on the stream. The function call will block until one or more bytes of data has been written successfully, or until an error occurs.
+ typename Clock>
+ struct wait_traits
 
 
-[heading Parameters]
-
+[heading Member Functions]
+[table
+ [[Name][Description]]
 
-[variablelist
+ [
+ [[link boost_asio.reference.wait_traits.to_wait_duration [*to_wait_duration]]]
+ [Convert a clock duration into a duration used for waiting. ]
+ ]
   
-[[buffers][The data to be written to the stream.]]
-
-[[ec][Set to indicate what error occurred, if any.]]
-
 ]
 
+[heading Requirements]
 
-[heading Return Value]
-
-The number of bytes written. Returns 0 if an error occurred.
-
-
-[heading Remarks]
-
-The write\_some operation may not transmit all of the data to the peer. Consider using the [link boost_asio.reference.write `write`] function if you need to ensure that all data is written before the blocking operation completes.
-
+[*Header: ][^boost/asio/wait_traits.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
 
-[endsect]
+[section:to_wait_duration wait_traits::to_wait_duration]
 
+[indexterm2 to_wait_duration..wait_traits]
+Convert a clock duration into a duration used for waiting.
 
-[endsect]
 
+ static Clock::duration to_wait_duration(
+ const typename Clock::duration & d);
 
-[section:_stream ssl::stream::~stream]
 
-[indexterm2 ~stream..ssl::stream]
-Destructor.
 
+[heading Return Value]
+
+`d`.
 
- ~stream();
 
 
 
@@ -84527,479 +88592,501 @@
 
 [endsect]
 
-[section:ssl__stream__impl_struct ssl::stream::impl_struct]
+[section:waitable_timer_service waitable_timer_service]
 
 
-Structure for use with deprecated impl\_type.
+Default service implementation for a timer.
 
 
- struct impl_struct
+ template<
+ typename Clock,
+ typename ``[link boost_asio.reference.WaitTraits WaitTraits]`` = boost::asio::wait_traits<Clock>>
+ class waitable_timer_service :
+ public io_service::service
 
 
-[heading Data Members]
+[heading Types]
 [table
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.ssl__stream__impl_struct.ssl [*ssl]]]
- []
- ]
-
-]
-
-[heading Requirements]
-
-[*Header: ][^boost/asio/ssl/stream.hpp]
-
-[*Convenience header: ][^boost/asio/ssl.hpp]
 
+ [[link boost_asio.reference.waitable_timer_service.clock_type [*clock_type]]]
+ [The clock type. ]
+
+ ]
 
-[section:ssl ssl::stream::impl_struct::ssl]
-
-[indexterm2 ssl..ssl::stream::impl_struct]
-
- SSL * ssl;
-
-
-
-[endsect]
-
+ [
 
+ [[link boost_asio.reference.waitable_timer_service.duration [*duration]]]
+ [The duration type of the clock. ]
+
+ ]
 
-[endsect]
+ [
 
-[section:ssl__stream_base ssl::stream_base]
+ [[link boost_asio.reference.waitable_timer_service.implementation_type [*implementation_type]]]
+ [The implementation type of the waitable timer. ]
+
+ ]
 
+ [
 
-The [link boost_asio.reference.ssl__stream_base `ssl::stream_base`] class is used as a base for the [link boost_asio.reference.ssl__stream `ssl::stream`] class template so that we have a common place to define various enums.
+ [[link boost_asio.reference.waitable_timer_service.time_point [*time_point]]]
+ [The time point type of the clock. ]
+
+ ]
 
+ [
 
- class stream_base
+ [[link boost_asio.reference.waitable_timer_service.traits_type [*traits_type]]]
+ [The wait traits type. ]
+
+ ]
 
+]
 
-[heading Types]
+[heading Member Functions]
 [table
   [[Name][Description]]
 
   [
-
- [[link boost_asio.reference.ssl__stream_base.handshake_type [*handshake_type]]]
- [Different handshake types. ]
+ [[link boost_asio.reference.waitable_timer_service.async_wait [*async_wait]]]
+ []
+ ]
+
+ [
+ [[link boost_asio.reference.waitable_timer_service.cancel [*cancel]]]
+ [Cancel any asynchronous wait operations associated with the timer. ]
+ ]
+
+ [
+ [[link boost_asio.reference.waitable_timer_service.cancel_one [*cancel_one]]]
+ [Cancels one asynchronous wait operation associated with the timer. ]
+ ]
+
+ [
+ [[link boost_asio.reference.waitable_timer_service.construct [*construct]]]
+ [Construct a new timer implementation. ]
+ ]
   
+ [
+ [[link boost_asio.reference.waitable_timer_service.destroy [*destroy]]]
+ [Destroy a timer implementation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.waitable_timer_service.expires_at [*expires_at]]]
+ [Get the expiry time for the timer as an absolute time.
+
+ Set the expiry time for the timer as an absolute time. ]
   ]
+
+ [
+ [[link boost_asio.reference.waitable_timer_service.expires_from_now [*expires_from_now]]]
+ [Get the expiry time for the timer relative to now.
 
+ Set the expiry time for the timer relative to now. ]
+ ]
+
+ [
+ [[link boost_asio.reference.waitable_timer_service.get_io_service [*get_io_service]]]
+ [Get the io_service object that owns the service. ]
+ ]
+
+ [
+ [[link boost_asio.reference.waitable_timer_service.wait [*wait]]]
+ []
+ ]
+
+ [
+ [[link boost_asio.reference.waitable_timer_service.waitable_timer_service [*waitable_timer_service]]]
+ [Construct a new timer service for the specified io_service. ]
+ ]
+
 ]
 
-[heading Protected Member Functions]
+[heading Data Members]
 [table
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.ssl__stream_base._stream_base [*~stream_base]]]
- [Protected destructor to prevent deletion through this type. ]
+ [[link boost_asio.reference.waitable_timer_service.id [*id]]]
+ [The unique service identifier. ]
   ]
-
+
 ]
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/ssl/stream_base.hpp]
+[*Header: ][^boost/asio/waitable_timer_service.hpp]
 
-[*Convenience header: ][^boost/asio/ssl.hpp]
+[*Convenience header: ][^boost/asio.hpp]
 
 
-[section:handshake_type ssl::stream_base::handshake_type]
+[section:async_wait waitable_timer_service::async_wait]
 
-[indexterm2 handshake_type..ssl::stream_base]
-Different handshake types.
+[indexterm2 async_wait..waitable_timer_service]
 
+ template<
+ typename ``[link boost_asio.reference.WaitHandler WaitHandler]``>
+ void async_wait(
+ implementation_type & impl,
+ WaitHandler handler);
 
- enum handshake_type
 
-[indexterm2 client..ssl::stream_base]
-[indexterm2 server..ssl::stream_base]
 
-[heading Values]
-[variablelist
+[endsect]
 
- [
- [client]
- [Perform handshaking as a client. ]
- ]
 
- [
- [server]
- [Perform handshaking as a server. ]
- ]
 
-]
+[section:cancel waitable_timer_service::cancel]
 
+[indexterm2 cancel..waitable_timer_service]
+Cancel any asynchronous wait operations associated with the timer.
 
 
-[endsect]
+ std::size_t cancel(
+ implementation_type & impl,
+ boost::system::error_code & ec);
 
 
 
-[section:_stream_base ssl::stream_base::~stream_base]
+[endsect]
 
-[indexterm2 ~stream_base..ssl::stream_base]
-Protected destructor to prevent deletion through this type.
 
 
- ~stream_base();
+[section:cancel_one waitable_timer_service::cancel_one]
 
+[indexterm2 cancel_one..waitable_timer_service]
+Cancels one asynchronous wait operation associated with the timer.
 
 
-[endsect]
+ std::size_t cancel_one(
+ implementation_type & impl,
+ boost::system::error_code & ec);
 
 
 
 [endsect]
 
 
-[section:ssl__verify_client_once ssl::verify_client_once]
 
-[indexterm1 ssl::verify_client_once]
-Do not request client certificate on renegotiation. Ignored unless [link boost_asio.reference.ssl__verify_peer `ssl::verify_peer`] is set.
+[section:clock_type waitable_timer_service::clock_type]
 
+[indexterm2 clock_type..waitable_timer_service]
+The clock type.
+
+
+ typedef Clock clock_type;
 
- const int verify_client_once = implementation_defined;
 
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/ssl/verify_mode.hpp]
+[*Header: ][^boost/asio/waitable_timer_service.hpp]
 
-[*Convenience header: ][^boost/asio/ssl.hpp]
+[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
-[section:ssl__verify_context ssl::verify_context]
 
+[section:construct waitable_timer_service::construct]
 
-A simple wrapper around the X509\_STORE\_CTX type, used during verification of a peer certificate.
+[indexterm2 construct..waitable_timer_service]
+Construct a new timer implementation.
 
 
- class verify_context :
- noncopyable
+ void construct(
+ implementation_type & impl);
 
 
-[heading Types]
-[table
- [[Name][Description]]
 
- [
+[endsect]
 
- [[link boost_asio.reference.ssl__verify_context.native_handle_type [*native_handle_type]]]
- [The native handle type of the verification context. ]
-
- ]
 
-]
 
-[heading Member Functions]
-[table
- [[Name][Description]]
+[section:destroy waitable_timer_service::destroy]
 
- [
- [[link boost_asio.reference.ssl__verify_context.native_handle [*native_handle]]]
- [Get the underlying implementation in the native type. ]
- ]
-
- [
- [[link boost_asio.reference.ssl__verify_context.verify_context [*verify_context]]]
- [Constructor. ]
- ]
-
-]
+[indexterm2 destroy..waitable_timer_service]
+Destroy a timer implementation.
 
 
-[heading Remarks]
-
-The [link boost_asio.reference.ssl__verify_context `ssl::verify_context`] does not own the underlying X509\_STORE\_CTX object.
+ void destroy(
+ implementation_type & impl);
 
 
 
-[heading Requirements]
+[endsect]
 
-[*Header: ][^boost/asio/ssl/verify_context.hpp]
 
-[*Convenience header: ][^boost/asio/ssl.hpp]
 
+[section:duration waitable_timer_service::duration]
 
-[section:native_handle ssl::verify_context::native_handle]
+[indexterm2 duration..waitable_timer_service]
+The duration type of the clock.
 
-[indexterm2 native_handle..ssl::verify_context]
-Get the underlying implementation in the native type.
 
+ typedef clock_type::duration duration;
 
- native_handle_type native_handle();
 
 
-This function may be used to obtain the underlying implementation of the context. This is intended to allow access to context functionality that is not otherwise provided.
+[heading Requirements]
+
+[*Header: ][^boost/asio/waitable_timer_service.hpp]
+
+[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
+[section:expires_at waitable_timer_service::expires_at]
 
-[section:native_handle_type ssl::verify_context::native_handle_type]
+[indexterm2 expires_at..waitable_timer_service]
+Get the expiry time for the timer as an absolute time.
 
-[indexterm2 native_handle_type..ssl::verify_context]
-The native handle type of the verification context.
 
+ time_point ``[link boost_asio.reference.waitable_timer_service.expires_at.overload1 expires_at]``(
+ const implementation_type & impl) const;
+ `` [''''&raquo;''' [link boost_asio.reference.waitable_timer_service.expires_at.overload1 more...]]``
 
- typedef X509_STORE_CTX * native_handle_type;
 
+Set the expiry time for the timer as an absolute time.
 
 
-[heading Requirements]
+ std::size_t ``[link boost_asio.reference.waitable_timer_service.expires_at.overload2 expires_at]``(
+ implementation_type & impl,
+ const time_point & expiry_time,
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.waitable_timer_service.expires_at.overload2 more...]]``
 
-[*Header: ][^boost/asio/ssl/verify_context.hpp]
 
-[*Convenience header: ][^boost/asio/ssl.hpp]
+[section:overload1 waitable_timer_service::expires_at (1 of 2 overloads)]
 
 
-[endsect]
+Get the expiry time for the timer as an absolute time.
 
 
+ time_point expires_at(
+ const implementation_type & impl) const;
 
-[section:verify_context ssl::verify_context::verify_context]
 
-[indexterm2 verify_context..ssl::verify_context]
-Constructor.
 
+[endsect]
 
- verify_context(
- native_handle_type handle);
 
 
+[section:overload2 waitable_timer_service::expires_at (2 of 2 overloads)]
 
-[endsect]
 
+Set the expiry time for the timer as an absolute time.
 
 
-[endsect]
+ std::size_t expires_at(
+ implementation_type & impl,
+ const time_point & expiry_time,
+ boost::system::error_code & ec);
 
 
-[section:ssl__verify_fail_if_no_peer_cert ssl::verify_fail_if_no_peer_cert]
 
-[indexterm1 ssl::verify_fail_if_no_peer_cert]
-Fail verification if the peer has no certificate. Ignored unless [link boost_asio.reference.ssl__verify_peer `ssl::verify_peer`] is set.
+[endsect]
 
 
- const int verify_fail_if_no_peer_cert = implementation_defined;
+[endsect]
 
+[section:expires_from_now waitable_timer_service::expires_from_now]
 
-[heading Requirements]
+[indexterm2 expires_from_now..waitable_timer_service]
+Get the expiry time for the timer relative to now.
 
-[*Header: ][^boost/asio/ssl/verify_mode.hpp]
 
-[*Convenience header: ][^boost/asio/ssl.hpp]
+ duration ``[link boost_asio.reference.waitable_timer_service.expires_from_now.overload1 expires_from_now]``(
+ const implementation_type & impl) const;
+ `` [''''&raquo;''' [link boost_asio.reference.waitable_timer_service.expires_from_now.overload1 more...]]``
 
 
-[endsect]
+Set the expiry time for the timer relative to now.
 
 
+ std::size_t ``[link boost_asio.reference.waitable_timer_service.expires_from_now.overload2 expires_from_now]``(
+ implementation_type & impl,
+ const duration & expiry_time,
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.waitable_timer_service.expires_from_now.overload2 more...]]``
 
-[section:ssl__verify_mode ssl::verify_mode]
 
-[indexterm1 ssl::verify_mode]
-Bitmask type for peer verification.
+[section:overload1 waitable_timer_service::expires_from_now (1 of 2 overloads)]
 
 
- typedef int verify_mode;
+Get the expiry time for the timer relative to now.
 
 
+ duration expires_from_now(
+ const implementation_type & impl) const;
 
-Possible values are:
 
 
-* [link boost_asio.reference.ssl__verify_none `ssl::verify_none`]
+[endsect]
 
-* [link boost_asio.reference.ssl__verify_peer `ssl::verify_peer`]
 
-* [link boost_asio.reference.ssl__verify_fail_if_no_peer_cert `ssl::verify_fail_if_no_peer_cert`]
 
-* [link boost_asio.reference.ssl__verify_client_once `ssl::verify_client_once`]
+[section:overload2 waitable_timer_service::expires_from_now (2 of 2 overloads)]
 
 
+Set the expiry time for the timer relative to now.
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/ssl/verify_mode.hpp]
+ std::size_t expires_from_now(
+ implementation_type & impl,
+ const duration & expiry_time,
+ boost::system::error_code & ec);
 
-[*Convenience header: ][^boost/asio/ssl.hpp]
 
 
 [endsect]
 
 
+[endsect]
 
-[section:ssl__verify_none ssl::verify_none]
 
-[indexterm1 ssl::verify_none]
-No verification.
+[section:get_io_service waitable_timer_service::get_io_service]
 
 
- const int verify_none = implementation_defined;
+['Inherited from io_service.]
 
+[indexterm2 get_io_service..waitable_timer_service]
+Get the [link boost_asio.reference.io_service `io_service`] object that owns the service.
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/ssl/verify_mode.hpp]
+ boost::asio::io_service & get_io_service();
 
-[*Convenience header: ][^boost/asio/ssl.hpp]
 
 
 [endsect]
 
 
 
-[section:ssl__verify_peer ssl::verify_peer]
-
-[indexterm1 ssl::verify_peer]
-Verify the peer.
-
-
- const int verify_peer = implementation_defined;
+[section:id waitable_timer_service::id]
 
+[indexterm2 id..waitable_timer_service]
+The unique service identifier.
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/ssl/verify_mode.hpp]
+ static boost::asio::io_service::id id;
 
-[*Convenience header: ][^boost/asio/ssl.hpp]
 
 
 [endsect]
 
 
 
-[section:strand strand]
+[section:implementation_type waitable_timer_service::implementation_type]
 
-[indexterm1 strand]
-Typedef for backwards compatibility.
+[indexterm2 implementation_type..waitable_timer_service]
+The implementation type of the waitable timer.
 
 
- typedef boost::asio::io_service::strand strand;
+ typedef implementation_defined implementation_type;
 
 
-[heading Member Functions]
-[table
- [[Name][Description]]
 
- [
- [[link boost_asio.reference.io_service__strand.dispatch [*dispatch]]]
- [Request the strand to invoke the given handler. ]
- ]
-
- [
- [[link boost_asio.reference.io_service__strand.get_io_service [*get_io_service]]]
- [Get the io_service associated with the strand. ]
- ]
-
- [
- [[link boost_asio.reference.io_service__strand.post [*post]]]
- [Request the strand to invoke the given handler and return immediately. ]
- ]
-
- [
- [[link boost_asio.reference.io_service__strand.strand [*strand]]]
- [Constructor. ]
- ]
-
- [
- [[link boost_asio.reference.io_service__strand.wrap [*wrap]]]
- [Create a new handler that automatically dispatches the wrapped handler on the strand. ]
- ]
-
- [
- [[link boost_asio.reference.io_service__strand._strand [*~strand]]]
- [Destructor. ]
- ]
-
-]
+[heading Requirements]
 
-The [link boost_asio.reference.io_service__strand `io_service::strand`] class provides the ability to post and dispatch handlers with the guarantee that none of those handlers will execute concurrently.
+[*Header: ][^boost/asio/waitable_timer_service.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
-[heading Order of handler invocation]
-
-Given:
 
+[endsect]
 
-* a strand object `s`
 
 
-* an object `a` meeting completion handler requirements
+[section:time_point waitable_timer_service::time_point]
 
+[indexterm2 time_point..waitable_timer_service]
+The time point type of the clock.
 
-* an object `a1` which is an arbitrary copy of `a` made by the implementation
 
+ typedef clock_type::time_point time_point;
 
-* an object `b` meeting completion handler requirements
 
 
-* an object `b1` which is an arbitrary copy of `b` made by the implementation
+[heading Requirements]
 
-if any of the following conditions are true:
+[*Header: ][^boost/asio/waitable_timer_service.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
-* `s.post(a)` happens-before `s.post(b)`
 
+[endsect]
 
-* `s.post(a)` happens-before `s.dispatch(b)`, where the latter is performed outside the strand
 
 
-* `s.dispatch(a)` happens-before `s.post(b)`, where the former is performed outside the strand
+[section:traits_type waitable_timer_service::traits_type]
 
+[indexterm2 traits_type..waitable_timer_service]
+The wait traits type.
 
-* `s.dispatch(a)` happens-before `s.dispatch(b)`, where both are performed outside the strand
 
-then `asio_handler_invoke(a1, &a1)` happens-before `asio_handler_invoke(b1, &b1)`.
+ typedef WaitTraits traits_type;
 
-Note that in the following case:
 
- async_op_1(..., s.wrap(a));
- async_op_2(..., s.wrap(b));
 
+[heading Requirements]
 
-the completion of the first async operation will perform `s.dispatch(a)`, and the second will perform `s.dispatch(b)`, but the order in which those are performed is unspecified. That is, you cannot state whether one happens-before the other. Therefore none of the above conditions are met and no ordering guarantee is made.
+[*Header: ][^boost/asio/waitable_timer_service.hpp]
 
+[*Convenience header: ][^boost/asio.hpp]
 
-[heading Thread Safety]
-
-[*Distinct] [*objects:] Safe.
 
-[*Shared] [*objects:] Safe.
+[endsect]
 
 
 
+[section:wait waitable_timer_service::wait]
 
+[indexterm2 wait..waitable_timer_service]
 
-[heading Requirements]
+ void wait(
+ implementation_type & impl,
+ boost::system::error_code & ec);
 
-[*Header: ][^boost/asio/strand.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
+
+[endsect]
+
+
+
+[section:waitable_timer_service waitable_timer_service::waitable_timer_service]
+
+[indexterm2 waitable_timer_service..waitable_timer_service]
+Construct a new timer service for the specified [link boost_asio.reference.io_service `io_service`].
+
+
+ waitable_timer_service(
+ boost::asio::io_service & io_service);
+
 
 
 [endsect]
 
 
-[section:stream_socket_service stream_socket_service]
 
+[endsect]
 
-Default service implementation for a stream socket.
+[section:windows__basic_handle windows::basic_handle]
+
+
+Provides Windows handle functionality.
 
 
   template<
- typename ``[link boost_asio.reference.Protocol Protocol]``>
- class stream_socket_service :
- public io_service::service
+ typename ``[link boost_asio.reference.HandleService HandleService]``>
+ class basic_handle :
+ public basic_io_object< HandleService >
 
 
 [heading Types]
@@ -85008,36 +89095,36 @@
 
   [
 
- [[link boost_asio.reference.stream_socket_service.endpoint_type [*endpoint_type]]]
- [The endpoint type. ]
+ [[link boost_asio.reference.windows__basic_handle.implementation_type [*implementation_type]]]
+ [The underlying implementation type of I/O object. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.stream_socket_service.implementation_type [*implementation_type]]]
- [The type of a stream socket implementation. ]
+ [[link boost_asio.reference.windows__basic_handle.lowest_layer_type [*lowest_layer_type]]]
+ [A basic_handle is always the lowest layer. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.stream_socket_service.native_handle_type [*native_handle_type]]]
- [The native socket type. ]
+ [[link boost_asio.reference.windows__basic_handle.native_handle_type [*native_handle_type]]]
+ [The native representation of a handle. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.stream_socket_service.native_type [*native_type]]]
- [(Deprecated: Use native_handle_type.) The native socket type. ]
+ [[link boost_asio.reference.windows__basic_handle.native_type [*native_type]]]
+ [(Deprecated: Use native_handle_type.) The native representation of a handle. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.stream_socket_service.protocol_type [*protocol_type]]]
- [The protocol type. ]
+ [[link boost_asio.reference.windows__basic_handle.service_type [*service_type]]]
+ [The type of the service that will be used to provide I/O operations. ]
   
   ]
 
@@ -85048,267 +89135,141 @@
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.stream_socket_service.assign [*assign]]]
- [Assign an existing native socket to a stream socket. ]
- ]
-
- [
- [[link boost_asio.reference.stream_socket_service.async_connect [*async_connect]]]
- [Start an asynchronous connect. ]
- ]
-
- [
- [[link boost_asio.reference.stream_socket_service.async_receive [*async_receive]]]
- [Start an asynchronous receive. ]
- ]
-
- [
- [[link boost_asio.reference.stream_socket_service.async_send [*async_send]]]
- [Start an asynchronous send. ]
- ]
-
- [
- [[link boost_asio.reference.stream_socket_service.at_mark [*at_mark]]]
- [Determine whether the socket is at the out-of-band data mark. ]
- ]
-
- [
- [[link boost_asio.reference.stream_socket_service.available [*available]]]
- [Determine the number of bytes available for reading. ]
- ]
-
- [
- [[link boost_asio.reference.stream_socket_service.bind [*bind]]]
- [Bind the stream socket to the specified local endpoint. ]
- ]
-
- [
- [[link boost_asio.reference.stream_socket_service.cancel [*cancel]]]
- [Cancel all asynchronous operations associated with the socket. ]
- ]
-
- [
- [[link boost_asio.reference.stream_socket_service.close [*close]]]
- [Close a stream socket implementation. ]
- ]
-
- [
- [[link boost_asio.reference.stream_socket_service.connect [*connect]]]
- [Connect the stream socket to the specified endpoint. ]
- ]
-
- [
- [[link boost_asio.reference.stream_socket_service.construct [*construct]]]
- [Construct a new stream socket implementation. ]
- ]
-
- [
- [[link boost_asio.reference.stream_socket_service.destroy [*destroy]]]
- [Destroy a stream socket implementation. ]
+ [[link boost_asio.reference.windows__basic_handle.assign [*assign]]]
+ [Assign an existing native handle to the handle. ]
   ]
   
   [
- [[link boost_asio.reference.stream_socket_service.get_io_service [*get_io_service]]]
- [Get the io_service object that owns the service. ]
+ [[link boost_asio.reference.windows__basic_handle.basic_handle [*basic_handle]]]
+ [Construct a basic_handle without opening it.
+
+ Construct a basic_handle on an existing native handle.
+
+ Move-construct a basic_handle from another. ]
   ]
   
   [
- [[link boost_asio.reference.stream_socket_service.get_option [*get_option]]]
- [Get a socket option. ]
+ [[link boost_asio.reference.windows__basic_handle.cancel [*cancel]]]
+ [Cancel all asynchronous operations associated with the handle. ]
   ]
   
   [
- [[link boost_asio.reference.stream_socket_service.io_control [*io_control]]]
- [Perform an IO control command on the socket. ]
+ [[link boost_asio.reference.windows__basic_handle.close [*close]]]
+ [Close the handle. ]
   ]
   
   [
- [[link boost_asio.reference.stream_socket_service.is_open [*is_open]]]
- [Determine whether the socket is open. ]
+ [[link boost_asio.reference.windows__basic_handle.get_io_service [*get_io_service]]]
+ [Get the io_service associated with the object. ]
   ]
   
   [
- [[link boost_asio.reference.stream_socket_service.local_endpoint [*local_endpoint]]]
- [Get the local endpoint. ]
+ [[link boost_asio.reference.windows__basic_handle.is_open [*is_open]]]
+ [Determine whether the handle is open. ]
   ]
   
   [
- [[link boost_asio.reference.stream_socket_service.move_assign [*move_assign]]]
- [Move-assign from another stream socket implementation. ]
+ [[link boost_asio.reference.windows__basic_handle.lowest_layer [*lowest_layer]]]
+ [Get a reference to the lowest layer.
+
+ Get a const reference to the lowest layer. ]
   ]
   
   [
- [[link boost_asio.reference.stream_socket_service.move_construct [*move_construct]]]
- [Move-construct a new stream socket implementation. ]
+ [[link boost_asio.reference.windows__basic_handle.native [*native]]]
+ [(Deprecated: Use native_handle().) Get the native handle representation. ]
   ]
   
   [
- [[link boost_asio.reference.stream_socket_service.native [*native]]]
- [(Deprecated: Use native_handle().) Get the native socket implementation. ]
+ [[link boost_asio.reference.windows__basic_handle.native_handle [*native_handle]]]
+ [Get the native handle representation. ]
   ]
   
   [
- [[link boost_asio.reference.stream_socket_service.native_handle [*native_handle]]]
- [Get the native socket implementation. ]
+ [[link boost_asio.reference.windows__basic_handle.operator_eq_ [*operator=]]]
+ [Move-assign a basic_handle from another. ]
   ]
   
- [
- [[link boost_asio.reference.stream_socket_service.native_non_blocking [*native_non_blocking]]]
- [Gets the non-blocking mode of the native socket implementation.
+]
 
- Sets the non-blocking mode of the native socket implementation. ]
- ]
-
- [
- [[link boost_asio.reference.stream_socket_service.non_blocking [*non_blocking]]]
- [Gets the non-blocking mode of the socket.
+[heading Protected Member Functions]
+[table
+ [[Name][Description]]
 
- Sets the non-blocking mode of the socket. ]
- ]
-
- [
- [[link boost_asio.reference.stream_socket_service.open [*open]]]
- [Open a stream socket. ]
- ]
-
- [
- [[link boost_asio.reference.stream_socket_service.receive [*receive]]]
- [Receive some data from the peer. ]
- ]
-
- [
- [[link boost_asio.reference.stream_socket_service.remote_endpoint [*remote_endpoint]]]
- [Get the remote endpoint. ]
- ]
-
- [
- [[link boost_asio.reference.stream_socket_service.send [*send]]]
- [Send the given data to the peer. ]
- ]
-
   [
- [[link boost_asio.reference.stream_socket_service.set_option [*set_option]]]
- [Set a socket option. ]
+ [[link boost_asio.reference.windows__basic_handle.get_implementation [*get_implementation]]]
+ [Get the underlying implementation of the I/O object. ]
   ]
   
   [
- [[link boost_asio.reference.stream_socket_service.shutdown [*shutdown]]]
- [Disable sends or receives on the socket. ]
+ [[link boost_asio.reference.windows__basic_handle.get_service [*get_service]]]
+ [Get the service associated with the I/O object. ]
   ]
   
   [
- [[link boost_asio.reference.stream_socket_service.stream_socket_service [*stream_socket_service]]]
- [Construct a new stream socket service for the specified io_service. ]
+ [[link boost_asio.reference.windows__basic_handle._basic_handle [*~basic_handle]]]
+ [Protected destructor to prevent deletion through this type. ]
   ]
   
 ]
 
-[heading Data Members]
+[heading Protected Data Members]
 [table
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.stream_socket_service.id [*id]]]
- [The unique service identifier. ]
+ [[link boost_asio.reference.windows__basic_handle.implementation [*implementation]]]
+ [(Deprecated: Use get_implementation().) The underlying implementation of the I/O object. ]
   ]
 
-]
-
-[heading Requirements]
-
-[*Header: ][^boost/asio/stream_socket_service.hpp]
-
-[*Convenience header: ][^boost/asio.hpp]
-
-
-[section:assign stream_socket_service::assign]
-
-[indexterm2 assign..stream_socket_service]
-Assign an existing native socket to a stream socket.
-
-
- boost::system::error_code assign(
- implementation_type & impl,
- const protocol_type & protocol,
- const native_handle_type & native_socket,
- boost::system::error_code & ec);
-
-
-
-[endsect]
-
-
-
-[section:async_connect stream_socket_service::async_connect]
-
-[indexterm2 async_connect..stream_socket_service]
-Start an asynchronous connect.
-
-
- template<
- typename ``[link boost_asio.reference.ConnectHandler ConnectHandler]``>
- void async_connect(
- implementation_type & impl,
- const endpoint_type & peer_endpoint,
- ConnectHandler handler);
-
-
-
-[endsect]
-
-
-
-[section:async_receive stream_socket_service::async_receive]
+ [
+ [[link boost_asio.reference.windows__basic_handle.service [*service]]]
+ [(Deprecated: Use get_service().) The service associated with the I/O object. ]
+ ]
 
-[indexterm2 async_receive..stream_socket_service]
-Start an asynchronous receive.
+]
 
+The [link boost_asio.reference.windows__basic_handle `windows::basic_handle`] class template provides the ability to wrap a Windows handle.
 
- template<
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
- typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void async_receive(
- implementation_type & impl,
- const MutableBufferSequence & buffers,
- socket_base::message_flags flags,
- ReadHandler handler);
 
+[heading Thread Safety]
+
+[*Distinct] [*objects:] Safe.
 
+[*Shared] [*objects:] Unsafe.
 
-[endsect]
 
 
+[heading Requirements]
 
-[section:async_send stream_socket_service::async_send]
+[*Header: ][^boost/asio/windows/basic_handle.hpp]
 
-[indexterm2 async_send..stream_socket_service]
-Start an asynchronous send.
+[*Convenience header: ][^boost/asio.hpp]
 
+[section:assign windows::basic_handle::assign]
 
- template<
- typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
- typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
- void async_send(
- implementation_type & impl,
- const ConstBufferSequence & buffers,
- socket_base::message_flags flags,
- WriteHandler handler);
+[indexterm2 assign..windows::basic_handle]
+Assign an existing native handle to the handle.
 
 
+ void ``[link boost_asio.reference.windows__basic_handle.assign.overload1 assign]``(
+ const native_handle_type & handle);
+ `` [''''&raquo;''' [link boost_asio.reference.windows__basic_handle.assign.overload1 more...]]``
 
-[endsect]
+ boost::system::error_code ``[link boost_asio.reference.windows__basic_handle.assign.overload2 assign]``(
+ const native_handle_type & handle,
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.windows__basic_handle.assign.overload2 more...]]``
 
 
+[section:overload1 windows::basic_handle::assign (1 of 2 overloads)]
 
-[section:at_mark stream_socket_service::at_mark]
 
-[indexterm2 at_mark..stream_socket_service]
-Determine whether the socket is at the out-of-band data mark.
+Assign an existing native handle to the handle.
 
 
- bool at_mark(
- const implementation_type & impl,
- boost::system::error_code & ec) const;
+ void assign(
+ const native_handle_type & handle);
 
 
 
@@ -85316,31 +89277,14 @@
 
 
 
-[section:available stream_socket_service::available]
-
-[indexterm2 available..stream_socket_service]
-Determine the number of bytes available for reading.
-
-
- std::size_t available(
- const implementation_type & impl,
- boost::system::error_code & ec) const;
-
-
-
-[endsect]
-
-
+[section:overload2 windows::basic_handle::assign (2 of 2 overloads)]
 
-[section:bind stream_socket_service::bind]
 
-[indexterm2 bind..stream_socket_service]
-Bind the stream socket to the specified local endpoint.
+Assign an existing native handle to the handle.
 
 
- boost::system::error_code bind(
- implementation_type & impl,
- const endpoint_type & endpoint,
+ boost::system::error_code assign(
+ const native_handle_type & handle,
       boost::system::error_code & ec);
 
 
@@ -85348,79 +89292,58 @@
 [endsect]
 
 
-
-[section:cancel stream_socket_service::cancel]
-
-[indexterm2 cancel..stream_socket_service]
-Cancel all asynchronous operations associated with the socket.
-
-
- boost::system::error_code cancel(
- implementation_type & impl,
- boost::system::error_code & ec);
-
-
-
 [endsect]
 
+[section:basic_handle windows::basic_handle::basic_handle]
 
-
-[section:close stream_socket_service::close]
-
-[indexterm2 close..stream_socket_service]
-Close a stream socket implementation.
-
-
- boost::system::error_code close(
- implementation_type & impl,
- boost::system::error_code & ec);
-
-
-
-[endsect]
-
+[indexterm2 basic_handle..windows::basic_handle]
+Construct a [link boost_asio.reference.windows__basic_handle `windows::basic_handle`] without opening it.
 
 
-[section:connect stream_socket_service::connect]
+ explicit ``[link boost_asio.reference.windows__basic_handle.basic_handle.overload1 basic_handle]``(
+ boost::asio::io_service & io_service);
+ `` [''''&raquo;''' [link boost_asio.reference.windows__basic_handle.basic_handle.overload1 more...]]``
 
-[indexterm2 connect..stream_socket_service]
-Connect the stream socket to the specified endpoint.
 
+Construct a [link boost_asio.reference.windows__basic_handle `windows::basic_handle`] on an existing native handle.
 
- boost::system::error_code connect(
- implementation_type & impl,
- const endpoint_type & peer_endpoint,
- boost::system::error_code & ec);
 
+ ``[link boost_asio.reference.windows__basic_handle.basic_handle.overload2 basic_handle]``(
+ boost::asio::io_service & io_service,
+ const native_handle_type & handle);
+ `` [''''&raquo;''' [link boost_asio.reference.windows__basic_handle.basic_handle.overload2 more...]]``
 
 
-[endsect]
+Move-construct a [link boost_asio.reference.windows__basic_handle `windows::basic_handle`] from another.
 
 
+ ``[link boost_asio.reference.windows__basic_handle.basic_handle.overload3 basic_handle]``(
+ basic_handle && other);
+ `` [''''&raquo;''' [link boost_asio.reference.windows__basic_handle.basic_handle.overload3 more...]]``
 
-[section:construct stream_socket_service::construct]
 
-[indexterm2 construct..stream_socket_service]
-Construct a new stream socket implementation.
+[section:overload1 windows::basic_handle::basic_handle (1 of 3 overloads)]
 
 
- void construct(
- implementation_type & impl);
+Construct a [link boost_asio.reference.windows__basic_handle `windows::basic_handle`] without opening it.
 
 
+ basic_handle(
+ boost::asio::io_service & io_service);
 
-[endsect]
 
+This constructor creates a handle without opening it.
 
 
-[section:destroy stream_socket_service::destroy]
+[heading Parameters]
+
 
-[indexterm2 destroy..stream_socket_service]
-Destroy a stream socket implementation.
+[variablelist
+
+[[io_service][The [link boost_asio.reference.io_service `io_service`] object that the handle will use to dispatch handlers for any asynchronous operations performed on the handle. ]]
 
+]
 
- void destroy(
- implementation_type & impl);
 
 
 
@@ -85428,37 +89351,41 @@
 
 
 
-[section:endpoint_type stream_socket_service::endpoint_type]
-
-[indexterm2 endpoint_type..stream_socket_service]
-The endpoint type.
-
+[section:overload2 windows::basic_handle::basic_handle (2 of 3 overloads)]
 
- typedef Protocol::endpoint endpoint_type;
 
+Construct a [link boost_asio.reference.windows__basic_handle `windows::basic_handle`] on an existing native handle.
 
 
-[heading Requirements]
+ basic_handle(
+ boost::asio::io_service & io_service,
+ const native_handle_type & handle);
 
-[*Header: ][^boost/asio/stream_socket_service.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
+This constructor creates a handle object to hold an existing native handle.
 
 
-[endsect]
+[heading Parameters]
+
 
+[variablelist
+
+[[io_service][The [link boost_asio.reference.io_service `io_service`] object that the handle will use to dispatch handlers for any asynchronous operations performed on the handle.]]
 
+[[handle][A native handle.]]
 
-[section:get_io_service stream_socket_service::get_io_service]
+]
 
 
-['Inherited from io_service.]
+[heading Exceptions]
+
 
-[indexterm2 get_io_service..stream_socket_service]
-Get the [link boost_asio.reference.io_service `io_service`] object that owns the service.
+[variablelist
+
+[[boost::system::system_error][Thrown on failure. ]]
 
+]
 
- boost::asio::io_service & get_io_service();
 
 
 
@@ -85466,87 +89393,76 @@
 
 
 
-[section:get_option stream_socket_service::get_option]
-
-[indexterm2 get_option..stream_socket_service]
-Get a socket option.
-
-
- template<
- typename ``[link boost_asio.reference.GettableSocketOption GettableSocketOption]``>
- boost::system::error_code get_option(
- const implementation_type & impl,
- GettableSocketOption & option,
- boost::system::error_code & ec) const;
-
-
-
-[endsect]
-
+[section:overload3 windows::basic_handle::basic_handle (3 of 3 overloads)]
 
 
-[section:id stream_socket_service::id]
+Move-construct a [link boost_asio.reference.windows__basic_handle `windows::basic_handle`] from another.
 
-[indexterm2 id..stream_socket_service]
-The unique service identifier.
 
+ basic_handle(
+ basic_handle && other);
 
- static boost::asio::io_service::id id;
 
+This constructor moves a handle from one object to another.
 
 
-[endsect]
+[heading Parameters]
+
 
+[variablelist
+
+[[other][The other [link boost_asio.reference.windows__basic_handle `windows::basic_handle`] object from which the move will occur.]]
 
+]
 
-[section:implementation_type stream_socket_service::implementation_type]
 
-[indexterm2 implementation_type..stream_socket_service]
-The type of a stream socket implementation.
+[heading Remarks]
+
+Following the move, the moved-from object is in the same state as if constructed using the `basic_handle(io_service&) constructor`.
 
 
- typedef implementation_defined implementation_type;
 
 
+[endsect]
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/stream_socket_service.hpp]
+[endsect]
 
-[*Convenience header: ][^boost/asio.hpp]
+[section:cancel windows::basic_handle::cancel]
 
+[indexterm2 cancel..windows::basic_handle]
+Cancel all asynchronous operations associated with the handle.
 
-[endsect]
 
+ void ``[link boost_asio.reference.windows__basic_handle.cancel.overload1 cancel]``();
+ `` [''''&raquo;''' [link boost_asio.reference.windows__basic_handle.cancel.overload1 more...]]``
 
+ boost::system::error_code ``[link boost_asio.reference.windows__basic_handle.cancel.overload2 cancel]``(
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.windows__basic_handle.cancel.overload2 more...]]``
 
-[section:io_control stream_socket_service::io_control]
 
-[indexterm2 io_control..stream_socket_service]
-Perform an IO control command on the socket.
+[section:overload1 windows::basic_handle::cancel (1 of 2 overloads)]
 
 
- template<
- typename ``[link boost_asio.reference.IoControlCommand IoControlCommand]``>
- boost::system::error_code io_control(
- implementation_type & impl,
- IoControlCommand & command,
- boost::system::error_code & ec);
+Cancel all asynchronous operations associated with the handle.
 
 
+ void cancel();
 
-[endsect]
 
+This function causes all outstanding asynchronous read or write operations to finish immediately, and the handlers for cancelled operations will be passed the `boost::asio::error::operation_aborted` error.
 
 
-[section:is_open stream_socket_service::is_open]
+[heading Exceptions]
+
 
-[indexterm2 is_open..stream_socket_service]
-Determine whether the socket is open.
+[variablelist
+
+[[boost::system::system_error][Thrown on failure. ]]
 
+]
 
- bool is_open(
- const implementation_type & impl) const;
 
 
 
@@ -85554,134 +89470,131 @@
 
 
 
-[section:local_endpoint stream_socket_service::local_endpoint]
-
-[indexterm2 local_endpoint..stream_socket_service]
-Get the local endpoint.
+[section:overload2 windows::basic_handle::cancel (2 of 2 overloads)]
 
 
- endpoint_type local_endpoint(
- const implementation_type & impl,
- boost::system::error_code & ec) const;
+Cancel all asynchronous operations associated with the handle.
 
 
+ boost::system::error_code cancel(
+ boost::system::error_code & ec);
 
-[endsect]
 
+This function causes all outstanding asynchronous read or write operations to finish immediately, and the handlers for cancelled operations will be passed the `boost::asio::error::operation_aborted` error.
 
 
-[section:move_assign stream_socket_service::move_assign]
+[heading Parameters]
+
 
-[indexterm2 move_assign..stream_socket_service]
-Move-assign from another stream socket implementation.
+[variablelist
+
+[[ec][Set to indicate what error occurred, if any. ]]
 
+]
 
- void move_assign(
- implementation_type & impl,
- stream_socket_service & other_service,
- implementation_type & other_impl);
 
 
 
 [endsect]
 
 
+[endsect]
 
-[section:move_construct stream_socket_service::move_construct]
+[section:close windows::basic_handle::close]
 
-[indexterm2 move_construct..stream_socket_service]
-Move-construct a new stream socket implementation.
+[indexterm2 close..windows::basic_handle]
+Close the handle.
 
 
- void move_construct(
- implementation_type & impl,
- implementation_type & other_impl);
+ void ``[link boost_asio.reference.windows__basic_handle.close.overload1 close]``();
+ `` [''''&raquo;''' [link boost_asio.reference.windows__basic_handle.close.overload1 more...]]``
 
+ boost::system::error_code ``[link boost_asio.reference.windows__basic_handle.close.overload2 close]``(
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.windows__basic_handle.close.overload2 more...]]``
 
 
-[endsect]
+[section:overload1 windows::basic_handle::close (1 of 2 overloads)]
 
 
+Close the handle.
 
-[section:native stream_socket_service::native]
 
-[indexterm2 native..stream_socket_service]
-(Deprecated: Use `native_handle()`.) Get the native socket implementation.
+ void close();
 
 
- native_type native(
- implementation_type & impl);
+This function is used to close the handle. Any asynchronous read or write operations will be cancelled immediately, and will complete with the `boost::asio::error::operation_aborted` error.
 
 
+[heading Exceptions]
+
 
-[endsect]
+[variablelist
+
+[[boost::system::system_error][Thrown on failure. ]]
 
+]
 
 
-[section:native_handle stream_socket_service::native_handle]
 
-[indexterm2 native_handle..stream_socket_service]
-Get the native socket implementation.
 
+[endsect]
 
- native_handle_type native_handle(
- implementation_type & impl);
 
 
+[section:overload2 windows::basic_handle::close (2 of 2 overloads)]
 
-[endsect]
 
+Close the handle.
 
 
-[section:native_handle_type stream_socket_service::native_handle_type]
+ boost::system::error_code close(
+ boost::system::error_code & ec);
 
-[indexterm2 native_handle_type..stream_socket_service]
-The native socket type.
 
+This function is used to close the handle. Any asynchronous read or write operations will be cancelled immediately, and will complete with the `boost::asio::error::operation_aborted` error.
 
- typedef implementation_defined native_handle_type;
 
+[heading Parameters]
+
 
+[variablelist
+
+[[ec][Set to indicate what error occurred, if any. ]]
 
-[heading Requirements]
+]
 
-[*Header: ][^boost/asio/stream_socket_service.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
-[section:native_non_blocking stream_socket_service::native_non_blocking]
+[endsect]
 
-[indexterm2 native_non_blocking..stream_socket_service]
-Gets the non-blocking mode of the native socket implementation.
+[section:get_implementation windows::basic_handle::get_implementation]
 
+[indexterm2 get_implementation..windows::basic_handle]
+Get the underlying implementation of the I/O object.
 
- bool ``[link boost_asio.reference.stream_socket_service.native_non_blocking.overload1 native_non_blocking]``(
- const implementation_type & impl) const;
- `` [''''&raquo;''' [link boost_asio.reference.stream_socket_service.native_non_blocking.overload1 more...]]``
 
+ implementation_type & ``[link boost_asio.reference.windows__basic_handle.get_implementation.overload1 get_implementation]``();
+ `` [''''&raquo;''' [link boost_asio.reference.windows__basic_handle.get_implementation.overload1 more...]]``
 
-Sets the non-blocking mode of the native socket implementation.
+ const implementation_type & ``[link boost_asio.reference.windows__basic_handle.get_implementation.overload2 get_implementation]``() const;
+ `` [''''&raquo;''' [link boost_asio.reference.windows__basic_handle.get_implementation.overload2 more...]]``
 
 
- boost::system::error_code ``[link boost_asio.reference.stream_socket_service.native_non_blocking.overload2 native_non_blocking]``(
- implementation_type & impl,
- bool mode,
- boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.stream_socket_service.native_non_blocking.overload2 more...]]``
+[section:overload1 windows::basic_handle::get_implementation (1 of 2 overloads)]
 
 
-[section:overload1 stream_socket_service::native_non_blocking (1 of 2 overloads)]
+['Inherited from basic_io_object.]
 
 
-Gets the non-blocking mode of the native socket implementation.
+Get the underlying implementation of the I/O object.
 
 
- bool native_non_blocking(
- const implementation_type & impl) const;
+ implementation_type & get_implementation();
 
 
 
@@ -85689,16 +89602,16 @@
 
 
 
-[section:overload2 stream_socket_service::native_non_blocking (2 of 2 overloads)]
+[section:overload2 windows::basic_handle::get_implementation (2 of 2 overloads)]
 
 
-Sets the non-blocking mode of the native socket implementation.
+['Inherited from basic_io_object.]
 
 
- boost::system::error_code native_non_blocking(
- implementation_type & impl,
- bool mode,
- boost::system::error_code & ec);
+Get the underlying implementation of the I/O object.
+
+
+ const implementation_type & get_implementation() const;
 
 
 
@@ -85708,55 +89621,54 @@
 [endsect]
 
 
-[section:native_type stream_socket_service::native_type]
+[section:get_io_service windows::basic_handle::get_io_service]
 
-[indexterm2 native_type..stream_socket_service]
-(Deprecated: Use native\_handle\_type.) The native socket type.
 
+['Inherited from basic_io_object.]
 
- typedef implementation_defined native_type;
+[indexterm2 get_io_service..windows::basic_handle]
+Get the [link boost_asio.reference.io_service `io_service`] associated with the object.
 
 
+ boost::asio::io_service & get_io_service();
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/stream_socket_service.hpp]
+This function may be used to obtain the [link boost_asio.reference.io_service `io_service`] object that the I/O object uses to dispatch handlers for asynchronous operations.
 
-[*Convenience header: ][^boost/asio.hpp]
+
+[heading Return Value]
+
+A reference to the [link boost_asio.reference.io_service `io_service`] object that the I/O object will use to dispatch handlers. Ownership is not transferred to the caller.
 
 
-[endsect]
 
 
-[section:non_blocking stream_socket_service::non_blocking]
+[endsect]
 
-[indexterm2 non_blocking..stream_socket_service]
-Gets the non-blocking mode of the socket.
 
+[section:get_service windows::basic_handle::get_service]
 
- bool ``[link boost_asio.reference.stream_socket_service.non_blocking.overload1 non_blocking]``(
- const implementation_type & impl) const;
- `` [''''&raquo;''' [link boost_asio.reference.stream_socket_service.non_blocking.overload1 more...]]``
+[indexterm2 get_service..windows::basic_handle]
+Get the service associated with the I/O object.
 
 
-Sets the non-blocking mode of the socket.
+ service_type & ``[link boost_asio.reference.windows__basic_handle.get_service.overload1 get_service]``();
+ `` [''''&raquo;''' [link boost_asio.reference.windows__basic_handle.get_service.overload1 more...]]``
 
+ const service_type & ``[link boost_asio.reference.windows__basic_handle.get_service.overload2 get_service]``() const;
+ `` [''''&raquo;''' [link boost_asio.reference.windows__basic_handle.get_service.overload2 more...]]``
 
- boost::system::error_code ``[link boost_asio.reference.stream_socket_service.non_blocking.overload2 non_blocking]``(
- implementation_type & impl,
- bool mode,
- boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.stream_socket_service.non_blocking.overload2 more...]]``
 
+[section:overload1 windows::basic_handle::get_service (1 of 2 overloads)]
 
-[section:overload1 stream_socket_service::non_blocking (1 of 2 overloads)]
 
+['Inherited from basic_io_object.]
 
-Gets the non-blocking mode of the socket.
 
+Get the service associated with the I/O object.
 
- bool non_blocking(
- const implementation_type & impl) const;
+
+ service_type & get_service();
 
 
 
@@ -85764,16 +89676,16 @@
 
 
 
-[section:overload2 stream_socket_service::non_blocking (2 of 2 overloads)]
+[section:overload2 windows::basic_handle::get_service (2 of 2 overloads)]
 
 
-Sets the non-blocking mode of the socket.
+['Inherited from basic_io_object.]
 
 
- boost::system::error_code non_blocking(
- implementation_type & impl,
- bool mode,
- boost::system::error_code & ec);
+Get the service associated with the I/O object.
+
+
+ const service_type & get_service() const;
 
 
 
@@ -85783,16 +89695,16 @@
 [endsect]
 
 
-[section:open stream_socket_service::open]
+[section:implementation windows::basic_handle::implementation]
 
-[indexterm2 open..stream_socket_service]
-Open a stream socket.
 
+['Inherited from basic_io_object.]
 
- boost::system::error_code open(
- implementation_type & impl,
- const protocol_type & protocol,
- boost::system::error_code & ec);
+[indexterm2 implementation..windows::basic_handle]
+(Deprecated: Use `get_implementation()`.) The underlying implementation of the I/O object.
+
+
+ implementation_type implementation;
 
 
 
@@ -85800,19 +89712,22 @@
 
 
 
-[section:protocol_type stream_socket_service::protocol_type]
+[section:implementation_type windows::basic_handle::implementation_type]
 
-[indexterm2 protocol_type..stream_socket_service]
-The protocol type.
 
+['Inherited from basic_io_object.]
+
+[indexterm2 implementation_type..windows::basic_handle]
+The underlying implementation type of I/O object.
 
- typedef Protocol protocol_type;
+
+ typedef service_type::implementation_type implementation_type;
 
 
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/stream_socket_service.hpp]
+[*Header: ][^boost/asio/windows/basic_handle.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
@@ -85821,74 +89736,52 @@
 
 
 
-[section:receive stream_socket_service::receive]
+[section:is_open windows::basic_handle::is_open]
 
-[indexterm2 receive..stream_socket_service]
-Receive some data from the peer.
+[indexterm2 is_open..windows::basic_handle]
+Determine whether the handle is open.
 
 
- template<
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
- std::size_t receive(
- implementation_type & impl,
- const MutableBufferSequence & buffers,
- socket_base::message_flags flags,
- boost::system::error_code & ec);
+ bool is_open() const;
 
 
 
 [endsect]
 
 
+[section:lowest_layer windows::basic_handle::lowest_layer]
 
-[section:remote_endpoint stream_socket_service::remote_endpoint]
-
-[indexterm2 remote_endpoint..stream_socket_service]
-Get the remote endpoint.
-
-
- endpoint_type remote_endpoint(
- const implementation_type & impl,
- boost::system::error_code & ec) const;
-
+[indexterm2 lowest_layer..windows::basic_handle]
+Get a reference to the lowest layer.
 
 
-[endsect]
+ lowest_layer_type & ``[link boost_asio.reference.windows__basic_handle.lowest_layer.overload1 lowest_layer]``();
+ `` [''''&raquo;''' [link boost_asio.reference.windows__basic_handle.lowest_layer.overload1 more...]]``
 
 
+Get a const reference to the lowest layer.
 
-[section:send stream_socket_service::send]
 
-[indexterm2 send..stream_socket_service]
-Send the given data to the peer.
+ const lowest_layer_type & ``[link boost_asio.reference.windows__basic_handle.lowest_layer.overload2 lowest_layer]``() const;
+ `` [''''&raquo;''' [link boost_asio.reference.windows__basic_handle.lowest_layer.overload2 more...]]``
 
 
- template<
- typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
- std::size_t send(
- implementation_type & impl,
- const ConstBufferSequence & buffers,
- socket_base::message_flags flags,
- boost::system::error_code & ec);
+[section:overload1 windows::basic_handle::lowest_layer (1 of 2 overloads)]
 
 
+Get a reference to the lowest layer.
 
-[endsect]
 
+ lowest_layer_type & lowest_layer();
 
 
-[section:set_option stream_socket_service::set_option]
+This function returns a reference to the lowest layer in a stack of layers. Since a [link boost_asio.reference.windows__basic_handle `windows::basic_handle`] cannot contain any further layers, it simply returns a reference to itself.
 
-[indexterm2 set_option..stream_socket_service]
-Set a socket option.
 
+[heading Return Value]
+
+A reference to the lowest layer in the stack of layers. Ownership is not transferred to the caller.
 
- template<
- typename ``[link boost_asio.reference.SettableSocketOption SettableSocketOption]``>
- boost::system::error_code set_option(
- implementation_type & impl,
- const SettableSocketOption & option,
- boost::system::error_code & ec);
 
 
 
@@ -85896,48 +89789,38 @@
 
 
 
-[section:shutdown stream_socket_service::shutdown]
-
-[indexterm2 shutdown..stream_socket_service]
-Disable sends or receives on the socket.
-
-
- boost::system::error_code shutdown(
- implementation_type & impl,
- socket_base::shutdown_type what,
- boost::system::error_code & ec);
+[section:overload2 windows::basic_handle::lowest_layer (2 of 2 overloads)]
 
 
+Get a const reference to the lowest layer.
 
-[endsect]
 
+ const lowest_layer_type & lowest_layer() const;
 
 
-[section:stream_socket_service stream_socket_service::stream_socket_service]
+This function returns a const reference to the lowest layer in a stack of layers. Since a [link boost_asio.reference.windows__basic_handle `windows::basic_handle`] cannot contain any further layers, it simply returns a reference to itself.
 
-[indexterm2 stream_socket_service..stream_socket_service]
-Construct a new stream socket service for the specified [link boost_asio.reference.io_service `io_service`].
 
+[heading Return Value]
+
+A const reference to the lowest layer in the stack of layers. Ownership is not transferred to the caller.
 
- stream_socket_service(
- boost::asio::io_service & io_service);
 
 
 
 [endsect]
 
 
-
 [endsect]
 
 
-[section:streambuf streambuf]
+[section:lowest_layer_type windows::basic_handle::lowest_layer_type]
 
-[indexterm1 streambuf]
-Typedef for the typical usage of [link boost_asio.reference.basic_streambuf `basic_streambuf`].
+[indexterm2 lowest_layer_type..windows::basic_handle]
+A [link boost_asio.reference.windows__basic_handle `windows::basic_handle`] is always the lowest layer.
 
 
- typedef basic_streambuf streambuf;
+ typedef basic_handle< HandleService > lowest_layer_type;
 
 
 [heading Types]
@@ -85946,248 +89829,155 @@
 
   [
 
- [[link boost_asio.reference.basic_streambuf.const_buffers_type [*const_buffers_type]]]
- [The type used to represent the input sequence as a list of buffers. ]
+ [[link boost_asio.reference.windows__basic_handle.implementation_type [*implementation_type]]]
+ [The underlying implementation type of I/O object. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.basic_streambuf.mutable_buffers_type [*mutable_buffers_type]]]
- [The type used to represent the output sequence as a list of buffers. ]
+ [[link boost_asio.reference.windows__basic_handle.lowest_layer_type [*lowest_layer_type]]]
+ [A basic_handle is always the lowest layer. ]
   
   ]
 
-]
+ [
 
-[heading Member Functions]
-[table
- [[Name][Description]]
+ [[link boost_asio.reference.windows__basic_handle.native_handle_type [*native_handle_type]]]
+ [The native representation of a handle. ]
+
+ ]
 
   [
- [[link boost_asio.reference.basic_streambuf.basic_streambuf [*basic_streambuf]]]
- [Construct a basic_streambuf object. ]
- ]
+
+ [[link boost_asio.reference.windows__basic_handle.native_type [*native_type]]]
+ [(Deprecated: Use native_handle_type.) The native representation of a handle. ]
   
- [
- [[link boost_asio.reference.basic_streambuf.commit [*commit]]]
- [Move characters from the output sequence to the input sequence. ]
   ]
-
+
   [
- [[link boost_asio.reference.basic_streambuf.consume [*consume]]]
- [Remove characters from the input sequence. ]
- ]
+
+ [[link boost_asio.reference.windows__basic_handle.service_type [*service_type]]]
+ [The type of the service that will be used to provide I/O operations. ]
   
- [
- [[link boost_asio.reference.basic_streambuf.data [*data]]]
- [Get a list of buffers that represents the input sequence. ]
   ]
-
+
+]
+
+[heading Member Functions]
+[table
+ [[Name][Description]]
+
   [
- [[link boost_asio.reference.basic_streambuf.max_size [*max_size]]]
- [Get the maximum size of the basic_streambuf. ]
+ [[link boost_asio.reference.windows__basic_handle.assign [*assign]]]
+ [Assign an existing native handle to the handle. ]
   ]
   
   [
- [[link boost_asio.reference.basic_streambuf.prepare [*prepare]]]
- [Get a list of buffers that represents the output sequence, with the given size. ]
+ [[link boost_asio.reference.windows__basic_handle.basic_handle [*basic_handle]]]
+ [Construct a basic_handle without opening it.
+
+ Construct a basic_handle on an existing native handle.
+
+ Move-construct a basic_handle from another. ]
   ]
   
   [
- [[link boost_asio.reference.basic_streambuf.size [*size]]]
- [Get the size of the input sequence. ]
+ [[link boost_asio.reference.windows__basic_handle.cancel [*cancel]]]
+ [Cancel all asynchronous operations associated with the handle. ]
   ]
   
-]
-
-[heading Protected Member Functions]
-[table
- [[Name][Description]]
-
   [
- [[link boost_asio.reference.basic_streambuf.overflow [*overflow]]]
- [Override std::streambuf behaviour. ]
+ [[link boost_asio.reference.windows__basic_handle.close [*close]]]
+ [Close the handle. ]
   ]
   
   [
- [[link boost_asio.reference.basic_streambuf.reserve [*reserve]]]
- []
+ [[link boost_asio.reference.windows__basic_handle.get_io_service [*get_io_service]]]
+ [Get the io_service associated with the object. ]
   ]
   
   [
- [[link boost_asio.reference.basic_streambuf.underflow [*underflow]]]
- [Override std::streambuf behaviour. ]
+ [[link boost_asio.reference.windows__basic_handle.is_open [*is_open]]]
+ [Determine whether the handle is open. ]
   ]
   
-]
-
-The `basic_streambuf` class is derived from `std::streambuf` to associate the streambuf's input and output sequences with one or more character arrays. These character arrays are internal to the `basic_streambuf` object, but direct access to the array elements is provided to permit them to be used efficiently with I/O operations. Characters written to the output sequence of a `basic_streambuf` object are appended to the input sequence of the same object.
-
-The `basic_streambuf` class's public interface is intended to permit the following implementation strategies:
-
-
-* A single contiguous character array, which is reallocated as necessary to accommodate changes in the size of the character sequence. This is the implementation approach currently used in Asio.
-
-
-* A sequence of one or more character arrays, where each array is of the same size. Additional character array objects are appended to the sequence to accommodate changes in the size of the character sequence.
-
-
-* A sequence of one or more character arrays of varying sizes. Additional character array objects are appended to the sequence to accommodate changes in the size of the character sequence.
-
-The constructor for [link boost_asio.reference.basic_streambuf `basic_streambuf`] accepts a `size_t` argument specifying the maximum of the sum of the sizes of the input sequence and output sequence. During the lifetime of the `basic_streambuf` object, the following invariant holds:
-
- size() <= max_size()
-
-
-Any member function that would, if successful, cause the invariant to be violated shall throw an exception of class `std::length_error`.
-
-The constructor for `basic_streambuf` takes an Allocator argument. A copy of this argument is used for any memory allocation performed, by the constructor and by all member functions, during the lifetime of each `basic_streambuf` object.
-
-
-[heading Examples]
-
-Writing directly from an streambuf to a socket:
-
- boost::asio::streambuf b;
- std::ostream os(&b);
- os << "Hello, World!\n";
-
- // try sending some data in input sequence
- size_t n = sock.send(b.data());
-
- b.consume(n); // sent data is removed from input sequence
-
-
-
-
-Reading from a socket directly into a streambuf:
-
- boost::asio::streambuf b;
-
- // reserve 512 bytes in output sequence
- boost::asio::streambuf::mutable_buffers_type bufs = b.prepare(512);
-
- size_t n = sock.receive(bufs);
-
- // received data is "committed" from output sequence to input sequence
- b.commit(n);
-
- std::istream is(&b);
- std::string s;
- is >> s;
-
-
-
-
-
-[heading Requirements]
-
-[*Header: ][^boost/asio/streambuf.hpp]
-
-[*Convenience header: ][^boost/asio.hpp]
-
-
-[endsect]
-
-
-[section:time_traits_lt__ptime__gt_ time_traits< boost::posix_time::ptime >]
-
-
-Time traits specialised for posix\_time.
-
-
- template<>
- struct time_traits< boost::posix_time::ptime >
-
-
-[heading Types]
-[table
- [[Name][Description]]
-
   [
+ [[link boost_asio.reference.windows__basic_handle.lowest_layer [*lowest_layer]]]
+ [Get a reference to the lowest layer.
 
- [[link boost_asio.reference.time_traits_lt__ptime__gt_.duration_type [*duration_type]]]
- [The duration type. ]
+ Get a const reference to the lowest layer. ]
+ ]
   
+ [
+ [[link boost_asio.reference.windows__basic_handle.native [*native]]]
+ [(Deprecated: Use native_handle().) Get the native handle representation. ]
   ]
-
+
   [
-
- [[link boost_asio.reference.time_traits_lt__ptime__gt_.time_type [*time_type]]]
- [The time type. ]
+ [[link boost_asio.reference.windows__basic_handle.native_handle [*native_handle]]]
+ [Get the native handle representation. ]
+ ]
   
+ [
+ [[link boost_asio.reference.windows__basic_handle.operator_eq_ [*operator=]]]
+ [Move-assign a basic_handle from another. ]
   ]
-
+
 ]
 
-[heading Member Functions]
+[heading Protected Member Functions]
 [table
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.time_traits_lt__ptime__gt_.add [*add]]]
- [Add a duration to a time. ]
- ]
-
- [
- [[link boost_asio.reference.time_traits_lt__ptime__gt_.less_than [*less_than]]]
- [Test whether one time is less than another. ]
- ]
-
- [
- [[link boost_asio.reference.time_traits_lt__ptime__gt_.now [*now]]]
- [Get the current time. ]
+ [[link boost_asio.reference.windows__basic_handle.get_implementation [*get_implementation]]]
+ [Get the underlying implementation of the I/O object. ]
   ]
   
   [
- [[link boost_asio.reference.time_traits_lt__ptime__gt_.subtract [*subtract]]]
- [Subtract one time from another. ]
+ [[link boost_asio.reference.windows__basic_handle.get_service [*get_service]]]
+ [Get the service associated with the I/O object. ]
   ]
   
   [
- [[link boost_asio.reference.time_traits_lt__ptime__gt_.to_posix_duration [*to_posix_duration]]]
- [Convert to POSIX duration type. ]
+ [[link boost_asio.reference.windows__basic_handle._basic_handle [*~basic_handle]]]
+ [Protected destructor to prevent deletion through this type. ]
   ]
   
 ]
 
-[heading Requirements]
-
-[*Header: ][^boost/asio/time_traits.hpp]
-
-[*Convenience header: ][^boost/asio.hpp]
-
-
-[section:add time_traits< boost::posix_time::ptime >::add]
-
-[indexterm2 add..time_traits< boost::posix_time::ptime >]
-Add a duration to a time.
-
-
- static time_type add(
- const time_type & t,
- const duration_type & d);
-
+[heading Protected Data Members]
+[table
+ [[Name][Description]]
 
+ [
+ [[link boost_asio.reference.windows__basic_handle.implementation [*implementation]]]
+ [(Deprecated: Use get_implementation().) The underlying implementation of the I/O object. ]
+ ]
 
-[endsect]
+ [
+ [[link boost_asio.reference.windows__basic_handle.service [*service]]]
+ [(Deprecated: Use get_service().) The service associated with the I/O object. ]
+ ]
 
+]
 
+The [link boost_asio.reference.windows__basic_handle `windows::basic_handle`] class template provides the ability to wrap a Windows handle.
 
-[section:duration_type time_traits< boost::posix_time::ptime >::duration_type]
 
-[indexterm2 duration_type..time_traits< boost::posix_time::ptime >]
-The duration type.
+[heading Thread Safety]
+
+[*Distinct] [*objects:] Safe.
 
+[*Shared] [*objects:] Unsafe.
 
- typedef boost::posix_time::time_duration duration_type;
 
 
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/time_traits.hpp]
+[*Header: ][^boost/asio/windows/basic_handle.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
@@ -86196,65 +89986,51 @@
 
 
 
-[section:less_than time_traits< boost::posix_time::ptime >::less_than]
-
-[indexterm2 less_than..time_traits< boost::posix_time::ptime >]
-Test whether one time is less than another.
-
-
- static bool less_than(
- const time_type & t1,
- const time_type & t2);
-
-
-
-[endsect]
-
-
+[section:native windows::basic_handle::native]
 
-[section:now time_traits< boost::posix_time::ptime >::now]
+[indexterm2 native..windows::basic_handle]
+(Deprecated: Use `native_handle()`.) Get the native handle representation.
 
-[indexterm2 now..time_traits< boost::posix_time::ptime >]
-Get the current time.
 
+ native_type native();
 
- static time_type now();
 
+This function may be used to obtain the underlying representation of the handle. This is intended to allow access to native handle functionality that is not otherwise provided.
 
 
 [endsect]
 
 
 
-[section:subtract time_traits< boost::posix_time::ptime >::subtract]
+[section:native_handle windows::basic_handle::native_handle]
 
-[indexterm2 subtract..time_traits< boost::posix_time::ptime >]
-Subtract one time from another.
+[indexterm2 native_handle..windows::basic_handle]
+Get the native handle representation.
 
 
- static duration_type subtract(
- const time_type & t1,
- const time_type & t2);
+ native_handle_type native_handle();
+
 
+This function may be used to obtain the underlying representation of the handle. This is intended to allow access to native handle functionality that is not otherwise provided.
 
 
 [endsect]
 
 
 
-[section:time_type time_traits< boost::posix_time::ptime >::time_type]
+[section:native_handle_type windows::basic_handle::native_handle_type]
 
-[indexterm2 time_type..time_traits< boost::posix_time::ptime >]
-The time type.
+[indexterm2 native_handle_type..windows::basic_handle]
+The native representation of a handle.
 
 
- typedef boost::posix_time::ptime time_type;
+ typedef HandleService::native_handle_type native_handle_type;
 
 
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/time_traits.hpp]
+[*Header: ][^boost/asio/windows/basic_handle.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
@@ -86263,156 +90039,101 @@
 
 
 
-[section:to_posix_duration time_traits< boost::posix_time::ptime >::to_posix_duration]
-
-[indexterm2 to_posix_duration..time_traits< boost::posix_time::ptime >]
-Convert to POSIX duration type.
+[section:native_type windows::basic_handle::native_type]
 
+[indexterm2 native_type..windows::basic_handle]
+(Deprecated: Use native\_handle\_type.) The native representation of a handle.
 
- static boost::posix_time::time_duration to_posix_duration(
- const duration_type & d);
 
+ typedef HandleService::native_handle_type native_type;
 
 
-[endsect]
 
+[heading Requirements]
 
+[*Header: ][^boost/asio/windows/basic_handle.hpp]
 
-[endsect]
+[*Convenience header: ][^boost/asio.hpp]
 
 
-[section:transfer_all transfer_all]
+[endsect]
 
-[indexterm1 transfer_all]
-Return a completion condition function object that indicates that a read or write operation should continue until all of the data has been transferred, or until an error occurs.
 
 
- unspecified transfer_all();
+[section:operator_eq_ windows::basic_handle::operator=]
 
+[indexterm2 operator=..windows::basic_handle]
+Move-assign a [link boost_asio.reference.windows__basic_handle `windows::basic_handle`] from another.
 
-This function is used to create an object, of unspecified type, that meets CompletionCondition requirements.
 
+ basic_handle & operator=(
+ basic_handle && other);
 
-[heading Example]
-
-Reading until a buffer is full:
 
- boost::array<char, 128> buf;
- boost::system::error_code ec;
- std::size_t n = boost::asio::read(
- sock, boost::asio::buffer(buf),
- boost::asio::transfer_all(), ec);
- if (ec)
- {
- // An error occurred.
- }
- else
- {
- // n == 128
- }
+This assignment operator moves a handle from one object to another.
 
 
+[heading Parameters]
+
 
+[variablelist
+
+[[other][The other [link boost_asio.reference.windows__basic_handle `windows::basic_handle`] object from which the move will occur.]]
 
+]
 
 
-[heading Requirements]
+[heading Remarks]
+
+Following the move, the moved-from object is in the same state as if constructed using the `basic_handle(io_service&) constructor`.
 
-[*Header: ][^boost/asio/completion_condition.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
 
-[section:transfer_at_least transfer_at_least]
-
-[indexterm1 transfer_at_least]
-Return a completion condition function object that indicates that a read or write operation should continue until a minimum number of bytes has been transferred, or until an error occurs.
-
-
- unspecified transfer_at_least(
- std::size_t minimum);
-
-
-This function is used to create an object, of unspecified type, that meets CompletionCondition requirements.
-
+[section:service windows::basic_handle::service]
 
-[heading Example]
-
-Reading until a buffer is full or contains at least 64 bytes:
 
- boost::array<char, 128> buf;
- boost::system::error_code ec;
- std::size_t n = boost::asio::read(
- sock, boost::asio::buffer(buf),
- boost::asio::transfer_at_least(64), ec);
- if (ec)
- {
- // An error occurred.
- }
- else
- {
- // n >= 64 && n <= 128
- }
+['Inherited from basic_io_object.]
 
+[indexterm2 service..windows::basic_handle]
+(Deprecated: Use `get_service()`.) The service associated with the I/O object.
 
 
+ service_type & service;
 
 
 
-[heading Requirements]
+[heading Remarks]
+
+Available only for services that do not support movability.
 
-[*Header: ][^boost/asio/completion_condition.hpp]
 
-[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
 
 
-[section:transfer_exactly transfer_exactly]
-
-[indexterm1 transfer_exactly]
-Return a completion condition function object that indicates that a read or write operation should continue until an exact number of bytes has been transferred, or until an error occurs.
-
-
- unspecified transfer_exactly(
- std::size_t size);
-
-
-This function is used to create an object, of unspecified type, that meets CompletionCondition requirements.
-
+[section:service_type windows::basic_handle::service_type]
 
-[heading Example]
-
-Reading until a buffer is full or contains exactly 64 bytes:
 
- boost::array<char, 128> buf;
- boost::system::error_code ec;
- std::size_t n = boost::asio::read(
- sock, boost::asio::buffer(buf),
- boost::asio::transfer_exactly(64), ec);
- if (ec)
- {
- // An error occurred.
- }
- else
- {
- // n == 64
- }
+['Inherited from basic_io_object.]
 
+[indexterm2 service_type..windows::basic_handle]
+The type of the service that will be used to provide I/O operations.
 
 
+ typedef HandleService service_type;
 
 
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/completion_condition.hpp]
+[*Header: ][^boost/asio/windows/basic_handle.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
@@ -86421,55 +90142,32 @@
 
 
 
-[section:use_service use_service]
-
-[indexterm1 use_service]
-
- template<
- typename ``[link boost_asio.reference.Service Service]``>
- Service & use_service(
- io_service & ios);
-
-
-This function is used to locate a service object that corresponds to the given service type. If there is no existing implementation of the service, then the [link boost_asio.reference.io_service `io_service`] will create a new instance of the service.
-
-
-[heading Parameters]
-
-
-[variablelist
-
-[[ios][The [link boost_asio.reference.io_service `io_service`] object that owns the service.]]
-
-]
+[section:_basic_handle windows::basic_handle::~basic_handle]
 
+[indexterm2 ~basic_handle..windows::basic_handle]
+Protected destructor to prevent deletion through this type.
 
-[heading Return Value]
-
-The service interface implementing the specified service type. Ownership of the service interface is not transferred to the caller.
 
+ ~basic_handle();
 
 
-[heading Requirements]
 
-[*Header: ][^boost/asio/io_service.hpp]
+[endsect]
 
-[*Convenience header: ][^boost/asio.hpp]
 
 
 [endsect]
 
-
-[section:windows__basic_handle windows::basic_handle]
+[section:windows__basic_object_handle windows::basic_object_handle]
 
 
-Provides Windows handle functionality.
+Provides object-oriented handle functionality.
 
 
   template<
- typename ``[link boost_asio.reference.HandleService HandleService]``>
- class basic_handle :
- public basic_io_object< HandleService >
+ typename ``[link boost_asio.reference.ObjectHandleService ObjectHandleService]`` = object_handle_service>
+ class basic_object_handle :
+ public windows::basic_handle< ObjectHandleService >
 
 
 [heading Types]
@@ -86478,35 +90176,35 @@
 
   [
 
- [[link boost_asio.reference.windows__basic_handle.implementation_type [*implementation_type]]]
+ [[link boost_asio.reference.windows__basic_object_handle.implementation_type [*implementation_type]]]
     [The underlying implementation type of I/O object. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.windows__basic_handle.lowest_layer_type [*lowest_layer_type]]]
+ [[link boost_asio.reference.windows__basic_object_handle.lowest_layer_type [*lowest_layer_type]]]
     [A basic_handle is always the lowest layer. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.windows__basic_handle.native_handle_type [*native_handle_type]]]
+ [[link boost_asio.reference.windows__basic_object_handle.native_handle_type [*native_handle_type]]]
     [The native representation of a handle. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.windows__basic_handle.native_type [*native_type]]]
+ [[link boost_asio.reference.windows__basic_object_handle.native_type [*native_type]]]
     [(Deprecated: Use native_handle_type.) The native representation of a handle. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.windows__basic_handle.service_type [*service_type]]]
+ [[link boost_asio.reference.windows__basic_object_handle.service_type [*service_type]]]
     [The type of the service that will be used to provide I/O operations. ]
   
   ]
@@ -86518,59 +90216,69 @@
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.windows__basic_handle.assign [*assign]]]
+ [[link boost_asio.reference.windows__basic_object_handle.assign [*assign]]]
     [Assign an existing native handle to the handle. ]
   ]
   
   [
- [[link boost_asio.reference.windows__basic_handle.basic_handle [*basic_handle]]]
- [Construct a basic_handle without opening it.
+ [[link boost_asio.reference.windows__basic_object_handle.async_wait [*async_wait]]]
+ [Start an asynchronous wait on the object handle. ]
+ ]
+
+ [
+ [[link boost_asio.reference.windows__basic_object_handle.basic_object_handle [*basic_object_handle]]]
+ [Construct a basic_object_handle without opening it.
 
- Construct a basic_handle on an existing native handle.
+ Construct a basic_object_handle on an existing native handle.
 
- Move-construct a basic_handle from another. ]
+ Move-construct a basic_object_handle from another. ]
   ]
   
   [
- [[link boost_asio.reference.windows__basic_handle.cancel [*cancel]]]
+ [[link boost_asio.reference.windows__basic_object_handle.cancel [*cancel]]]
     [Cancel all asynchronous operations associated with the handle. ]
   ]
   
   [
- [[link boost_asio.reference.windows__basic_handle.close [*close]]]
+ [[link boost_asio.reference.windows__basic_object_handle.close [*close]]]
     [Close the handle. ]
   ]
   
   [
- [[link boost_asio.reference.windows__basic_handle.get_io_service [*get_io_service]]]
+ [[link boost_asio.reference.windows__basic_object_handle.get_io_service [*get_io_service]]]
     [Get the io_service associated with the object. ]
   ]
   
   [
- [[link boost_asio.reference.windows__basic_handle.is_open [*is_open]]]
+ [[link boost_asio.reference.windows__basic_object_handle.is_open [*is_open]]]
     [Determine whether the handle is open. ]
   ]
   
   [
- [[link boost_asio.reference.windows__basic_handle.lowest_layer [*lowest_layer]]]
+ [[link boost_asio.reference.windows__basic_object_handle.lowest_layer [*lowest_layer]]]
     [Get a reference to the lowest layer.
 
      Get a const reference to the lowest layer. ]
   ]
   
   [
- [[link boost_asio.reference.windows__basic_handle.native [*native]]]
+ [[link boost_asio.reference.windows__basic_object_handle.native [*native]]]
     [(Deprecated: Use native_handle().) Get the native handle representation. ]
   ]
   
   [
- [[link boost_asio.reference.windows__basic_handle.native_handle [*native_handle]]]
+ [[link boost_asio.reference.windows__basic_object_handle.native_handle [*native_handle]]]
     [Get the native handle representation. ]
   ]
   
   [
- [[link boost_asio.reference.windows__basic_handle.operator_eq_ [*operator=]]]
- [Move-assign a basic_handle from another. ]
+ [[link boost_asio.reference.windows__basic_object_handle.operator_eq_ [*operator=]]]
+ [Move-assign a basic_object_handle from another. ]
+ ]
+
+ [
+ [[link boost_asio.reference.windows__basic_object_handle.wait [*wait]]]
+ [Perform a blocking wait on the object handle. ]
   ]
   
 ]
@@ -86580,20 +90288,15 @@
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.windows__basic_handle.get_implementation [*get_implementation]]]
+ [[link boost_asio.reference.windows__basic_object_handle.get_implementation [*get_implementation]]]
     [Get the underlying implementation of the I/O object. ]
   ]
   
   [
- [[link boost_asio.reference.windows__basic_handle.get_service [*get_service]]]
+ [[link boost_asio.reference.windows__basic_object_handle.get_service [*get_service]]]
     [Get the service associated with the I/O object. ]
   ]
   
- [
- [[link boost_asio.reference.windows__basic_handle._basic_handle [*~basic_handle]]]
- [Protected destructor to prevent deletion through this type. ]
- ]
-
 ]
 
 [heading Protected Data Members]
@@ -86601,18 +90304,18 @@
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.windows__basic_handle.implementation [*implementation]]]
+ [[link boost_asio.reference.windows__basic_object_handle.implementation [*implementation]]]
     [(Deprecated: Use get_implementation().) The underlying implementation of the I/O object. ]
   ]
 
   [
- [[link boost_asio.reference.windows__basic_handle.service [*service]]]
+ [[link boost_asio.reference.windows__basic_object_handle.service [*service]]]
     [(Deprecated: Use get_service().) The service associated with the I/O object. ]
   ]
 
 ]
 
-The [link boost_asio.reference.windows__basic_handle `windows::basic_handle`] class template provides the ability to wrap a Windows handle.
+The [link boost_asio.reference.windows__basic_object_handle `windows::basic_object_handle`] class template provides asynchronous and blocking object-oriented handle functionality.
 
 
 [heading Thread Safety]
@@ -86625,27 +90328,30 @@
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/windows/basic_handle.hpp]
+[*Header: ][^boost/asio/windows/basic_object_handle.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
-[section:assign windows::basic_handle::assign]
+[section:assign windows::basic_object_handle::assign]
 
-[indexterm2 assign..windows::basic_handle]
+[indexterm2 assign..windows::basic_object_handle]
 Assign an existing native handle to the handle.
 
 
- void ``[link boost_asio.reference.windows__basic_handle.assign.overload1 assign]``(
+ void ``[link boost_asio.reference.windows__basic_object_handle.assign.overload1 assign]``(
       const native_handle_type & handle);
- `` [''''&raquo;''' [link boost_asio.reference.windows__basic_handle.assign.overload1 more...]]``
+ `` [''''&raquo;''' [link boost_asio.reference.windows__basic_object_handle.assign.overload1 more...]]``
 
- boost::system::error_code ``[link boost_asio.reference.windows__basic_handle.assign.overload2 assign]``(
+ boost::system::error_code ``[link boost_asio.reference.windows__basic_object_handle.assign.overload2 assign]``(
       const native_handle_type & handle,
       boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.windows__basic_handle.assign.overload2 more...]]``
+ `` [''''&raquo;''' [link boost_asio.reference.windows__basic_object_handle.assign.overload2 more...]]``
 
 
-[section:overload1 windows::basic_handle::assign (1 of 2 overloads)]
+[section:overload1 windows::basic_object_handle::assign (1 of 2 overloads)]
+
+
+['Inherited from windows::basic_handle.]
 
 
 Assign an existing native handle to the handle.
@@ -86660,7 +90366,10 @@
 
 
 
-[section:overload2 windows::basic_handle::assign (2 of 2 overloads)]
+[section:overload2 windows::basic_object_handle::assign (2 of 2 overloads)]
+
+
+['Inherited from windows::basic_handle.]
 
 
 Assign an existing native handle to the handle.
@@ -86677,45 +90386,82 @@
 
 [endsect]
 
-[section:basic_handle windows::basic_handle::basic_handle]
 
-[indexterm2 basic_handle..windows::basic_handle]
-Construct a [link boost_asio.reference.windows__basic_handle `windows::basic_handle`] without opening it.
+[section:async_wait windows::basic_object_handle::async_wait]
 
+[indexterm2 async_wait..windows::basic_object_handle]
+Start an asynchronous wait on the object handle.
 
- explicit ``[link boost_asio.reference.windows__basic_handle.basic_handle.overload1 basic_handle]``(
+
+ template<
+ typename ``[link boost_asio.reference.WaitHandler WaitHandler]``>
+ void async_wait(
+ WaitHandler handler);
+
+
+This function is be used to initiate an asynchronous wait against the object handle. It always returns immediately.
+
+
+[heading Parameters]
+
+
+[variablelist
+
+[[handler][The handler to be called when the object handle is set to the signalled state. Copies will be made of the handler as required. The function signature of the handler must be:
+``
+ void handler(
+ const boost::system::error_code& error // Result of operation.
+ );
+``
+Regardless of whether the asynchronous operation completes immediately or not, the handler will not be invoked from within this function. Invocation of the handler will be performed in a manner equivalent to using `boost::asio::io_service::post()`. ]]
+
+]
+
+
+
+
+[endsect]
+
+
+[section:basic_object_handle windows::basic_object_handle::basic_object_handle]
+
+[indexterm2 basic_object_handle..windows::basic_object_handle]
+Construct a [link boost_asio.reference.windows__basic_object_handle `windows::basic_object_handle`] without opening it.
+
+
+ explicit ``[link boost_asio.reference.windows__basic_object_handle.basic_object_handle.overload1 basic_object_handle]``(
       boost::asio::io_service & io_service);
- `` [''''&raquo;''' [link boost_asio.reference.windows__basic_handle.basic_handle.overload1 more...]]``
+ `` [''''&raquo;''' [link boost_asio.reference.windows__basic_object_handle.basic_object_handle.overload1 more...]]``
 
 
-Construct a [link boost_asio.reference.windows__basic_handle `windows::basic_handle`] on an existing native handle.
+Construct a [link boost_asio.reference.windows__basic_object_handle `windows::basic_object_handle`] on an existing native handle.
 
 
- ``[link boost_asio.reference.windows__basic_handle.basic_handle.overload2 basic_handle]``(
+ ``[link boost_asio.reference.windows__basic_object_handle.basic_object_handle.overload2 basic_object_handle]``(
       boost::asio::io_service & io_service,
- const native_handle_type & handle);
- `` [''''&raquo;''' [link boost_asio.reference.windows__basic_handle.basic_handle.overload2 more...]]``
+ const native_handle_type & native_handle);
+ `` [''''&raquo;''' [link boost_asio.reference.windows__basic_object_handle.basic_object_handle.overload2 more...]]``
 
 
-Move-construct a [link boost_asio.reference.windows__basic_handle `windows::basic_handle`] from another.
+Move-construct a [link boost_asio.reference.windows__basic_object_handle `windows::basic_object_handle`] from another.
 
 
- ``[link boost_asio.reference.windows__basic_handle.basic_handle.overload3 basic_handle]``(
- basic_handle && other);
- `` [''''&raquo;''' [link boost_asio.reference.windows__basic_handle.basic_handle.overload3 more...]]``
+ ``[link boost_asio.reference.windows__basic_object_handle.basic_object_handle.overload3 basic_object_handle]``(
+ basic_object_handle && other);
+ `` [''''&raquo;''' [link boost_asio.reference.windows__basic_object_handle.basic_object_handle.overload3 more...]]``
 
 
-[section:overload1 windows::basic_handle::basic_handle (1 of 3 overloads)]
+[section:overload1 windows::basic_object_handle::basic_object_handle (1 of 3 overloads)]
 
 
-Construct a [link boost_asio.reference.windows__basic_handle `windows::basic_handle`] without opening it.
+Construct a [link boost_asio.reference.windows__basic_object_handle `windows::basic_object_handle`] without opening it.
 
 
- basic_handle(
+ basic_object_handle(
       boost::asio::io_service & io_service);
 
 
-This constructor creates a handle without opening it.
+This constructor creates an object handle without opening it.
 
 
 [heading Parameters]
@@ -86723,7 +90469,7 @@
 
 [variablelist
   
-[[io_service][The [link boost_asio.reference.io_service `io_service`] object that the handle will use to dispatch handlers for any asynchronous operations performed on the handle. ]]
+[[io_service][The [link boost_asio.reference.io_service `io_service`] object that the object handle will use to dispatch handlers for any asynchronous operations performed on the handle. ]]
 
 ]
 
@@ -86734,18 +90480,18 @@
 
 
 
-[section:overload2 windows::basic_handle::basic_handle (2 of 3 overloads)]
+[section:overload2 windows::basic_object_handle::basic_object_handle (2 of 3 overloads)]
 
 
-Construct a [link boost_asio.reference.windows__basic_handle `windows::basic_handle`] on an existing native handle.
+Construct a [link boost_asio.reference.windows__basic_object_handle `windows::basic_object_handle`] on an existing native handle.
 
 
- basic_handle(
+ basic_object_handle(
       boost::asio::io_service & io_service,
- const native_handle_type & handle);
+ const native_handle_type & native_handle);
 
 
-This constructor creates a handle object to hold an existing native handle.
+This constructor creates an object handle object to hold an existing native handle.
 
 
 [heading Parameters]
@@ -86753,9 +90499,9 @@
 
 [variablelist
   
-[[io_service][The [link boost_asio.reference.io_service `io_service`] object that the handle will use to dispatch handlers for any asynchronous operations performed on the handle.]]
+[[io_service][The [link boost_asio.reference.io_service `io_service`] object that the object handle will use to dispatch handlers for any asynchronous operations performed on the handle.]]
 
-[[handle][A native handle.]]
+[[native_handle][The new underlying handle implementation.]]
 
 ]
 
@@ -86776,17 +90522,17 @@
 
 
 
-[section:overload3 windows::basic_handle::basic_handle (3 of 3 overloads)]
+[section:overload3 windows::basic_object_handle::basic_object_handle (3 of 3 overloads)]
 
 
-Move-construct a [link boost_asio.reference.windows__basic_handle `windows::basic_handle`] from another.
+Move-construct a [link boost_asio.reference.windows__basic_object_handle `windows::basic_object_handle`] from another.
 
 
- basic_handle(
- basic_handle && other);
+ basic_object_handle(
+ basic_object_handle && other);
 
 
-This constructor moves a handle from one object to another.
+This constructor moves an object handle from one object to another.
 
 
 [heading Parameters]
@@ -86794,14 +90540,14 @@
 
 [variablelist
   
-[[other][The other [link boost_asio.reference.windows__basic_handle `windows::basic_handle`] object from which the move will occur.]]
+[[other][The other [link boost_asio.reference.windows__basic_object_handle `windows::basic_object_handle`] object from which the move will occur.]]
 
 ]
 
 
 [heading Remarks]
       
-Following the move, the moved-from object is in the same state as if constructed using the `basic_handle(io_service&) constructor`.
+Following the move, the moved-from object is in the same state as if constructed using the `basic_object_handle(io_service&) constructor`.
 
 
 
@@ -86811,21 +90557,24 @@
 
 [endsect]
 
-[section:cancel windows::basic_handle::cancel]
+[section:cancel windows::basic_object_handle::cancel]
 
-[indexterm2 cancel..windows::basic_handle]
+[indexterm2 cancel..windows::basic_object_handle]
 Cancel all asynchronous operations associated with the handle.
 
 
- void ``[link boost_asio.reference.windows__basic_handle.cancel.overload1 cancel]``();
- `` [''''&raquo;''' [link boost_asio.reference.windows__basic_handle.cancel.overload1 more...]]``
+ void ``[link boost_asio.reference.windows__basic_object_handle.cancel.overload1 cancel]``();
+ `` [''''&raquo;''' [link boost_asio.reference.windows__basic_object_handle.cancel.overload1 more...]]``
 
- boost::system::error_code ``[link boost_asio.reference.windows__basic_handle.cancel.overload2 cancel]``(
+ boost::system::error_code ``[link boost_asio.reference.windows__basic_object_handle.cancel.overload2 cancel]``(
       boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.windows__basic_handle.cancel.overload2 more...]]``
+ `` [''''&raquo;''' [link boost_asio.reference.windows__basic_object_handle.cancel.overload2 more...]]``
 
 
-[section:overload1 windows::basic_handle::cancel (1 of 2 overloads)]
+[section:overload1 windows::basic_object_handle::cancel (1 of 2 overloads)]
+
+
+['Inherited from windows::basic_handle.]
 
 
 Cancel all asynchronous operations associated with the handle.
@@ -86853,7 +90602,10 @@
 
 
 
-[section:overload2 windows::basic_handle::cancel (2 of 2 overloads)]
+[section:overload2 windows::basic_object_handle::cancel (2 of 2 overloads)]
+
+
+['Inherited from windows::basic_handle.]
 
 
 Cancel all asynchronous operations associated with the handle.
@@ -86883,21 +90635,24 @@
 
 [endsect]
 
-[section:close windows::basic_handle::close]
+[section:close windows::basic_object_handle::close]
 
-[indexterm2 close..windows::basic_handle]
+[indexterm2 close..windows::basic_object_handle]
 Close the handle.
 
 
- void ``[link boost_asio.reference.windows__basic_handle.close.overload1 close]``();
- `` [''''&raquo;''' [link boost_asio.reference.windows__basic_handle.close.overload1 more...]]``
+ void ``[link boost_asio.reference.windows__basic_object_handle.close.overload1 close]``();
+ `` [''''&raquo;''' [link boost_asio.reference.windows__basic_object_handle.close.overload1 more...]]``
 
- boost::system::error_code ``[link boost_asio.reference.windows__basic_handle.close.overload2 close]``(
+ boost::system::error_code ``[link boost_asio.reference.windows__basic_object_handle.close.overload2 close]``(
       boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.windows__basic_handle.close.overload2 more...]]``
+ `` [''''&raquo;''' [link boost_asio.reference.windows__basic_object_handle.close.overload2 more...]]``
 
 
-[section:overload1 windows::basic_handle::close (1 of 2 overloads)]
+[section:overload1 windows::basic_object_handle::close (1 of 2 overloads)]
+
+
+['Inherited from windows::basic_handle.]
 
 
 Close the handle.
@@ -86925,7 +90680,10 @@
 
 
 
-[section:overload2 windows::basic_handle::close (2 of 2 overloads)]
+[section:overload2 windows::basic_object_handle::close (2 of 2 overloads)]
+
+
+['Inherited from windows::basic_handle.]
 
 
 Close the handle.
@@ -86955,20 +90713,20 @@
 
 [endsect]
 
-[section:get_implementation windows::basic_handle::get_implementation]
+[section:get_implementation windows::basic_object_handle::get_implementation]
 
-[indexterm2 get_implementation..windows::basic_handle]
+[indexterm2 get_implementation..windows::basic_object_handle]
 Get the underlying implementation of the I/O object.
 
 
- implementation_type & ``[link boost_asio.reference.windows__basic_handle.get_implementation.overload1 get_implementation]``();
- `` [''''&raquo;''' [link boost_asio.reference.windows__basic_handle.get_implementation.overload1 more...]]``
+ implementation_type & ``[link boost_asio.reference.windows__basic_object_handle.get_implementation.overload1 get_implementation]``();
+ `` [''''&raquo;''' [link boost_asio.reference.windows__basic_object_handle.get_implementation.overload1 more...]]``
 
- const implementation_type & ``[link boost_asio.reference.windows__basic_handle.get_implementation.overload2 get_implementation]``() const;
- `` [''''&raquo;''' [link boost_asio.reference.windows__basic_handle.get_implementation.overload2 more...]]``
+ const implementation_type & ``[link boost_asio.reference.windows__basic_object_handle.get_implementation.overload2 get_implementation]``() const;
+ `` [''''&raquo;''' [link boost_asio.reference.windows__basic_object_handle.get_implementation.overload2 more...]]``
 
 
-[section:overload1 windows::basic_handle::get_implementation (1 of 2 overloads)]
+[section:overload1 windows::basic_object_handle::get_implementation (1 of 2 overloads)]
 
 
 ['Inherited from basic_io_object.]
@@ -86985,7 +90743,7 @@
 
 
 
-[section:overload2 windows::basic_handle::get_implementation (2 of 2 overloads)]
+[section:overload2 windows::basic_object_handle::get_implementation (2 of 2 overloads)]
 
 
 ['Inherited from basic_io_object.]
@@ -87004,12 +90762,12 @@
 [endsect]
 
 
-[section:get_io_service windows::basic_handle::get_io_service]
+[section:get_io_service windows::basic_object_handle::get_io_service]
 
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 get_io_service..windows::basic_handle]
+[indexterm2 get_io_service..windows::basic_object_handle]
 Get the [link boost_asio.reference.io_service `io_service`] associated with the object.
 
 
@@ -87029,20 +90787,20 @@
 [endsect]
 
 
-[section:get_service windows::basic_handle::get_service]
+[section:get_service windows::basic_object_handle::get_service]
 
-[indexterm2 get_service..windows::basic_handle]
+[indexterm2 get_service..windows::basic_object_handle]
 Get the service associated with the I/O object.
 
 
- service_type & ``[link boost_asio.reference.windows__basic_handle.get_service.overload1 get_service]``();
- `` [''''&raquo;''' [link boost_asio.reference.windows__basic_handle.get_service.overload1 more...]]``
+ service_type & ``[link boost_asio.reference.windows__basic_object_handle.get_service.overload1 get_service]``();
+ `` [''''&raquo;''' [link boost_asio.reference.windows__basic_object_handle.get_service.overload1 more...]]``
 
- const service_type & ``[link boost_asio.reference.windows__basic_handle.get_service.overload2 get_service]``() const;
- `` [''''&raquo;''' [link boost_asio.reference.windows__basic_handle.get_service.overload2 more...]]``
+ const service_type & ``[link boost_asio.reference.windows__basic_object_handle.get_service.overload2 get_service]``() const;
+ `` [''''&raquo;''' [link boost_asio.reference.windows__basic_object_handle.get_service.overload2 more...]]``
 
 
-[section:overload1 windows::basic_handle::get_service (1 of 2 overloads)]
+[section:overload1 windows::basic_object_handle::get_service (1 of 2 overloads)]
 
 
 ['Inherited from basic_io_object.]
@@ -87059,7 +90817,7 @@
 
 
 
-[section:overload2 windows::basic_handle::get_service (2 of 2 overloads)]
+[section:overload2 windows::basic_object_handle::get_service (2 of 2 overloads)]
 
 
 ['Inherited from basic_io_object.]
@@ -87078,12 +90836,12 @@
 [endsect]
 
 
-[section:implementation windows::basic_handle::implementation]
+[section:implementation windows::basic_object_handle::implementation]
 
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 implementation..windows::basic_handle]
+[indexterm2 implementation..windows::basic_object_handle]
 (Deprecated: Use `get_implementation()`.) The underlying implementation of the I/O object.
 
 
@@ -87095,12 +90853,12 @@
 
 
 
-[section:implementation_type windows::basic_handle::implementation_type]
+[section:implementation_type windows::basic_object_handle::implementation_type]
 
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 implementation_type..windows::basic_handle]
+[indexterm2 implementation_type..windows::basic_object_handle]
 The underlying implementation type of I/O object.
 
 
@@ -87110,7 +90868,7 @@
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/windows/basic_handle.hpp]
+[*Header: ][^boost/asio/windows/basic_object_handle.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
@@ -87119,9 +90877,12 @@
 
 
 
-[section:is_open windows::basic_handle::is_open]
+[section:is_open windows::basic_object_handle::is_open]
 
-[indexterm2 is_open..windows::basic_handle]
+
+['Inherited from windows::basic_handle.]
+
+[indexterm2 is_open..windows::basic_object_handle]
 Determine whether the handle is open.
 
 
@@ -87132,24 +90893,27 @@
 [endsect]
 
 
-[section:lowest_layer windows::basic_handle::lowest_layer]
+[section:lowest_layer windows::basic_object_handle::lowest_layer]
 
-[indexterm2 lowest_layer..windows::basic_handle]
+[indexterm2 lowest_layer..windows::basic_object_handle]
 Get a reference to the lowest layer.
 
 
- lowest_layer_type & ``[link boost_asio.reference.windows__basic_handle.lowest_layer.overload1 lowest_layer]``();
- `` [''''&raquo;''' [link boost_asio.reference.windows__basic_handle.lowest_layer.overload1 more...]]``
+ lowest_layer_type & ``[link boost_asio.reference.windows__basic_object_handle.lowest_layer.overload1 lowest_layer]``();
+ `` [''''&raquo;''' [link boost_asio.reference.windows__basic_object_handle.lowest_layer.overload1 more...]]``
 
 
 Get a const reference to the lowest layer.
 
 
- const lowest_layer_type & ``[link boost_asio.reference.windows__basic_handle.lowest_layer.overload2 lowest_layer]``() const;
- `` [''''&raquo;''' [link boost_asio.reference.windows__basic_handle.lowest_layer.overload2 more...]]``
+ const lowest_layer_type & ``[link boost_asio.reference.windows__basic_object_handle.lowest_layer.overload2 lowest_layer]``() const;
+ `` [''''&raquo;''' [link boost_asio.reference.windows__basic_object_handle.lowest_layer.overload2 more...]]``
 
 
-[section:overload1 windows::basic_handle::lowest_layer (1 of 2 overloads)]
+[section:overload1 windows::basic_object_handle::lowest_layer (1 of 2 overloads)]
+
+
+['Inherited from windows::basic_handle.]
 
 
 Get a reference to the lowest layer.
@@ -87172,7 +90936,10 @@
 
 
 
-[section:overload2 windows::basic_handle::lowest_layer (2 of 2 overloads)]
+[section:overload2 windows::basic_object_handle::lowest_layer (2 of 2 overloads)]
+
+
+['Inherited from windows::basic_handle.]
 
 
 Get a const reference to the lowest layer.
@@ -87197,13 +90964,16 @@
 [endsect]
 
 
-[section:lowest_layer_type windows::basic_handle::lowest_layer_type]
+[section:lowest_layer_type windows::basic_object_handle::lowest_layer_type]
 
-[indexterm2 lowest_layer_type..windows::basic_handle]
+
+['Inherited from windows::basic_handle.]
+
+[indexterm2 lowest_layer_type..windows::basic_object_handle]
 A [link boost_asio.reference.windows__basic_handle `windows::basic_handle`] is always the lowest layer.
 
 
- typedef basic_handle< HandleService > lowest_layer_type;
+ typedef basic_handle< ObjectHandleService > lowest_layer_type;
 
 
 [heading Types]
@@ -87360,7 +91130,7 @@
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/windows/basic_handle.hpp]
+[*Header: ][^boost/asio/windows/basic_object_handle.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
@@ -87369,9 +91139,12 @@
 
 
 
-[section:native windows::basic_handle::native]
+[section:native windows::basic_object_handle::native]
 
-[indexterm2 native..windows::basic_handle]
+
+['Inherited from windows::basic_handle.]
+
+[indexterm2 native..windows::basic_object_handle]
 (Deprecated: Use `native_handle()`.) Get the native handle representation.
 
 
@@ -87385,9 +91158,12 @@
 
 
 
-[section:native_handle windows::basic_handle::native_handle]
+[section:native_handle windows::basic_object_handle::native_handle]
 
-[indexterm2 native_handle..windows::basic_handle]
+
+['Inherited from windows::basic_handle.]
+
+[indexterm2 native_handle..windows::basic_object_handle]
 Get the native handle representation.
 
 
@@ -87401,19 +91177,19 @@
 
 
 
-[section:native_handle_type windows::basic_handle::native_handle_type]
+[section:native_handle_type windows::basic_object_handle::native_handle_type]
 
-[indexterm2 native_handle_type..windows::basic_handle]
+[indexterm2 native_handle_type..windows::basic_object_handle]
 The native representation of a handle.
 
 
- typedef HandleService::native_handle_type native_handle_type;
+ typedef ObjectHandleService::native_handle_type native_handle_type;
 
 
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/windows/basic_handle.hpp]
+[*Header: ][^boost/asio/windows/basic_object_handle.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
@@ -87422,19 +91198,22 @@
 
 
 
-[section:native_type windows::basic_handle::native_type]
+[section:native_type windows::basic_object_handle::native_type]
 
-[indexterm2 native_type..windows::basic_handle]
+
+['Inherited from windows::basic_handle.]
+
+[indexterm2 native_type..windows::basic_object_handle]
 (Deprecated: Use native\_handle\_type.) The native representation of a handle.
 
 
- typedef HandleService::native_handle_type native_type;
+ typedef ObjectHandleService::native_handle_type native_type;
 
 
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/windows/basic_handle.hpp]
+[*Header: ][^boost/asio/windows/basic_object_handle.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
@@ -87443,17 +91222,17 @@
 
 
 
-[section:operator_eq_ windows::basic_handle::operator=]
+[section:operator_eq_ windows::basic_object_handle::operator=]
 
-[indexterm2 operator=..windows::basic_handle]
-Move-assign a [link boost_asio.reference.windows__basic_handle `windows::basic_handle`] from another.
+[indexterm2 operator=..windows::basic_object_handle]
+Move-assign a [link boost_asio.reference.windows__basic_object_handle `windows::basic_object_handle`] from another.
 
 
- basic_handle & operator=(
- basic_handle && other);
+ basic_object_handle & operator=(
+ basic_object_handle && other);
 
 
-This assignment operator moves a handle from one object to another.
+This assignment operator moves an object handle from one object to another.
 
 
 [heading Parameters]
@@ -87461,14 +91240,14 @@
 
 [variablelist
   
-[[other][The other [link boost_asio.reference.windows__basic_handle `windows::basic_handle`] object from which the move will occur.]]
+[[other][The other [link boost_asio.reference.windows__basic_object_handle `windows::basic_object_handle`] object from which the move will occur.]]
 
 ]
 
 
 [heading Remarks]
       
-Following the move, the moved-from object is in the same state as if constructed using the `basic_handle(io_service&) constructor`.
+Following the move, the moved-from object is in the same state as if constructed using the `basic_object_handle(io_service&) constructor`.
 
 
 
@@ -87477,12 +91256,12 @@
 
 
 
-[section:service windows::basic_handle::service]
+[section:service windows::basic_object_handle::service]
 
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 service..windows::basic_handle]
+[indexterm2 service..windows::basic_object_handle]
 (Deprecated: Use `get_service()`.) The service associated with the I/O object.
 
 
@@ -87501,22 +91280,22 @@
 
 
 
-[section:service_type windows::basic_handle::service_type]
+[section:service_type windows::basic_object_handle::service_type]
 
 
 ['Inherited from basic_io_object.]
 
-[indexterm2 service_type..windows::basic_handle]
+[indexterm2 service_type..windows::basic_object_handle]
 The type of the service that will be used to provide I/O operations.
 
 
- typedef HandleService service_type;
+ typedef ObjectHandleService service_type;
 
 
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/windows/basic_handle.hpp]
+[*Header: ][^boost/asio/windows/basic_object_handle.hpp]
 
 [*Convenience header: ][^boost/asio.hpp]
 
@@ -87524,20 +91303,78 @@
 [endsect]
 
 
+[section:wait windows::basic_object_handle::wait]
 
-[section:_basic_handle windows::basic_handle::~basic_handle]
+[indexterm2 wait..windows::basic_object_handle]
+Perform a blocking wait on the object handle.
 
-[indexterm2 ~basic_handle..windows::basic_handle]
-Protected destructor to prevent deletion through this type.
+
+ void ``[link boost_asio.reference.windows__basic_object_handle.wait.overload1 wait]``();
+ `` [''''&raquo;''' [link boost_asio.reference.windows__basic_object_handle.wait.overload1 more...]]``
+
+ void ``[link boost_asio.reference.windows__basic_object_handle.wait.overload2 wait]``(
+ boost::system::error_code & ec);
+ `` [''''&raquo;''' [link boost_asio.reference.windows__basic_object_handle.wait.overload2 more...]]``
+
+
+[section:overload1 windows::basic_object_handle::wait (1 of 2 overloads)]
+
+
+Perform a blocking wait on the object handle.
+
+
+ void wait();
+
+
+This function is used to wait for the object handle to be set to the signalled state. This function blocks and does not return until the object handle has been set to the signalled state.
+
+
+[heading Exceptions]
+
+
+[variablelist
+
+[[boost::system::system_error][Thrown on failure. ]]
+
+]
 
 
- ~basic_handle();
+
+
+[endsect]
+
+
+
+[section:overload2 windows::basic_object_handle::wait (2 of 2 overloads)]
+
+
+Perform a blocking wait on the object handle.
+
+
+ void wait(
+ boost::system::error_code & ec);
+
+
+This function is used to wait for the object handle to be set to the signalled state. This function blocks and does not return until the object handle has been set to the signalled state.
+
+
+[heading Parameters]
+
+
+[variablelist
+
+[[ec][Set to indicate what error occurred, if any. ]]
+
+]
+
 
 
 
 [endsect]
 
 
+[endsect]
+
 
 [endsect]
 
@@ -90532,6 +94369,566 @@
 
 [endsect]
 
+
+[section:windows__object_handle windows::object_handle]
+
+[indexterm1 windows::object_handle]
+Typedef for the typical usage of an object handle.
+
+
+ typedef basic_object_handle object_handle;
+
+
+[heading Types]
+[table
+ [[Name][Description]]
+
+ [
+
+ [[link boost_asio.reference.windows__basic_object_handle.implementation_type [*implementation_type]]]
+ [The underlying implementation type of I/O object. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.windows__basic_object_handle.lowest_layer_type [*lowest_layer_type]]]
+ [A basic_handle is always the lowest layer. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.windows__basic_object_handle.native_handle_type [*native_handle_type]]]
+ [The native representation of a handle. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.windows__basic_object_handle.native_type [*native_type]]]
+ [(Deprecated: Use native_handle_type.) The native representation of a handle. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.windows__basic_object_handle.service_type [*service_type]]]
+ [The type of the service that will be used to provide I/O operations. ]
+
+ ]
+
+]
+
+[heading Member Functions]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.windows__basic_object_handle.assign [*assign]]]
+ [Assign an existing native handle to the handle. ]
+ ]
+
+ [
+ [[link boost_asio.reference.windows__basic_object_handle.async_wait [*async_wait]]]
+ [Start an asynchronous wait on the object handle. ]
+ ]
+
+ [
+ [[link boost_asio.reference.windows__basic_object_handle.basic_object_handle [*basic_object_handle]]]
+ [Construct a basic_object_handle without opening it.
+
+ Construct a basic_object_handle on an existing native handle.
+
+ Move-construct a basic_object_handle from another. ]
+ ]
+
+ [
+ [[link boost_asio.reference.windows__basic_object_handle.cancel [*cancel]]]
+ [Cancel all asynchronous operations associated with the handle. ]
+ ]
+
+ [
+ [[link boost_asio.reference.windows__basic_object_handle.close [*close]]]
+ [Close the handle. ]
+ ]
+
+ [
+ [[link boost_asio.reference.windows__basic_object_handle.get_io_service [*get_io_service]]]
+ [Get the io_service associated with the object. ]
+ ]
+
+ [
+ [[link boost_asio.reference.windows__basic_object_handle.is_open [*is_open]]]
+ [Determine whether the handle is open. ]
+ ]
+
+ [
+ [[link boost_asio.reference.windows__basic_object_handle.lowest_layer [*lowest_layer]]]
+ [Get a reference to the lowest layer.
+
+ Get a const reference to the lowest layer. ]
+ ]
+
+ [
+ [[link boost_asio.reference.windows__basic_object_handle.native [*native]]]
+ [(Deprecated: Use native_handle().) Get the native handle representation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.windows__basic_object_handle.native_handle [*native_handle]]]
+ [Get the native handle representation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.windows__basic_object_handle.operator_eq_ [*operator=]]]
+ [Move-assign a basic_object_handle from another. ]
+ ]
+
+ [
+ [[link boost_asio.reference.windows__basic_object_handle.wait [*wait]]]
+ [Perform a blocking wait on the object handle. ]
+ ]
+
+]
+
+[heading Protected Member Functions]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.windows__basic_object_handle.get_implementation [*get_implementation]]]
+ [Get the underlying implementation of the I/O object. ]
+ ]
+
+ [
+ [[link boost_asio.reference.windows__basic_object_handle.get_service [*get_service]]]
+ [Get the service associated with the I/O object. ]
+ ]
+
+]
+
+[heading Protected Data Members]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.windows__basic_object_handle.implementation [*implementation]]]
+ [(Deprecated: Use get_implementation().) The underlying implementation of the I/O object. ]
+ ]
+
+ [
+ [[link boost_asio.reference.windows__basic_object_handle.service [*service]]]
+ [(Deprecated: Use get_service().) The service associated with the I/O object. ]
+ ]
+
+]
+
+The [link boost_asio.reference.windows__basic_object_handle `windows::basic_object_handle`] class template provides asynchronous and blocking object-oriented handle functionality.
+
+
+[heading Thread Safety]
+
+[*Distinct] [*objects:] Safe.
+
+[*Shared] [*objects:] Unsafe.
+
+
+
+
+[heading Requirements]
+
+[*Header: ][^boost/asio/windows/object_handle.hpp]
+
+[*Convenience header: ][^boost/asio.hpp]
+
+
+[endsect]
+
+
+[section:windows__object_handle_service windows::object_handle_service]
+
+
+Default service implementation for an object handle.
+
+
+ class object_handle_service :
+ public io_service::service
+
+
+[heading Types]
+[table
+ [[Name][Description]]
+
+ [
+
+ [[link boost_asio.reference.windows__object_handle_service.implementation_type [*implementation_type]]]
+ [The type of an object handle implementation. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.windows__object_handle_service.native_handle_type [*native_handle_type]]]
+ [The native handle type. ]
+
+ ]
+
+]
+
+[heading Member Functions]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.windows__object_handle_service.assign [*assign]]]
+ [Assign an existing native handle to an object handle. ]
+ ]
+
+ [
+ [[link boost_asio.reference.windows__object_handle_service.async_wait [*async_wait]]]
+ [Start an asynchronous wait. ]
+ ]
+
+ [
+ [[link boost_asio.reference.windows__object_handle_service.cancel [*cancel]]]
+ [Cancel all asynchronous operations associated with the handle. ]
+ ]
+
+ [
+ [[link boost_asio.reference.windows__object_handle_service.close [*close]]]
+ [Close an object handle implementation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.windows__object_handle_service.construct [*construct]]]
+ [Construct a new object handle implementation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.windows__object_handle_service.destroy [*destroy]]]
+ [Destroy an object handle implementation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.windows__object_handle_service.get_io_service [*get_io_service]]]
+ [Get the io_service object that owns the service. ]
+ ]
+
+ [
+ [[link boost_asio.reference.windows__object_handle_service.is_open [*is_open]]]
+ [Determine whether the handle is open. ]
+ ]
+
+ [
+ [[link boost_asio.reference.windows__object_handle_service.move_assign [*move_assign]]]
+ [Move-assign from another object handle implementation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.windows__object_handle_service.move_construct [*move_construct]]]
+ [Move-construct a new object handle implementation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.windows__object_handle_service.native_handle [*native_handle]]]
+ [Get the native handle implementation. ]
+ ]
+
+ [
+ [[link boost_asio.reference.windows__object_handle_service.object_handle_service [*object_handle_service]]]
+ [Construct a new object handle service for the specified io_service. ]
+ ]
+
+ [
+ [[link boost_asio.reference.windows__object_handle_service.wait [*wait]]]
+ []
+ ]
+
+]
+
+[heading Data Members]
+[table
+ [[Name][Description]]
+
+ [
+ [[link boost_asio.reference.windows__object_handle_service.id [*id]]]
+ [The unique service identifier. ]
+ ]
+
+]
+
+[heading Requirements]
+
+[*Header: ][^boost/asio/windows/object_handle_service.hpp]
+
+[*Convenience header: ][^boost/asio.hpp]
+
+
+[section:assign windows::object_handle_service::assign]
+
+[indexterm2 assign..windows::object_handle_service]
+Assign an existing native handle to an object handle.
+
+
+ boost::system::error_code assign(
+ implementation_type & impl,
+ const native_handle_type & handle,
+ boost::system::error_code & ec);
+
+
+
+[endsect]
+
+
+
+[section:async_wait windows::object_handle_service::async_wait]
+
+[indexterm2 async_wait..windows::object_handle_service]
+Start an asynchronous wait.
+
+
+ template<
+ typename ``[link boost_asio.reference.WaitHandler WaitHandler]``>
+ void async_wait(
+ implementation_type & impl,
+ WaitHandler handler);
+
+
+
+[endsect]
+
+
+
+[section:cancel windows::object_handle_service::cancel]
+
+[indexterm2 cancel..windows::object_handle_service]
+Cancel all asynchronous operations associated with the handle.
+
+
+ boost::system::error_code cancel(
+ implementation_type & impl,
+ boost::system::error_code & ec);
+
+
+
+[endsect]
+
+
+
+[section:close windows::object_handle_service::close]
+
+[indexterm2 close..windows::object_handle_service]
+Close an object handle implementation.
+
+
+ boost::system::error_code close(
+ implementation_type & impl,
+ boost::system::error_code & ec);
+
+
+
+[endsect]
+
+
+
+[section:construct windows::object_handle_service::construct]
+
+[indexterm2 construct..windows::object_handle_service]
+Construct a new object handle implementation.
+
+
+ void construct(
+ implementation_type & impl);
+
+
+
+[endsect]
+
+
+
+[section:destroy windows::object_handle_service::destroy]
+
+[indexterm2 destroy..windows::object_handle_service]
+Destroy an object handle implementation.
+
+
+ void destroy(
+ implementation_type & impl);
+
+
+
+[endsect]
+
+
+
+[section:get_io_service windows::object_handle_service::get_io_service]
+
+
+['Inherited from io_service.]
+
+[indexterm2 get_io_service..windows::object_handle_service]
+Get the [link boost_asio.reference.io_service `io_service`] object that owns the service.
+
+
+ boost::asio::io_service & get_io_service();
+
+
+
+[endsect]
+
+
+
+[section:id windows::object_handle_service::id]
+
+[indexterm2 id..windows::object_handle_service]
+The unique service identifier.
+
+
+ static boost::asio::io_service::id id;
+
+
+
+[endsect]
+
+
+
+[section:implementation_type windows::object_handle_service::implementation_type]
+
+[indexterm2 implementation_type..windows::object_handle_service]
+The type of an object handle implementation.
+
+
+ typedef implementation_defined implementation_type;
+
+
+
+[heading Requirements]
+
+[*Header: ][^boost/asio/windows/object_handle_service.hpp]
+
+[*Convenience header: ][^boost/asio.hpp]
+
+
+[endsect]
+
+
+
+[section:is_open windows::object_handle_service::is_open]
+
+[indexterm2 is_open..windows::object_handle_service]
+Determine whether the handle is open.
+
+
+ bool is_open(
+ const implementation_type & impl) const;
+
+
+
+[endsect]
+
+
+
+[section:move_assign windows::object_handle_service::move_assign]
+
+[indexterm2 move_assign..windows::object_handle_service]
+Move-assign from another object handle implementation.
+
+
+ void move_assign(
+ implementation_type & impl,
+ object_handle_service & other_service,
+ implementation_type & other_impl);
+
+
+
+[endsect]
+
+
+
+[section:move_construct windows::object_handle_service::move_construct]
+
+[indexterm2 move_construct..windows::object_handle_service]
+Move-construct a new object handle implementation.
+
+
+ void move_construct(
+ implementation_type & impl,
+ implementation_type & other_impl);
+
+
+
+[endsect]
+
+
+
+[section:native_handle windows::object_handle_service::native_handle]
+
+[indexterm2 native_handle..windows::object_handle_service]
+Get the native handle implementation.
+
+
+ native_handle_type native_handle(
+ implementation_type & impl);
+
+
+
+[endsect]
+
+
+
+[section:native_handle_type windows::object_handle_service::native_handle_type]
+
+[indexterm2 native_handle_type..windows::object_handle_service]
+The native handle type.
+
+
+ typedef implementation_defined native_handle_type;
+
+
+
+[heading Requirements]
+
+[*Header: ][^boost/asio/windows/object_handle_service.hpp]
+
+[*Convenience header: ][^boost/asio.hpp]
+
+
+[endsect]
+
+
+
+[section:object_handle_service windows::object_handle_service::object_handle_service]
+
+[indexterm2 object_handle_service..windows::object_handle_service]
+Construct a new object handle service for the specified [link boost_asio.reference.io_service `io_service`].
+
+
+ object_handle_service(
+ boost::asio::io_service & io_service);
+
+
+
+[endsect]
+
+
+
+[section:wait windows::object_handle_service::wait]
+
+[indexterm2 wait..windows::object_handle_service]
+
+ void wait(
+ implementation_type & impl,
+ boost::system::error_code & ec);
+
+
+
+[endsect]
+
+
+
+[endsect]
+
 [section:windows__overlapped_ptr windows::overlapped_ptr]
 
 

Modified: branches/quickbook-dev/libs/asio/doc/reference.xsl
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/reference.xsl (original)
+++ branches/quickbook-dev/libs/asio/doc/reference.xsl 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
 
 <!--
- Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 
   Distributed under the Boost Software License, Version 1.0. (See accompanying
   file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -26,7 +26,7 @@
 -->
 <xsl:template match="/doxygen">
 <xsl:text>[/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -60,6 +60,7 @@
 [include requirements/IoControlCommand.qbk]
 [include requirements/IoObjectService.qbk]
 [include requirements/MutableBufferSequence.qbk]
+[include requirements/ObjectHandleService.qbk]
 [include requirements/Protocol.qbk]
 [include requirements/RandomAccessHandleService.qbk]
 [include requirements/RawSocketService.qbk]
@@ -85,7 +86,9 @@
 [include requirements/SyncWriteStream.qbk]
 [include requirements/TimeTraits.qbk]
 [include requirements/TimerService.qbk]
+[include requirements/WaitableTimerService.qbk]
 [include requirements/WaitHandler.qbk]
+[include requirements/WaitTraits.qbk]
 [include requirements/WriteHandler.qbk]
 
 </xsl:text>
@@ -732,6 +735,15 @@
     <xsl:when test="contains($file, 'boost/asio/ssl')">
       <xsl:text>[^boost/asio/ssl.hpp]</xsl:text>
     </xsl:when>
+ <xsl:when test="contains($file, 'boost/asio/high_resolution_timer')">
+ <xsl:text>None</xsl:text>
+ </xsl:when>
+ <xsl:when test="contains($file, 'boost/asio/steady_timer')">
+ <xsl:text>None</xsl:text>
+ </xsl:when>
+ <xsl:when test="contains($file, 'boost/asio/system_timer')">
+ <xsl:text>None</xsl:text>
+ </xsl:when>
     <xsl:otherwise>
       <xsl:text>[^boost/asio.hpp]</xsl:text>
     </xsl:otherwise>
@@ -1405,6 +1417,9 @@
         <xsl:when test="declname = 'ByteType'">
           <xsl:value-of select="declname"/>
         </xsl:when>
+ <xsl:when test="declname = 'Clock'">
+ <xsl:value-of select="declname"/>
+ </xsl:when>
         <xsl:when test="declname = 'CompletionCondition'">
           <xsl:value-of select="declname"/>
         </xsl:when>

Modified: branches/quickbook-dev/libs/asio/doc/requirements.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/requirements.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/requirements.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/requirements/AcceptHandler.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/requirements/AcceptHandler.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/requirements/AcceptHandler.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/requirements/AsyncRandomAccessReadDevice.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/requirements/AsyncRandomAccessReadDevice.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/requirements/AsyncRandomAccessReadDevice.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/requirements/AsyncRandomAccessWriteDevice.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/requirements/AsyncRandomAccessWriteDevice.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/requirements/AsyncRandomAccessWriteDevice.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/requirements/AsyncReadStream.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/requirements/AsyncReadStream.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/requirements/AsyncReadStream.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/requirements/AsyncWriteStream.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/requirements/AsyncWriteStream.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/requirements/AsyncWriteStream.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/requirements/CompletionHandler.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/requirements/CompletionHandler.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/requirements/CompletionHandler.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/requirements/ComposedConnectHandler.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/requirements/ComposedConnectHandler.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/requirements/ComposedConnectHandler.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/requirements/ConnectHandler.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/requirements/ConnectHandler.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/requirements/ConnectHandler.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/requirements/ConstBufferSequence.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/requirements/ConstBufferSequence.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/requirements/ConstBufferSequence.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/requirements/ConvertibleToConstBuffer.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/requirements/ConvertibleToConstBuffer.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/requirements/ConvertibleToConstBuffer.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/requirements/ConvertibleToMutableBuffer.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/requirements/ConvertibleToMutableBuffer.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/requirements/ConvertibleToMutableBuffer.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/requirements/DatagramSocketService.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/requirements/DatagramSocketService.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/requirements/DatagramSocketService.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/requirements/DescriptorService.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/requirements/DescriptorService.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/requirements/DescriptorService.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/requirements/Endpoint.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/requirements/Endpoint.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/requirements/Endpoint.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/requirements/GettableSerialPortOption.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/requirements/GettableSerialPortOption.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/requirements/GettableSerialPortOption.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/requirements/GettableSocketOption.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/requirements/GettableSocketOption.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/requirements/GettableSocketOption.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/requirements/HandleService.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/requirements/HandleService.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/requirements/HandleService.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/requirements/Handler.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/requirements/Handler.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/requirements/Handler.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/requirements/HandshakeHandler.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/requirements/HandshakeHandler.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/requirements/HandshakeHandler.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/requirements/InternetProtocol.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/requirements/InternetProtocol.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/requirements/InternetProtocol.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/requirements/IoControlCommand.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/requirements/IoControlCommand.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/requirements/IoControlCommand.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/requirements/IoObjectService.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/requirements/IoObjectService.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/requirements/IoObjectService.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/requirements/MutableBufferSequence.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/requirements/MutableBufferSequence.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/requirements/MutableBufferSequence.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/requirements/Protocol.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/requirements/Protocol.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/requirements/Protocol.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/requirements/RandomAccessHandleService.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/requirements/RandomAccessHandleService.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/requirements/RandomAccessHandleService.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/requirements/RawSocketService.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/requirements/RawSocketService.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/requirements/RawSocketService.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/requirements/ReadHandler.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/requirements/ReadHandler.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/requirements/ReadHandler.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/requirements/ResolveHandler.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/requirements/ResolveHandler.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/requirements/ResolveHandler.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/requirements/ResolverService.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/requirements/ResolverService.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/requirements/ResolverService.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/requirements/SeqPacketSocketService.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/requirements/SeqPacketSocketService.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/requirements/SeqPacketSocketService.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/requirements/SerialPortService.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/requirements/SerialPortService.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/requirements/SerialPortService.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/requirements/Service.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/requirements/Service.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/requirements/Service.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/requirements/SettableSerialPortOption.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/requirements/SettableSerialPortOption.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/requirements/SettableSerialPortOption.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/requirements/SettableSocketOption.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/requirements/SettableSocketOption.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/requirements/SettableSocketOption.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/requirements/ShutdownHandler.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/requirements/ShutdownHandler.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/requirements/ShutdownHandler.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/requirements/SignalHandler.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/requirements/SignalHandler.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/requirements/SignalHandler.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/requirements/SignalSetService.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/requirements/SignalSetService.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/requirements/SignalSetService.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/requirements/SocketAcceptorService.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/requirements/SocketAcceptorService.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/requirements/SocketAcceptorService.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/requirements/SocketService.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/requirements/SocketService.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/requirements/SocketService.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/requirements/StreamDescriptorService.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/requirements/StreamDescriptorService.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/requirements/StreamDescriptorService.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/requirements/StreamHandleService.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/requirements/StreamHandleService.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/requirements/StreamHandleService.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/requirements/StreamSocketService.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/requirements/StreamSocketService.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/requirements/StreamSocketService.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/requirements/SyncRandomAccessReadDevice.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/requirements/SyncRandomAccessReadDevice.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/requirements/SyncRandomAccessReadDevice.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/requirements/SyncRandomAccessWriteDevice.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/requirements/SyncRandomAccessWriteDevice.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/requirements/SyncRandomAccessWriteDevice.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/requirements/SyncReadStream.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/requirements/SyncReadStream.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/requirements/SyncReadStream.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/requirements/SyncWriteStream.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/requirements/SyncWriteStream.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/requirements/SyncWriteStream.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/requirements/TimeTraits.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/requirements/TimeTraits.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/requirements/TimeTraits.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/requirements/TimerService.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/requirements/TimerService.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/requirements/TimerService.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/requirements/WaitHandler.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/requirements/WaitHandler.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/requirements/WaitHandler.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/requirements/WriteHandler.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/requirements/WriteHandler.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/requirements/WriteHandler.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/requirements/asynchronous_operations.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/requirements/asynchronous_operations.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/requirements/asynchronous_operations.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/std_exception_dox.txt
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/std_exception_dox.txt (original)
+++ branches/quickbook-dev/libs/asio/doc/std_exception_dox.txt 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/tutorial.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/tutorial.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/tutorial.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -142,7 +142,7 @@
   ``''''''``// timer.cpp
   ``''''''``// ~~~~~~~~~
   ``''''''``//
- ``''''''``// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ ``''''''``// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
   ``''''''``//
   ``''''''``// Distributed under the Boost Software License, Version 1.0. (See accompanying
   ``''''''``// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -242,7 +242,7 @@
   ``''''''``// timer.cpp
   ``''''''``// ~~~~~~~~~
   ``''''''``//
- ``''''''``// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ ``''''''``// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
   ``''''''``//
   ``''''''``// Distributed under the Boost Software License, Version 1.0. (See accompanying
   ``''''''``// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -390,7 +390,7 @@
   ``''''''``// timer.cpp
   ``''''''``// ~~~~~~~~~
   ``''''''``//
- ``''''''``// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ ``''''''``// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
   ``''''''``//
   ``''''''``// Distributed under the Boost Software License, Version 1.0. (See accompanying
   ``''''''``// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -551,7 +551,7 @@
   ``''''''``// timer.cpp
   ``''''''``// ~~~~~~~~~
   ``''''''``//
- ``''''''``// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ ``''''''``// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
   ``''''''``//
   ``''''''``// Distributed under the Boost Software License, Version 1.0. (See accompanying
   ``''''''``// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -751,7 +751,7 @@
   ``''''''``// timer.cpp
   ``''''''``// ~~~~~~~~~
   ``''''''``//
- ``''''''``// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ ``''''''``// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
   ``''''''``//
   ``''''''``// Distributed under the Boost Software License, Version 1.0. (See accompanying
   ``''''''``// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -959,7 +959,7 @@
   ``''''''``// client.cpp
   ``''''''``// ~~~~~~~~~~
   ``''''''``//
- ``''''''``// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ ``''''''``// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
   ``''''''``//
   ``''''''``// Distributed under the Boost Software License, Version 1.0. (See accompanying
   ``''''''``// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -1118,7 +1118,7 @@
   ``''''''``// server.cpp
   ``''''''``// ~~~~~~~~~~
   ``''''''``//
- ``''''''``// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ ``''''''``// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
   ``''''''``//
   ``''''''``// Distributed under the Boost Software License, Version 1.0. (See accompanying
   ``''''''``// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -1370,7 +1370,7 @@
   ``''''''``// server.cpp
   ``''''''``// ~~~~~~~~~~
   ``''''''``//
- ``''''''``// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ ``''''''``// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
   ``''''''``//
   ``''''''``// Distributed under the Boost Software License, Version 1.0. (See accompanying
   ``''''''``// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -1591,7 +1591,7 @@
   ``''''''``// client.cpp
   ``''''''``// ~~~~~~~~~~
   ``''''''``//
- ``''''''``// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ ``''''''``// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
   ``''''''``//
   ``''''''``// Distributed under the Boost Software License, Version 1.0. (See accompanying
   ``''''''``// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -1734,7 +1734,7 @@
   ``''''''``// server.cpp
   ``''''''``// ~~~~~~~~~~
   ``''''''``//
- ``''''''``// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ ``''''''``// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
   ``''''''``//
   ``''''''``// Distributed under the Boost Software License, Version 1.0. (See accompanying
   ``''''''``// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -1952,7 +1952,7 @@
   ``''''''``// server.cpp
   ``''''''``// ~~~~~~~~~~
   ``''''''``//
- ``''''''``// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ ``''''''``// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
   ``''''''``//
   ``''''''``// Distributed under the Boost Software License, Version 1.0. (See accompanying
   ``''''''``// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -2231,7 +2231,7 @@
   ``''''''``// server.cpp
   ``''''''``// ~~~~~~~~~~
   ``''''''``//
- ``''''''``// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ ``''''''``// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
   ``''''''``//
   ``''''''``// Distributed under the Boost Software License, Version 1.0. (See accompanying
   ``''''''``// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/tutorial.xsl
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/tutorial.xsl (original)
+++ branches/quickbook-dev/libs/asio/doc/tutorial.xsl 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
 
 <!--
- Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 
   Distributed under the Boost Software License, Version 1.0. (See accompanying
   file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -20,7 +20,7 @@
 
 <xsl:template match="/doxygen">
 <xsl:text>[/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/doc/using.qbk
==============================================================================
--- branches/quickbook-dev/libs/asio/doc/using.qbk (original)
+++ branches/quickbook-dev/libs/asio/doc/using.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- / Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+ / Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
  /
  / Distributed under the Boost Software License, Version 1.0. (See accompanying
  / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/allocation/Jamfile
==============================================================================
--- branches/quickbook-dev/libs/asio/example/allocation/Jamfile (original)
+++ branches/quickbook-dev/libs/asio/example/allocation/Jamfile 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/allocation/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/asio/example/allocation/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/asio/example/allocation/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/allocation/server.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/allocation/server.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/allocation/server.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // server.cpp
 // ~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/buffers/Jamfile
==============================================================================
--- branches/quickbook-dev/libs/asio/example/buffers/Jamfile (original)
+++ branches/quickbook-dev/libs/asio/example/buffers/Jamfile 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/buffers/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/asio/example/buffers/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/asio/example/buffers/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/buffers/reference_counted.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/buffers/reference_counted.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/buffers/reference_counted.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // reference_counted.cpp
 // ~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/chat/Jamfile
==============================================================================
--- branches/quickbook-dev/libs/asio/example/chat/Jamfile (original)
+++ branches/quickbook-dev/libs/asio/example/chat/Jamfile 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/chat/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/asio/example/chat/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/asio/example/chat/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/chat/chat_client.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/chat/chat_client.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/chat/chat_client.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // chat_client.cpp
 // ~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/chat/chat_message.hpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/chat/chat_message.hpp (original)
+++ branches/quickbook-dev/libs/asio/example/chat/chat_message.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // chat_message.hpp
 // ~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/chat/chat_server.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/chat/chat_server.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/chat/chat_server.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // chat_server.cpp
 // ~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/chat/posix_chat_client.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/chat/posix_chat_client.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/chat/posix_chat_client.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // posix_chat_client.cpp
 // ~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/echo/Jamfile
==============================================================================
--- branches/quickbook-dev/libs/asio/example/echo/Jamfile (original)
+++ branches/quickbook-dev/libs/asio/example/echo/Jamfile 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/echo/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/asio/example/echo/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/asio/example/echo/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/echo/async_tcp_echo_server.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/echo/async_tcp_echo_server.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/echo/async_tcp_echo_server.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // async_tcp_echo_server.cpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/echo/async_udp_echo_server.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/echo/async_udp_echo_server.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/echo/async_udp_echo_server.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // async_udp_echo_server.cpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/echo/blocking_tcp_echo_client.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/echo/blocking_tcp_echo_client.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/echo/blocking_tcp_echo_client.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // blocking_tcp_echo_client.cpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/echo/blocking_tcp_echo_server.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/echo/blocking_tcp_echo_server.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/echo/blocking_tcp_echo_server.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // blocking_tcp_echo_server.cpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/echo/blocking_udp_echo_client.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/echo/blocking_udp_echo_client.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/echo/blocking_udp_echo_client.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // blocking_udp_echo_client.cpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/echo/blocking_udp_echo_server.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/echo/blocking_udp_echo_server.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/echo/blocking_udp_echo_server.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // blocking_udp_echo_server.cpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/fork/Jamfile
==============================================================================
--- branches/quickbook-dev/libs/asio/example/fork/Jamfile (original)
+++ branches/quickbook-dev/libs/asio/example/fork/Jamfile 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/fork/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/asio/example/fork/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/asio/example/fork/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/fork/daemon.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/fork/daemon.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/fork/daemon.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // daemon.cpp
 // ~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/fork/process_per_connection.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/fork/process_per_connection.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/fork/process_per_connection.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // process_per_connection.cpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/client/Jamfile
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/client/Jamfile (original)
+++ branches/quickbook-dev/libs/asio/example/http/client/Jamfile 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/client/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/client/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/asio/example/http/client/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/client/async_client.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/client/async_client.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/http/client/async_client.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // async_client.cpp
 // ~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/client/sync_client.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/client/sync_client.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/http/client/sync_client.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // sync_client.cpp
 // ~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/doc_root/data_1K.html
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/doc_root/data_1K.html (original)
+++ branches/quickbook-dev/libs/asio/example/http/doc_root/data_1K.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 <!--
-Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 
 Distributed under the Boost Software License, Version 1.0. (See accompanying
 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/doc_root/data_2K.html
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/doc_root/data_2K.html (original)
+++ branches/quickbook-dev/libs/asio/example/http/doc_root/data_2K.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 <!--
-Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 
 Distributed under the Boost Software License, Version 1.0. (See accompanying
 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/doc_root/data_4K.html
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/doc_root/data_4K.html (original)
+++ branches/quickbook-dev/libs/asio/example/http/doc_root/data_4K.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 <!--
-Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 
 Distributed under the Boost Software License, Version 1.0. (See accompanying
 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/doc_root/data_8K.html
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/doc_root/data_8K.html (original)
+++ branches/quickbook-dev/libs/asio/example/http/doc_root/data_8K.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 <!--
-Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 
 Distributed under the Boost Software License, Version 1.0. (See accompanying
 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/server/Jamfile
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/server/Jamfile (original)
+++ branches/quickbook-dev/libs/asio/example/http/server/Jamfile 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/server/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/server/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/asio/example/http/server/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/server/connection.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/server/connection.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/http/server/connection.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // connection.cpp
 // ~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/server/connection.hpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/server/connection.hpp (original)
+++ branches/quickbook-dev/libs/asio/example/http/server/connection.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // connection.hpp
 // ~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/server/connection_manager.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/server/connection_manager.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/http/server/connection_manager.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // connection_manager.cpp
 // ~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/server/connection_manager.hpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/server/connection_manager.hpp (original)
+++ branches/quickbook-dev/libs/asio/example/http/server/connection_manager.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // connection_manager.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/server/header.hpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/server/header.hpp (original)
+++ branches/quickbook-dev/libs/asio/example/http/server/header.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // header.hpp
 // ~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/server/main.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/server/main.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/http/server/main.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // main.cpp
 // ~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/server/mime_types.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/server/mime_types.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/http/server/mime_types.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // mime_types.cpp
 // ~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/server/mime_types.hpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/server/mime_types.hpp (original)
+++ branches/quickbook-dev/libs/asio/example/http/server/mime_types.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // mime_types.hpp
 // ~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/server/reply.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/server/reply.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/http/server/reply.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // reply.cpp
 // ~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/server/reply.hpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/server/reply.hpp (original)
+++ branches/quickbook-dev/libs/asio/example/http/server/reply.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // reply.hpp
 // ~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/server/request.hpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/server/request.hpp (original)
+++ branches/quickbook-dev/libs/asio/example/http/server/request.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // request.hpp
 // ~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/server/request_handler.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/server/request_handler.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/http/server/request_handler.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // request_handler.cpp
 // ~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/server/request_handler.hpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/server/request_handler.hpp (original)
+++ branches/quickbook-dev/libs/asio/example/http/server/request_handler.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // request_handler.hpp
 // ~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/server/request_parser.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/server/request_parser.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/http/server/request_parser.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // request_parser.cpp
 // ~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/server/request_parser.hpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/server/request_parser.hpp (original)
+++ branches/quickbook-dev/libs/asio/example/http/server/request_parser.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // request_parser.hpp
 // ~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/server/server.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/server/server.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/http/server/server.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // server.cpp
 // ~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/server/server.hpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/server/server.hpp (original)
+++ branches/quickbook-dev/libs/asio/example/http/server/server.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // server.hpp
 // ~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/server2/Jamfile
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/server2/Jamfile (original)
+++ branches/quickbook-dev/libs/asio/example/http/server2/Jamfile 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/server2/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/server2/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/asio/example/http/server2/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/server2/connection.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/server2/connection.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/http/server2/connection.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // connection.cpp
 // ~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/server2/connection.hpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/server2/connection.hpp (original)
+++ branches/quickbook-dev/libs/asio/example/http/server2/connection.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // connection.hpp
 // ~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/server2/header.hpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/server2/header.hpp (original)
+++ branches/quickbook-dev/libs/asio/example/http/server2/header.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // header.hpp
 // ~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/server2/io_service_pool.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/server2/io_service_pool.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/http/server2/io_service_pool.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // io_service_pool.cpp
 // ~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/server2/io_service_pool.hpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/server2/io_service_pool.hpp (original)
+++ branches/quickbook-dev/libs/asio/example/http/server2/io_service_pool.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // io_service_pool.hpp
 // ~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/server2/main.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/server2/main.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/http/server2/main.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // main.cpp
 // ~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/server2/mime_types.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/server2/mime_types.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/http/server2/mime_types.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // mime_types.cpp
 // ~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/server2/mime_types.hpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/server2/mime_types.hpp (original)
+++ branches/quickbook-dev/libs/asio/example/http/server2/mime_types.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // mime_types.hpp
 // ~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/server2/reply.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/server2/reply.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/http/server2/reply.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // reply.cpp
 // ~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/server2/reply.hpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/server2/reply.hpp (original)
+++ branches/quickbook-dev/libs/asio/example/http/server2/reply.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // reply.hpp
 // ~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/server2/request.hpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/server2/request.hpp (original)
+++ branches/quickbook-dev/libs/asio/example/http/server2/request.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // request.hpp
 // ~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/server2/request_handler.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/server2/request_handler.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/http/server2/request_handler.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // request_handler.cpp
 // ~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/server2/request_handler.hpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/server2/request_handler.hpp (original)
+++ branches/quickbook-dev/libs/asio/example/http/server2/request_handler.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // request_handler.hpp
 // ~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/server2/request_parser.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/server2/request_parser.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/http/server2/request_parser.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // request_parser.cpp
 // ~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/server2/request_parser.hpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/server2/request_parser.hpp (original)
+++ branches/quickbook-dev/libs/asio/example/http/server2/request_parser.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // request_parser.hpp
 // ~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/server2/server.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/server2/server.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/http/server2/server.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // server.cpp
 // ~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/server2/server.hpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/server2/server.hpp (original)
+++ branches/quickbook-dev/libs/asio/example/http/server2/server.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // server.hpp
 // ~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/server3/Jamfile
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/server3/Jamfile (original)
+++ branches/quickbook-dev/libs/asio/example/http/server3/Jamfile 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/server3/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/server3/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/asio/example/http/server3/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/server3/connection.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/server3/connection.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/http/server3/connection.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // connection.cpp
 // ~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/server3/connection.hpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/server3/connection.hpp (original)
+++ branches/quickbook-dev/libs/asio/example/http/server3/connection.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // connection.hpp
 // ~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/server3/header.hpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/server3/header.hpp (original)
+++ branches/quickbook-dev/libs/asio/example/http/server3/header.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // header.hpp
 // ~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/server3/main.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/server3/main.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/http/server3/main.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // main.cpp
 // ~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/server3/mime_types.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/server3/mime_types.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/http/server3/mime_types.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // mime_types.cpp
 // ~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/server3/mime_types.hpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/server3/mime_types.hpp (original)
+++ branches/quickbook-dev/libs/asio/example/http/server3/mime_types.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // mime_types.hpp
 // ~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/server3/reply.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/server3/reply.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/http/server3/reply.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // reply.cpp
 // ~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/server3/reply.hpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/server3/reply.hpp (original)
+++ branches/quickbook-dev/libs/asio/example/http/server3/reply.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // reply.hpp
 // ~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/server3/request.hpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/server3/request.hpp (original)
+++ branches/quickbook-dev/libs/asio/example/http/server3/request.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // request.hpp
 // ~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/server3/request_handler.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/server3/request_handler.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/http/server3/request_handler.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // request_handler.cpp
 // ~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/server3/request_handler.hpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/server3/request_handler.hpp (original)
+++ branches/quickbook-dev/libs/asio/example/http/server3/request_handler.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // request_handler.hpp
 // ~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/server3/request_parser.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/server3/request_parser.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/http/server3/request_parser.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // request_parser.cpp
 // ~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/server3/request_parser.hpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/server3/request_parser.hpp (original)
+++ branches/quickbook-dev/libs/asio/example/http/server3/request_parser.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // request_parser.hpp
 // ~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/server3/server.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/server3/server.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/http/server3/server.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // server.cpp
 // ~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/server3/server.hpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/server3/server.hpp (original)
+++ branches/quickbook-dev/libs/asio/example/http/server3/server.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // server.hpp
 // ~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/server4/Jamfile
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/server4/Jamfile (original)
+++ branches/quickbook-dev/libs/asio/example/http/server4/Jamfile 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/server4/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/server4/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/asio/example/http/server4/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/server4/coroutine.hpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/server4/coroutine.hpp (original)
+++ branches/quickbook-dev/libs/asio/example/http/server4/coroutine.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // coroutine.hpp
 // ~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/server4/file_handler.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/server4/file_handler.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/http/server4/file_handler.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // file_handler.cpp
 // ~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/server4/file_handler.hpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/server4/file_handler.hpp (original)
+++ branches/quickbook-dev/libs/asio/example/http/server4/file_handler.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // file_handler.hpp
 // ~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/server4/header.hpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/server4/header.hpp (original)
+++ branches/quickbook-dev/libs/asio/example/http/server4/header.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // header.hpp
 // ~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/server4/main.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/server4/main.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/http/server4/main.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // main.cpp
 // ~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/server4/mime_types.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/server4/mime_types.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/http/server4/mime_types.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // mime_types.cpp
 // ~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/server4/mime_types.hpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/server4/mime_types.hpp (original)
+++ branches/quickbook-dev/libs/asio/example/http/server4/mime_types.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // mime_types.hpp
 // ~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/server4/reply.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/server4/reply.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/http/server4/reply.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // reply.cpp
 // ~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/server4/reply.hpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/server4/reply.hpp (original)
+++ branches/quickbook-dev/libs/asio/example/http/server4/reply.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // reply.hpp
 // ~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/server4/request.hpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/server4/request.hpp (original)
+++ branches/quickbook-dev/libs/asio/example/http/server4/request.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // request.hpp
 // ~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/server4/request_parser.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/server4/request_parser.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/http/server4/request_parser.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // request_parser.cpp
 // ~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/server4/request_parser.hpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/server4/request_parser.hpp (original)
+++ branches/quickbook-dev/libs/asio/example/http/server4/request_parser.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // request_parser.hpp
 // ~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/server4/server.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/server4/server.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/http/server4/server.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // server.cpp
 // ~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/server4/server.hpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/server4/server.hpp (original)
+++ branches/quickbook-dev/libs/asio/example/http/server4/server.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // server.hpp
 // ~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/server4/unyield.hpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/server4/unyield.hpp (original)
+++ branches/quickbook-dev/libs/asio/example/http/server4/unyield.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // unyield.hpp
 // ~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/http/server4/yield.hpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/http/server4/yield.hpp (original)
+++ branches/quickbook-dev/libs/asio/example/http/server4/yield.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // yield.hpp
 // ~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/icmp/Jamfile
==============================================================================
--- branches/quickbook-dev/libs/asio/example/icmp/Jamfile (original)
+++ branches/quickbook-dev/libs/asio/example/icmp/Jamfile 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/icmp/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/asio/example/icmp/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/asio/example/icmp/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/icmp/icmp_header.hpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/icmp/icmp_header.hpp (original)
+++ branches/quickbook-dev/libs/asio/example/icmp/icmp_header.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // icmp_header.hpp
 // ~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/icmp/ipv4_header.hpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/icmp/ipv4_header.hpp (original)
+++ branches/quickbook-dev/libs/asio/example/icmp/ipv4_header.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // ipv4_header.hpp
 // ~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/icmp/ping.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/icmp/ping.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/icmp/ping.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // ping.cpp
 // ~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/invocation/Jamfile
==============================================================================
--- branches/quickbook-dev/libs/asio/example/invocation/Jamfile (original)
+++ branches/quickbook-dev/libs/asio/example/invocation/Jamfile 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/invocation/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/asio/example/invocation/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/asio/example/invocation/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/invocation/prioritised_handlers.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/invocation/prioritised_handlers.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/invocation/prioritised_handlers.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // prioritised_handlers.cpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/iostreams/Jamfile
==============================================================================
--- branches/quickbook-dev/libs/asio/example/iostreams/Jamfile (original)
+++ branches/quickbook-dev/libs/asio/example/iostreams/Jamfile 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/iostreams/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/asio/example/iostreams/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/asio/example/iostreams/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/iostreams/daytime_client.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/iostreams/daytime_client.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/iostreams/daytime_client.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // daytime_client.cpp
 // ~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/iostreams/daytime_server.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/iostreams/daytime_server.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/iostreams/daytime_server.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // daytime_server.cpp
 // ~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/iostreams/http_client.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/iostreams/http_client.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/iostreams/http_client.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // sync_client.cpp
 // ~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/local/Jamfile
==============================================================================
--- branches/quickbook-dev/libs/asio/example/local/Jamfile (original)
+++ branches/quickbook-dev/libs/asio/example/local/Jamfile 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/local/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/asio/example/local/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/asio/example/local/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/local/connect_pair.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/local/connect_pair.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/local/connect_pair.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // connect_pair.cpp
 // ~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/local/iostream_client.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/local/iostream_client.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/local/iostream_client.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // stream_client.cpp
 // ~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/local/stream_client.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/local/stream_client.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/local/stream_client.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // stream_client.cpp
 // ~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/local/stream_server.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/local/stream_server.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/local/stream_server.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // stream_server.cpp
 // ~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/multicast/Jamfile
==============================================================================
--- branches/quickbook-dev/libs/asio/example/multicast/Jamfile (original)
+++ branches/quickbook-dev/libs/asio/example/multicast/Jamfile 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/multicast/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/asio/example/multicast/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/asio/example/multicast/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/multicast/receiver.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/multicast/receiver.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/multicast/receiver.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // receiver.cpp
 // ~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/multicast/sender.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/multicast/sender.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/multicast/sender.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // sender.cpp
 // ~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/nonblocking/Jamfile
==============================================================================
--- branches/quickbook-dev/libs/asio/example/nonblocking/Jamfile (original)
+++ branches/quickbook-dev/libs/asio/example/nonblocking/Jamfile 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/nonblocking/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/asio/example/nonblocking/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/asio/example/nonblocking/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/nonblocking/third_party_lib.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/nonblocking/third_party_lib.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/nonblocking/third_party_lib.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // third_party_lib.cpp
 // ~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/porthopper/Jamfile
==============================================================================
--- branches/quickbook-dev/libs/asio/example/porthopper/Jamfile (original)
+++ branches/quickbook-dev/libs/asio/example/porthopper/Jamfile 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/porthopper/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/asio/example/porthopper/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/asio/example/porthopper/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/porthopper/client.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/porthopper/client.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/porthopper/client.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // client.cpp
 // ~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/porthopper/protocol.hpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/porthopper/protocol.hpp (original)
+++ branches/quickbook-dev/libs/asio/example/porthopper/protocol.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // protocol.hpp
 // ~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/porthopper/server.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/porthopper/server.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/porthopper/server.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // server.cpp
 // ~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/serialization/Jamfile
==============================================================================
--- branches/quickbook-dev/libs/asio/example/serialization/Jamfile (original)
+++ branches/quickbook-dev/libs/asio/example/serialization/Jamfile 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/serialization/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/asio/example/serialization/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/asio/example/serialization/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/serialization/client.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/serialization/client.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/serialization/client.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // client.cpp
 // ~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/serialization/connection.hpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/serialization/connection.hpp (original)
+++ branches/quickbook-dev/libs/asio/example/serialization/connection.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // connection.hpp
 // ~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/serialization/server.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/serialization/server.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/serialization/server.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // server.cpp
 // ~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/serialization/stock.hpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/serialization/stock.hpp (original)
+++ branches/quickbook-dev/libs/asio/example/serialization/stock.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // stock.hpp
 // ~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/services/Jamfile
==============================================================================
--- branches/quickbook-dev/libs/asio/example/services/Jamfile (original)
+++ branches/quickbook-dev/libs/asio/example/services/Jamfile 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/services/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/asio/example/services/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/asio/example/services/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/services/basic_logger.hpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/services/basic_logger.hpp (original)
+++ branches/quickbook-dev/libs/asio/example/services/basic_logger.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // basic_logger.hpp
 // ~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/services/daytime_client.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/services/daytime_client.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/services/daytime_client.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // daytime_client.cpp
 // ~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/services/logger.hpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/services/logger.hpp (original)
+++ branches/quickbook-dev/libs/asio/example/services/logger.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // logger.hpp
 // ~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/services/logger_service.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/services/logger_service.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/services/logger_service.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // logger_service.cpp
 // ~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/services/logger_service.hpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/services/logger_service.hpp (original)
+++ branches/quickbook-dev/libs/asio/example/services/logger_service.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // logger_service.hpp
 // ~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/services/stream_socket_service.hpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/services/stream_socket_service.hpp (original)
+++ branches/quickbook-dev/libs/asio/example/services/stream_socket_service.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // stream_socket_service.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/socks4/Jamfile
==============================================================================
--- branches/quickbook-dev/libs/asio/example/socks4/Jamfile (original)
+++ branches/quickbook-dev/libs/asio/example/socks4/Jamfile 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/socks4/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/asio/example/socks4/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/asio/example/socks4/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/socks4/socks4.hpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/socks4/socks4.hpp (original)
+++ branches/quickbook-dev/libs/asio/example/socks4/socks4.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // socks4.hpp
 // ~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/socks4/sync_client.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/socks4/sync_client.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/socks4/sync_client.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // sync_client.cpp
 // ~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/ssl/Jamfile
==============================================================================
--- branches/quickbook-dev/libs/asio/example/ssl/Jamfile (original)
+++ branches/quickbook-dev/libs/asio/example/ssl/Jamfile 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/ssl/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/asio/example/ssl/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/asio/example/ssl/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/ssl/README
==============================================================================
--- branches/quickbook-dev/libs/asio/example/ssl/README (original)
+++ branches/quickbook-dev/libs/asio/example/ssl/README 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 
 
 -------------------------------------------------------------------------------
-Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 
 Distributed under the Boost Software License, Version 1.0. (See accompanying
 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/ssl/client.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/ssl/client.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/ssl/client.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // client.cpp
 // ~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/ssl/server.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/ssl/server.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/ssl/server.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // server.cpp
 // ~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/timeouts/Jamfile
==============================================================================
--- branches/quickbook-dev/libs/asio/example/timeouts/Jamfile (original)
+++ branches/quickbook-dev/libs/asio/example/timeouts/Jamfile 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/timeouts/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/asio/example/timeouts/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/asio/example/timeouts/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/timeouts/async_tcp_client.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/timeouts/async_tcp_client.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/timeouts/async_tcp_client.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // async_tcp_client.cpp
 // ~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/timeouts/blocking_tcp_client.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/timeouts/blocking_tcp_client.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/timeouts/blocking_tcp_client.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // blocking_tcp_client.cpp
 // ~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/timeouts/blocking_udp_client.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/timeouts/blocking_udp_client.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/timeouts/blocking_udp_client.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // blocking_udp_client.cpp
 // ~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/timeouts/server.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/timeouts/server.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/timeouts/server.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // server.cpp
 // ~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/timers/Jamfile
==============================================================================
--- branches/quickbook-dev/libs/asio/example/timers/Jamfile (original)
+++ branches/quickbook-dev/libs/asio/example/timers/Jamfile 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/timers/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/asio/example/timers/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/asio/example/timers/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/timers/tick_count_timer.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/timers/tick_count_timer.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/timers/tick_count_timer.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // tick_count_timer.cpp
 // ~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/timers/time_t_timer.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/timers/time_t_timer.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/timers/time_t_timer.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // time_t_timer.cpp
 // ~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/tutorial/Jamfile
==============================================================================
--- branches/quickbook-dev/libs/asio/example/tutorial/Jamfile (original)
+++ branches/quickbook-dev/libs/asio/example/tutorial/Jamfile 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/tutorial/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/asio/example/tutorial/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/asio/example/tutorial/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/tutorial/daytime1/client.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/tutorial/daytime1/client.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/tutorial/daytime1/client.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // client.cpp
 // ~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/tutorial/daytime2/server.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/tutorial/daytime2/server.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/tutorial/daytime2/server.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // server.cpp
 // ~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/tutorial/daytime3/server.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/tutorial/daytime3/server.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/tutorial/daytime3/server.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // server.cpp
 // ~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/tutorial/daytime4/client.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/tutorial/daytime4/client.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/tutorial/daytime4/client.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // client.cpp
 // ~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/tutorial/daytime5/server.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/tutorial/daytime5/server.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/tutorial/daytime5/server.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // server.cpp
 // ~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/tutorial/daytime6/server.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/tutorial/daytime6/server.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/tutorial/daytime6/server.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // server.cpp
 // ~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/tutorial/daytime7/server.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/tutorial/daytime7/server.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/tutorial/daytime7/server.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // server.cpp
 // ~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/tutorial/daytime_dox.txt
==============================================================================
--- branches/quickbook-dev/libs/asio/example/tutorial/daytime_dox.txt (original)
+++ branches/quickbook-dev/libs/asio/example/tutorial/daytime_dox.txt 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/tutorial/index_dox.txt
==============================================================================
--- branches/quickbook-dev/libs/asio/example/tutorial/index_dox.txt (original)
+++ branches/quickbook-dev/libs/asio/example/tutorial/index_dox.txt 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/tutorial/timer1/timer.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/tutorial/timer1/timer.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/tutorial/timer1/timer.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // timer.cpp
 // ~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/tutorial/timer2/timer.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/tutorial/timer2/timer.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/tutorial/timer2/timer.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // timer.cpp
 // ~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/tutorial/timer3/timer.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/tutorial/timer3/timer.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/tutorial/timer3/timer.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // timer.cpp
 // ~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/tutorial/timer4/timer.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/tutorial/timer4/timer.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/tutorial/timer4/timer.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // timer.cpp
 // ~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/tutorial/timer5/timer.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/tutorial/timer5/timer.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/tutorial/timer5/timer.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // timer.cpp
 // ~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/tutorial/timer_dox.txt
==============================================================================
--- branches/quickbook-dev/libs/asio/example/tutorial/timer_dox.txt (original)
+++ branches/quickbook-dev/libs/asio/example/tutorial/timer_dox.txt 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/windows/Jamfile
==============================================================================
--- branches/quickbook-dev/libs/asio/example/windows/Jamfile (original)
+++ branches/quickbook-dev/libs/asio/example/windows/Jamfile 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/windows/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/asio/example/windows/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/asio/example/windows/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/example/windows/transmit_file.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/example/windows/transmit_file.cpp (original)
+++ branches/quickbook-dev/libs/asio/example/windows/transmit_file.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // transmit_file.cpp
 // ~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/Jamfile
==============================================================================
--- branches/quickbook-dev/libs/asio/test/Jamfile (original)
+++ branches/quickbook-dev/libs/asio/test/Jamfile 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/asio/test/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/asio/test/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -77,6 +77,8 @@
   [ link basic_stream_socket.cpp : $(USE_SELECT) : basic_stream_socket_select ]
   [ link basic_streambuf.cpp ]
   [ link basic_streambuf.cpp : $(USE_SELECT) : basic_streambuf_select ]
+ [ link basic_waitable_timer.cpp ]
+ [ link basic_waitable_timer.cpp : $(USE_SELECT) : basic_waitable_timer_select ]
   [ run buffer.cpp ]
   [ run buffer.cpp : : : $(USE_SELECT) : buffer_select ]
   [ run buffered_read_stream.cpp ]
@@ -99,6 +101,8 @@
   [ run deadline_timer.cpp : : : $(USE_SELECT) : deadline_timer_select ]
   [ run error.cpp ]
   [ run error.cpp : : : $(USE_SELECT) : error_select ]
+ [ link high_resolution_timer.cpp ]
+ [ link high_resolution_timer.cpp : $(USE_SELECT) : high_resolution_timer_select ]
   [ run io_service.cpp ]
   [ run io_service.cpp : : : $(USE_SELECT) : io_service_select ]
   [ link ip/address.cpp : : ip_address ]
@@ -175,20 +179,34 @@
   [ link socket_acceptor_service.cpp : $(USE_SELECT) : socket_acceptor_service_select ]
   [ run socket_base.cpp ]
   [ run socket_base.cpp : : : $(USE_SELECT) : socket_base_select ]
+ [ link steady_timer.cpp ]
+ [ link steady_timer.cpp : $(USE_SELECT) : steady_timer_select ]
   [ run strand.cpp ]
   [ run strand.cpp : : : $(USE_SELECT) : strand_select ]
   [ link stream_socket_service.cpp ]
   [ link stream_socket_service.cpp : $(USE_SELECT) : stream_socket_service_select ]
   [ run streambuf.cpp ]
   [ run streambuf.cpp : : : $(USE_SELECT) : streambuf_select ]
+ [ link system_timer.cpp ]
+ [ link system_timer.cpp : $(USE_SELECT) : system_timer_select ]
   [ link time_traits.cpp ]
   [ link time_traits.cpp : $(USE_SELECT) : time_traits_select ]
+ [ link wait_traits.cpp ]
+ [ link wait_traits.cpp : $(USE_SELECT) : wait_traits_select ]
+ [ link waitable_timer_service.cpp ]
+ [ link waitable_timer_service.cpp : $(USE_SELECT) : waitable_timer_service_select ]
   [ link windows/basic_handle.cpp : : windows_basic_handle ]
   [ link windows/basic_handle.cpp : $(USE_SELECT) : windows_basic_handle_select ]
+ [ link windows/basic_object_handle.cpp : : windows_basic_object_handle ]
+ [ link windows/basic_object_handle.cpp : $(USE_SELECT) : windows_basic_object_handle_select ]
   [ link windows/basic_random_access_handle.cpp : : windows_basic_random_access_handle ]
   [ link windows/basic_random_access_handle.cpp : $(USE_SELECT) : windows_basic_random_access_handle_select ]
   [ link windows/basic_stream_handle.cpp : : windows_basic_stream_handle ]
   [ link windows/basic_stream_handle.cpp : $(USE_SELECT) : windows_basic_stream_handle_select ]
+ [ link windows/object_handle.cpp : : windows_object_handle ]
+ [ link windows/object_handle.cpp : $(USE_SELECT) : windows_object_handle_select ]
+ [ link windows/object_handle_service.cpp : : windows_object_handle_service ]
+ [ link windows/object_handle_service.cpp : $(USE_SELECT) : windows_object_handle_service_select ]
   [ link windows/overlapped_ptr.cpp : : windows_overlapped_ptr ]
   [ link windows/overlapped_ptr.cpp : $(USE_SELECT) : windows_overlapped_ptr_select ]
   [ link windows/random_access_handle.cpp : : windows_random_access_handle ]

Modified: branches/quickbook-dev/libs/asio/test/archetypes/gettable_socket_option.hpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/archetypes/gettable_socket_option.hpp (original)
+++ branches/quickbook-dev/libs/asio/test/archetypes/gettable_socket_option.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // gettable_socket_option.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/archetypes/io_control_command.hpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/archetypes/io_control_command.hpp (original)
+++ branches/quickbook-dev/libs/asio/test/archetypes/io_control_command.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // io_control_command.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/archetypes/settable_socket_option.hpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/archetypes/settable_socket_option.hpp (original)
+++ branches/quickbook-dev/libs/asio/test/archetypes/settable_socket_option.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // settable_socket_option.hpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/basic_datagram_socket.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/basic_datagram_socket.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/basic_datagram_socket.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // basic_datagram_socket.cpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/basic_deadline_timer.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/basic_deadline_timer.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/basic_deadline_timer.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // basic_deadline_timer.cpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/basic_raw_socket.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/basic_raw_socket.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/basic_raw_socket.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // basic_raw_socket.cpp
 // ~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/basic_seq_packet_socket.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/basic_seq_packet_socket.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/basic_seq_packet_socket.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // basic_seq_packet_socket.cpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/basic_serial_port.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/basic_serial_port.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/basic_serial_port.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // basic_serial_port.cpp
 // ~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 // Copyright (c) 2008 Rep Invariant Systems, Inc. (info_at_[hidden])
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying

Modified: branches/quickbook-dev/libs/asio/test/basic_signal_set.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/basic_signal_set.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/basic_signal_set.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // basic_signal_set.cpp
 // ~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/basic_socket_acceptor.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/basic_socket_acceptor.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/basic_socket_acceptor.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // basic_socket_acceptor.cpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/basic_stream_socket.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/basic_stream_socket.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/basic_stream_socket.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // basic_stream_socket.cpp
 // ~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/basic_streambuf.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/basic_streambuf.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/basic_streambuf.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // basic_streambuf.cpp
 // ~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/buffer.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/buffer.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/buffer.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // buffer.cpp
 // ~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/buffered_read_stream.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/buffered_read_stream.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/buffered_read_stream.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // buffered_read_stream.cpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/buffered_stream.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/buffered_stream.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/buffered_stream.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // buffered_stream.cpp
 // ~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/buffered_write_stream.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/buffered_write_stream.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/buffered_write_stream.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // buffered_write_stream.cpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/buffers_iterator.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/buffers_iterator.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/buffers_iterator.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // buffers_iterator.cpp
 // ~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/completion_condition.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/completion_condition.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/completion_condition.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // completion_condition.cpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/connect.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/connect.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/connect.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // connect.cpp
 // ~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/datagram_socket_service.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/datagram_socket_service.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/datagram_socket_service.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // datagram_socket_service.cpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/deadline_timer.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/deadline_timer.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/deadline_timer.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // deadline_timer.cpp
 // ~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/deadline_timer_service.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/deadline_timer_service.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/deadline_timer_service.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // deadline_timer_service.cpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/error.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/error.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/error.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // error.cpp
 // ~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/io_service.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/io_service.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/io_service.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // io_service.cpp
 // ~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/ip/address.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/ip/address.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/ip/address.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // address.cpp
 // ~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/ip/address_v4.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/ip/address_v4.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/ip/address_v4.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // address_v4.cpp
 // ~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/ip/address_v6.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/ip/address_v6.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/ip/address_v6.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // address_v6.cpp
 // ~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/ip/basic_endpoint.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/ip/basic_endpoint.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/ip/basic_endpoint.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // basic_endpoint.cpp
 // ~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/ip/basic_resolver.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/ip/basic_resolver.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/ip/basic_resolver.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // basic_resolver.cpp
 // ~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/ip/basic_resolver_entry.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/ip/basic_resolver_entry.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/ip/basic_resolver_entry.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // basic_resolver_entry.cpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/ip/basic_resolver_iterator.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/ip/basic_resolver_iterator.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/ip/basic_resolver_iterator.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // basic_resolver_iterator.cpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/ip/basic_resolver_query.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/ip/basic_resolver_query.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/ip/basic_resolver_query.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // basic_resolver_query.cpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/ip/host_name.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/ip/host_name.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/ip/host_name.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // host_name.cpp
 // ~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/ip/multicast.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/ip/multicast.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/ip/multicast.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // multicast.cpp
 // ~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/ip/resolver_query_base.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/ip/resolver_query_base.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/ip/resolver_query_base.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // resolver_query_base.cpp
 // ~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/ip/resolver_service.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/ip/resolver_service.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/ip/resolver_service.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // resolver_service.cpp
 // ~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/ip/tcp.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/ip/tcp.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/ip/tcp.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // tcp.cpp
 // ~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/ip/udp.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/ip/udp.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/ip/udp.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // udp.cpp
 // ~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/ip/unicast.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/ip/unicast.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/ip/unicast.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // unicast.cpp
 // ~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/ip/v6_only.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/ip/v6_only.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/ip/v6_only.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // v6_only.cpp
 // ~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/is_read_buffered.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/is_read_buffered.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/is_read_buffered.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // is_read_buffered.cpp
 // ~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/is_write_buffered.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/is_write_buffered.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/is_write_buffered.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // is_write_buffered.cpp
 // ~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/latency/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/asio/test/latency/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/asio/test/latency/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/latency/allocator.hpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/latency/allocator.hpp (original)
+++ branches/quickbook-dev/libs/asio/test/latency/allocator.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // allocator.hpp
 // ~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/latency/coroutine.hpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/latency/coroutine.hpp (original)
+++ branches/quickbook-dev/libs/asio/test/latency/coroutine.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // coroutine.hpp
 // ~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/latency/high_res_clock.hpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/latency/high_res_clock.hpp (original)
+++ branches/quickbook-dev/libs/asio/test/latency/high_res_clock.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // high_res_clock.hpp
 // ~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/latency/tcp_client.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/latency/tcp_client.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/latency/tcp_client.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // tcp_client.cpp
 // ~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/latency/tcp_server.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/latency/tcp_server.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/latency/tcp_server.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // tcp_server.cpp
 // ~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/latency/udp_client.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/latency/udp_client.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/latency/udp_client.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // udp_client.cpp
 // ~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/latency/udp_server.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/latency/udp_server.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/latency/udp_server.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // udp_server.cpp
 // ~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/latency/unyield.hpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/latency/unyield.hpp (original)
+++ branches/quickbook-dev/libs/asio/test/latency/unyield.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // unyield.hpp
 // ~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/latency/yield.hpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/latency/yield.hpp (original)
+++ branches/quickbook-dev/libs/asio/test/latency/yield.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // yield.hpp
 // ~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/local/basic_endpoint.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/local/basic_endpoint.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/local/basic_endpoint.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // basic_endpoint.cpp
 // ~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/local/connect_pair.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/local/connect_pair.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/local/connect_pair.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // connect_pair.cpp
 // ~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/local/datagram_protocol.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/local/datagram_protocol.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/local/datagram_protocol.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // datagram_protocol.cpp
 // ~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/local/stream_protocol.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/local/stream_protocol.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/local/stream_protocol.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // stream_protocol.cpp
 // ~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/placeholders.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/placeholders.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/placeholders.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // placeholders.cpp
 // ~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/posix/basic_descriptor.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/posix/basic_descriptor.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/posix/basic_descriptor.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // basic_descriptor.cpp
 // ~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/posix/basic_stream_descriptor.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/posix/basic_stream_descriptor.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/posix/basic_stream_descriptor.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // basic_stream_descriptor.cpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/posix/descriptor_base.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/posix/descriptor_base.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/posix/descriptor_base.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // descriptor_base.cpp
 // ~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/posix/stream_descriptor.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/posix/stream_descriptor.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/posix/stream_descriptor.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // stream_descriptor.cpp
 // ~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/posix/stream_descriptor_service.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/posix/stream_descriptor_service.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/posix/stream_descriptor_service.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // stream_descriptor_service.cpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/raw_socket_service.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/raw_socket_service.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/raw_socket_service.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // raw_socket_service.cpp
 // ~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/read.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/read.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/read.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // read.cpp
 // ~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/read_at.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/read_at.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/read_at.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // read_at.cpp
 // ~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/read_until.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/read_until.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/read_until.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // read_until.cpp
 // ~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/seq_packet_socket_service.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/seq_packet_socket_service.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/seq_packet_socket_service.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // seq_packet_socket_service.cpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/serial_port.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/serial_port.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/serial_port.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // serial_port.cpp
 // ~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 // Copyright (c) 2008 Rep Invariant Systems, Inc. (info_at_[hidden])
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying

Modified: branches/quickbook-dev/libs/asio/test/serial_port_base.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/serial_port_base.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/serial_port_base.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // serial_port_base.cpp
 // ~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 // Copyright (c) 2008 Rep Invariant Systems, Inc. (info_at_[hidden])
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying

Modified: branches/quickbook-dev/libs/asio/test/serial_port_service.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/serial_port_service.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/serial_port_service.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // serial_port_service.cpp
 // ~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 // Copyright (c) 2008 Rep Invariant Systems, Inc. (info_at_[hidden])
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying

Modified: branches/quickbook-dev/libs/asio/test/signal_set.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/signal_set.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/signal_set.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // signal_set.cpp
 // ~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/signal_set_service.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/signal_set_service.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/signal_set_service.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // signal_set_service.cpp
 // ~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/socket_acceptor_service.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/socket_acceptor_service.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/socket_acceptor_service.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // socket_acceptor_service.cpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/socket_base.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/socket_base.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/socket_base.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // socket_base.cpp
 // ~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/ssl/Jamfile
==============================================================================
--- branches/quickbook-dev/libs/asio/test/ssl/Jamfile (original)
+++ branches/quickbook-dev/libs/asio/test/ssl/Jamfile 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/ssl/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/asio/test/ssl/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/asio/test/ssl/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+# Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/ssl/basic_context.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/ssl/basic_context.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/ssl/basic_context.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // basic_context.cpp
 // ~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/ssl/context.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/ssl/context.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/ssl/context.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // context.cpp
 // ~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/ssl/context_base.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/ssl/context_base.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/ssl/context_base.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // context_base.cpp
 // ~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/ssl/context_service.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/ssl/context_service.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/ssl/context_service.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // context_service.cpp
 // ~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/ssl/rfc2818_verification.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/ssl/rfc2818_verification.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/ssl/rfc2818_verification.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // rfc2818_verification.cpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/ssl/stream.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/ssl/stream.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/ssl/stream.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // stream.cpp
 // ~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/ssl/stream_base.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/ssl/stream_base.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/ssl/stream_base.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // stream_base.cpp
 // ~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/ssl/stream_service.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/ssl/stream_service.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/ssl/stream_service.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // stream_service.cpp
 // ~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/strand.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/strand.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/strand.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // strand.cpp
 // ~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/stream_socket_service.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/stream_socket_service.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/stream_socket_service.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // stream_socket_service.cpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/streambuf.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/streambuf.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/streambuf.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // streambuf.cpp
 // ~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/time_traits.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/time_traits.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/time_traits.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // time_traits.cpp
 // ~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/unit_test.hpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/unit_test.hpp (original)
+++ branches/quickbook-dev/libs/asio/test/unit_test.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // unit_test.hpp
 // ~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/windows/basic_handle.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/windows/basic_handle.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/windows/basic_handle.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // basic_handle.cpp
 // ~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/windows/basic_random_access_handle.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/windows/basic_random_access_handle.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/windows/basic_random_access_handle.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // basic_random_access_handle.cpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/windows/basic_stream_handle.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/windows/basic_stream_handle.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/windows/basic_stream_handle.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // basic_stream_handle.cpp
 // ~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/windows/overlapped_ptr.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/windows/overlapped_ptr.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/windows/overlapped_ptr.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // overlapped_ptr.cpp
 // ~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/windows/random_access_handle.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/windows/random_access_handle.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/windows/random_access_handle.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // random_access_handle.cpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/windows/random_access_handle_service.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/windows/random_access_handle_service.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/windows/random_access_handle_service.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // random_access_handle_service.cpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/windows/stream_handle.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/windows/stream_handle.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/windows/stream_handle.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // stream_handle.cpp
 // ~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/windows/stream_handle_service.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/windows/stream_handle_service.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/windows/stream_handle_service.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // stream_handle_service.cpp
 // ~~~~~~~~~~~~~~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/write.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/write.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/write.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // write.cpp
 // ~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/asio/test/write_at.cpp
==============================================================================
--- branches/quickbook-dev/libs/asio/test/write_at.cpp (original)
+++ branches/quickbook-dev/libs/asio/test/write_at.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // write_at.cpp
 // ~~~~~~~~~~~~
 //
-// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com)
+// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/container/doc/container.qbk
==============================================================================
--- branches/quickbook-dev/libs/container/doc/container.qbk (original)
+++ branches/quickbook-dev/libs/container/doc/container.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -588,11 +588,11 @@
 [section:release_notes_boost_1_49_00 Boost 1.49 Release]
 
 * Fixed bugs
- [@https://svn.boost.org/trac/boost/ticket/6205 #6205],
- [@https://svn.boost.org/trac/boost/ticket/6287 #6287],
- [@https://svn.boost.org/trac/boost/ticket/4383 #4383],
   [@https://svn.boost.org/trac/boost/ticket/6336 #6336],
- [@https://svn.boost.org/trac/boost/ticket/6335 #6335].
+ [@https://svn.boost.org/trac/boost/ticket/6335 #6335],
+ [@https://svn.boost.org/trac/boost/ticket/6287 #6287],
+ [@https://svn.boost.org/trac/boost/ticket/6205 #6205],
+ [@https://svn.boost.org/trac/boost/ticket/4383 #4383].
 
 * Added `allocator_traits` support for both C++11 and C++03
    compilers through an internal `allocator_traits` clone.

Modified: branches/quickbook-dev/libs/conversion/doc/lexical_cast.qbk
==============================================================================
--- branches/quickbook-dev/libs/conversion/doc/lexical_cast.qbk (original)
+++ branches/quickbook-dev/libs/conversion/doc/lexical_cast.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -172,7 +172,8 @@
 [section Changes]
 * [*boost 1.49.0 :]
   
- * Restored work with typedefed wchar_t (compilation flag /Zc:wchar_t- for Visual Studio).
+ * Restored work with typedefed wchar_t (compilation flag /Zc:wchar_t- for Visual Studio).
+ * Better performance and less memory usage for `boost::container::basic_string` conversions.
     
 * [*boost 1.48.0 :]
   

Modified: branches/quickbook-dev/libs/conversion/lexical_cast_test.cpp
==============================================================================
--- branches/quickbook-dev/libs/conversion/lexical_cast_test.cpp (original)
+++ branches/quickbook-dev/libs/conversion/lexical_cast_test.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -796,6 +796,17 @@
     BOOST_CHECK_THROW(lexical_cast<T>("+-9"), bad_lexical_cast);
     // test_conversion_from_to_integral_for_locale
 
+ // Overflow test case from David W. Birdsall
+ std::string must_owerflow_str = "160000000000000000000";
+ std::string must_owerflow_negative_str = "-160000000000000000000";
+ for (int i = 0; i < 15; ++i) {
+ BOOST_CHECK_THROW(lexical_cast<T>(must_owerflow_str), bad_lexical_cast);
+ BOOST_CHECK_THROW(lexical_cast<T>(must_owerflow_negative_str), bad_lexical_cast);
+
+ must_owerflow_str += '0';
+ must_owerflow_negative_str += '0';
+ }
+
     typedef std::numpunct<char> numpunct;
 
     restore_oldloc guard;

Modified: branches/quickbook-dev/libs/conversion/test/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/conversion/test/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/conversion/test/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -35,6 +35,7 @@
     [ run lexical_cast_inf_nan_test.cpp ../../test/build//boost_unit_test_framework/<link>static ]
     [ run lexical_cast_containers_test.cpp ../../test/build//boost_unit_test_framework/<link>static ]
     [ run lexical_cast_empty_input_test.cpp ../../test/build//boost_unit_test_framework/<link>static ]
+ [ run lexical_cast_pointers_test.cpp ../../test/build//boost_unit_test_framework/<link>static ]
     [ compile lexical_cast_typedefed_wchar_test.cpp : <toolset>msvc:<nowchar>on ]
     [ run lexical_cast_typedefed_wchar_test_runtime.cpp ../../test/build//boost_unit_test_framework/<link>static : : : <toolset>msvc:<nowchar>on ]
   ;

Modified: branches/quickbook-dev/libs/crc/index.html
==============================================================================
--- branches/quickbook-dev/libs/crc/index.html (original)
+++ branches/quickbook-dev/libs/crc/index.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,61 +1,14 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<!--
+Copyright 2012 Daryle Walker
+Distributed under the Boost Software License, Version 1.0. (See the accompanying
+file LICENSE_1_0.txt or a copy at http://www.boost.org/LICENSE_1_0.txt)
+-->
 <html>
-
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-<title>Boost CRC Library</title>
+<meta http-equiv="refresh" content="0; URL=../../doc/html/crc.html">
 </head>
-
-<body bgcolor="white" text="black" link="blue" vlink="purple" alink="red">
-
-<table border="1" bgcolor="teal" cellpadding="2">
- <tr>
- <td bgcolor="white"><img src="../../boost.png"
- alt="boost.png (6897 bytes)" WIDTH="277"
- HEIGHT="86"></td>
- <td><a href="../../index.htm"><font face="Arial"
- color="white"><big>Home</big></font></a></td>
- <td><a href="../libraries.htm"><font face="Arial"
- color="white"><big>Libraries</big></font></a></td>
- <td><a href="http://www.boost.org/people/people.htm"><font face="Arial"
- color="white"><big>People</big></font></a></td>
- <td><a href="http://www.boost.org/more/faq.htm"><font face="Arial"
- color="white"><big>FAQ</big></font></a></td>
- <td><a href="../../more/index.htm"><font face="Arial"
- color="white"><big>More</big></font></a></td>
- </tr>
-</table>
-
-<h1>CRC Library</h1>
-
-<p>The header <cite>crc.hpp</cite> provides two implementations of CRC
-(cyclic redundancy code) computation objects and two implementations of
-CRC computation functions. The implementations are template-based.</p>
-
-<p>The first object implementation is for theoretical use. It can
-process single bits, but is considered slow for practical use. The
-second object implementation is byte-oriented and uses look-up
-tables for fast operation. The optimized implementation should
-be suitable for general use. The first function implementation uses the
-optimized object. The second function implementation allows the use of
-a CRC that directly follows its data.</p>
-
-<ul>
- <li>Documentation (HTML).</li>
- <li>Header <cite>crc.hpp</cite>.</li>
- <li>See the documentation for links to sample
- programs.</li>
- <li>Submitted by Daryle Walker.</li>
-</ul>
-
-<hr>
-
-<p>Revised: 14 May 2001</p>
-
-<p>Copyright 2001 Daryle Walker. Use, modification, and distribution
-are subject to the Boost Software License, Version 1.0. (See accompanying
-file LICENSE_1_0.txt or a copy at
-&lt;http://www.boost.org/LICENSE_1_0.txt&gt;.)</p>
-
+<body>
+<p>Automatic redirection failed, please go to
+../../doc/html/crc.html.</p>
 </body>
 </html>

Modified: branches/quickbook-dev/libs/exception/test/error_info_test.cpp
==============================================================================
--- branches/quickbook-dev/libs/exception/test/error_info_test.cpp (original)
+++ branches/quickbook-dev/libs/exception/test/error_info_test.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -249,12 +249,41 @@
 void
 test_add_tuple()
     {
- typedef boost::tuple<test_1,test_2> test_12;
- typedef boost::tuple<test_1,test_2,test_3> test_123;
- typedef boost::tuple<test_1,test_2,test_3,test_5> test_1235;
+ typedef boost::tuple<> tuple_test_;
+ typedef boost::tuple<test_1> tuple_test_1;
+ typedef boost::tuple<test_1,test_2> tuple_test_12;
+ typedef boost::tuple<test_1,test_2,test_3> tuple_test_123;
+ typedef boost::tuple<test_1,test_2,test_3,test_5> tuple_test_1235;
     try
         {
- throw test_exception() << test_12(42,42u);
+ throw test_exception() << tuple_test_();
+ }
+ catch(
+ test_exception & x )
+ {
+ }
+ catch(
+ ... )
+ {
+ BOOST_TEST(false);
+ }
+ try
+ {
+ throw test_exception() << tuple_test_1(42);
+ }
+ catch(
+ test_exception & x )
+ {
+ BOOST_TEST( *boost::get_error_info<test_1>(x)==42 );
+ }
+ catch(
+ ... )
+ {
+ BOOST_TEST(false);
+ }
+ try
+ {
+ throw test_exception() << tuple_test_12(42,42u);
         }
     catch(
     test_exception & x )
@@ -269,7 +298,7 @@
         }
     try
         {
- throw test_exception() << test_123(42,42u,42.0f);
+ throw test_exception() << tuple_test_123(42,42u,42.0f);
         }
     catch(
     test_exception & x )
@@ -285,7 +314,7 @@
         }
     try
         {
- throw test_exception() << test_1235(42,42u,42.0f,std::string("42"));
+ throw test_exception() << tuple_test_1235(42,42u,42.0f,std::string("42"));
         }
     catch(
     test_exception & x )

Modified: branches/quickbook-dev/libs/filesystem/v2/src/v2_operations.cpp
==============================================================================
--- branches/quickbook-dev/libs/filesystem/v2/src/v2_operations.cpp (original)
+++ branches/quickbook-dev/libs/filesystem/v2/src/v2_operations.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -24,6 +24,7 @@
       !defined(_STATVFS_ACPP_PROBLEMS_FIXED))
 #define _FILE_OFFSET_BITS 64 // at worst, these defines may have no effect,
 #endif
+#if !defined(__PGI)
 #define __USE_FILE_OFFSET64 // but that is harmless on Windows and on POSIX
       // 64-bit systems or on 32-bit systems which don't have files larger
       // than can be represented by a traditional POSIX/UNIX off_t type.
@@ -40,6 +41,7 @@
 #if !defined(_WIN32_WINNT)
 #define _WIN32_WINNT 0x0500 // Default to Windows 2K or later
 #endif
+#endif
 
 
 #include <boost/filesystem/v2/operations.hpp>
@@ -1308,6 +1310,10 @@
         return error_code( ::closedir( h ) == 0 ? 0 : errno, system_category() );
       }
 
+#if defined(__PGI) && defined(__USE_FILE_OFFSET64)
+#define dirent dirent64
+#endif
+
       // warning: the only dirent member updated is d_name
       inline int readdir_r_simulator( DIR * dirp, struct dirent * entry,
         struct dirent ** result ) // *result set to 0 on end of directory

Modified: branches/quickbook-dev/libs/filesystem/v3/src/path.cpp
==============================================================================
--- branches/quickbook-dev/libs/filesystem/v3/src/path.cpp (original)
+++ branches/quickbook-dev/libs/filesystem/v3/src/path.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -145,13 +145,44 @@
 namespace filesystem3
 {
 
- path & path::operator/=(const path & p)
+ path& path::operator/=(const path& p)
   {
     if (p.empty())
       return *this;
- if (!is_separator(*p.m_pathname.begin()))
- m_append_separator_if_needed();
- m_pathname += p.m_pathname;
+ if (this == &p) // self-append
+ {
+ path rhs(p);
+ if (!is_separator(rhs.m_pathname[0]))
+ m_append_separator_if_needed();
+ m_pathname += rhs.m_pathname;
+ }
+ else
+ {
+ if (!is_separator(*p.m_pathname.begin()))
+ m_append_separator_if_needed();
+ m_pathname += p.m_pathname;
+ }
+ return *this;
+ }
+
+ path& path::operator/=(const value_type* ptr)
+ {
+ if (!*ptr)
+ return *this;
+ if (ptr >= m_pathname.data()
+ && ptr < m_pathname.data() + m_pathname.size()) // overlapping source
+ {
+ path rhs(ptr);
+ if (!is_separator(rhs.m_pathname[0]))
+ m_append_separator_if_needed();
+ m_pathname += rhs.m_pathname;
+ }
+ else
+ {
+ if (!is_separator(*ptr))
+ m_append_separator_if_needed();
+ m_pathname += ptr;
+ }
     return *this;
   }
 
@@ -727,56 +758,55 @@
   // locale helpers //
   //------------------------------------------------------------------------------------//
 
- std::locale default_locale()
- {
-# ifdef BOOST_WINDOWS_API
- std::locale global_loc = std::locale();
- std::locale loc(global_loc, new windows_file_codecvt);
- return loc;
-
-# elif defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__)
- // "All BSD system functions expect their string parameters to be in UTF-8 encoding
- // and nothing else." See
- // http://developer.apple.com/mac/library/documentation/MacOSX/Conceptual/BPInternational/Articles/FileEncodings.html
- //
- // "The kernel will reject any filename that is not a valid UTF-8 string, and it will
- // even be normalized (to Unicode NFD) before stored on disk, at least when using HFS.
- // The right way to deal with it would be to always convert the filename to UTF-8
- // before trying to open/create a file." See
- // http://lists.apple.com/archives/unix-porting/2007/Sep/msg00023.html
- //
- // "How a file name looks at the API level depends on the API. Current Carbon APIs
- // handle file names as an array of UTF-16 characters; POSIX ones handle them as an
- // array of UTF-8, which is why UTF-8 works well in Terminal. How it's stored on disk
- // depends on the disk format; HFS+ uses UTF-16, but that's not important in most
- // cases." See
- // http://lists.apple.com/archives/applescript-users/2002/Sep/msg00319.html
- //
- // Many thanks to Peter Dimov for digging out the above references!
-
- std::locale global_loc = std::locale();
- std::locale loc(global_loc, new boost::filesystem::detail::utf8_codecvt_facet);
- return loc;
-
-# else // Other POSIX
-
- // ISO C calls std::locale("") "the locale-specific native environment", and this
- // locale is the default for many POSIX-based operating systems such as Linux.
-
- // std::locale("") construction can throw (if environmental variables LC_MESSAGES or
- // or LANG are wrong, for example), so dynamic initialization is used to ensure
- // that exceptions can be caught.
+#ifdef BOOST_WINDOWS_API
 
- return std::locale("");
+ std::locale path_locale(std::locale(), new windows_file_codecvt);
 
-# endif
- }
+ const std::codecvt<wchar_t, char, std::mbstate_t>*
+ codecvt_facet(&std::use_facet<std::codecvt<wchar_t, char, std::mbstate_t> >
+ (path_locale));
+
+#elif defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__)
+
+ // "All BSD system functions expect their string parameters to be in UTF-8 encoding
+ // and nothing else." See
+ // http://developer.apple.com/mac/library/documentation/MacOSX/Conceptual/BPInternational/Articles/FileEncodings.html
+ //
+ // "The kernel will reject any filename that is not a valid UTF-8 string, and it will
+ // even be normalized (to Unicode NFD) before stored on disk, at least when using HFS.
+ // The right way to deal with it would be to always convert the filename to UTF-8
+ // before trying to open/create a file." See
+ // http://lists.apple.com/archives/unix-porting/2007/Sep/msg00023.html
+ //
+ // "How a file name looks at the API level depends on the API. Current Carbon APIs
+ // handle file names as an array of UTF-16 characters; POSIX ones handle them as an
+ // array of UTF-8, which is why UTF-8 works well in Terminal. How it's stored on disk
+ // depends on the disk format; HFS+ uses UTF-16, but that's not important in most
+ // cases." See
+ // http://lists.apple.com/archives/applescript-users/2002/Sep/msg00319.html
+ //
+ // Many thanks to Peter Dimov for digging out the above references!
+
+ std::locale path_locale(std::locale(),
+ new boost::filesystem::detail::utf8_codecvt_facet);
+
+ const std::codecvt<wchar_t, char, std::mbstate_t>*
+ codecvt_facet(&std::use_facet<std::codecvt<wchar_t, char, std::mbstate_t> >
+ (path_locale));
+
+#else // Other POSIX
+
+ // ISO C calls std::locale("") "the locale-specific native environment", and this
+ // locale is the default for many POSIX-based operating systems such as Linux.
+
+ // std::locale("") construction can throw (if environmental variables LC_MESSAGES or
+ // or LANG are wrong, for example), so lazy initialization is used to ensure
+ // that exceptions occur after main() starts and so can be caught.
 
- std::locale& path_locale()
- {
- static std::locale loc(default_locale());
- return loc;
- }
+ std::locale path_locale; // initialized by path::wchar_t_codecvt_facet() below
+ const std::codecvt<wchar_t, char, std::mbstate_t>* codecvt_facet; // ditto
+
+# endif
 
 } // unnamed namespace
 
@@ -789,21 +819,25 @@
 namespace filesystem3
 {
 
- const path::codecvt_type *& path::wchar_t_codecvt_facet()
+ const path::codecvt_type*& path::wchar_t_codecvt_facet()
   {
- static const std::codecvt<wchar_t, char, std::mbstate_t> *
- facet(
- &std::use_facet<std::codecvt<wchar_t, char, std::mbstate_t> >
- (path_locale()));
- return facet;
+# if defined(BOOST_POSIX_API) && \
+ !(defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__))
+ // A local static initialized by calling path::imbue ensures that std::locale(""),
+ // which may throw, is called only if path_locale and condecvt_facet will actually
+ // be used. Thus misconfigured environmental variables will only cause an
+ // exception if a valid std::locale("") is actually needed.
+ static std::locale posix_lazy_initialization(path::imbue(std::locale("")));
+# endif
+ return codecvt_facet;
   }
 
- std::locale path::imbue(const std::locale & loc)
+ std::locale path::imbue(const std::locale& loc)
   {
- std::locale temp(path_locale());
- path_locale() = loc;
- wchar_t_codecvt_facet() =
- &std::use_facet<std::codecvt<wchar_t, char, std::mbstate_t> >(path_locale());
+ std::locale temp(path_locale);
+ path_locale = loc;
+ codecvt_facet =
+ &std::use_facet<std::codecvt<wchar_t, char, std::mbstate_t> >(path_locale);
     return temp;
   }
 

Modified: branches/quickbook-dev/libs/filesystem/v3/src/windows_file_codecvt.cpp
==============================================================================
--- branches/quickbook-dev/libs/filesystem/v3/src/windows_file_codecvt.cpp (original)
+++ branches/quickbook-dev/libs/filesystem/v3/src/windows_file_codecvt.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -43,7 +43,7 @@
     const char* from, const char* from_end, const char*& from_next,
     wchar_t* to, wchar_t* to_end, wchar_t*& to_next) const
   {
- UINT codepage = AreFileApisANSI() ? CP_THREAD_ACP : CP_OEMCP;
+ UINT codepage = AreFileApisANSI() ? CP_ACP : CP_OEMCP;
 
     int count;
     if ((count = ::MultiByteToWideChar(codepage, MB_PRECOMPOSED, from,
@@ -63,7 +63,7 @@
     const wchar_t* from, const wchar_t* from_end, const wchar_t* & from_next,
     char* to, char* to_end, char* & to_next) const
   {
- UINT codepage = AreFileApisANSI() ? CP_THREAD_ACP : CP_OEMCP;
+ UINT codepage = AreFileApisANSI() ? CP_ACP : CP_OEMCP;
 
     int count;
     if ((count = ::WideCharToMultiByte(codepage, WC_NO_BEST_FIT_CHARS, from,

Modified: branches/quickbook-dev/libs/filesystem/v3/test/msvc10/filesystem-v3.sln
==============================================================================
--- branches/quickbook-dev/libs/filesystem/v3/test/msvc10/filesystem-v3.sln (original)
+++ branches/quickbook-dev/libs/filesystem/v3/test/msvc10/filesystem-v3.sln 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -79,6 +79,8 @@
                 {FFD738F7-96F0-445C-81EA-551665EF53D1} = {FFD738F7-96F0-445C-81EA-551665EF53D1}
         EndProjectSection
 EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "thread_test", "thread_test\thread_test.vcxproj", "{20E2805D-9634-46CE-B979-21CCBBD16EA3}"
+EndProject
 Global
         GlobalSection(SolutionConfigurationPlatforms) = preSolution
                 Debug|Win32 = Debug|Win32
@@ -177,6 +179,10 @@
                 {B1FA4137-7B08-4113-9EC0-F3BAFEFBE2B7}.Debug|Win32.Build.0 = Debug|Win32
                 {B1FA4137-7B08-4113-9EC0-F3BAFEFBE2B7}.Release|Win32.ActiveCfg = Release|Win32
                 {B1FA4137-7B08-4113-9EC0-F3BAFEFBE2B7}.Release|Win32.Build.0 = Release|Win32
+ {20E2805D-9634-46CE-B979-21CCBBD16EA3}.Debug|Win32.ActiveCfg = Debug|Win32
+ {20E2805D-9634-46CE-B979-21CCBBD16EA3}.Debug|Win32.Build.0 = Debug|Win32
+ {20E2805D-9634-46CE-B979-21CCBBD16EA3}.Release|Win32.ActiveCfg = Release|Win32
+ {20E2805D-9634-46CE-B979-21CCBBD16EA3}.Release|Win32.Build.0 = Release|Win32
         EndGlobalSection
         GlobalSection(SolutionProperties) = preSolution
                 HideSolutionNode = FALSE

Modified: branches/quickbook-dev/libs/filesystem/v3/test/operations_test.cpp
==============================================================================
--- branches/quickbook-dev/libs/filesystem/v3/test/operations_test.cpp (original)
+++ branches/quickbook-dev/libs/filesystem/v3/test/operations_test.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -816,7 +816,8 @@
     {
       cout << " fs::status(p).permissions() " << std::oct << fs::status(p).permissions()
         << std::dec << endl;
- BOOST_TEST((fs::status(p).permissions() & 0644) == 0644); // 0664 sometimes returned
+ BOOST_TEST((fs::status(p).permissions() & 0600) == 0600); // 0644, 0664 sometimes returned
+
       fs::permissions(p, fs::owner_all);
       BOOST_TEST(fs::status(p).permissions() == fs::owner_all);
 

Modified: branches/quickbook-dev/libs/filesystem/v3/test/path_test.cpp
==============================================================================
--- branches/quickbook-dev/libs/filesystem/v3/test/path_test.cpp (original)
+++ branches/quickbook-dev/libs/filesystem/v3/test/path_test.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -19,8 +19,23 @@
 // //
 // The class path relational operators (==, !=, <, etc.) on Windows treat slash and //
 // backslash as equal. Thus any tests on Windows where the difference between slash //
-// and backslash is significant should compare based on native observers rather than //
-// directly on path objects. //
+// and backslash is significant should compare strings rather than paths. //
+// //
+// BOOST_TEST(path == path) // '\\' and '/' are equal //
+// BOOST_TEST(path == convertable to string) // '\\' and '/' are equal //
+// PATH_TEST_EQ(path, path) // '\\' and '/' are equal //
+// //
+// BOOST_TEST(path.string() == path.string()) // '\\' and '/' are not equal //
+// BOOST_TEST(path.string() == //
+// convertable to string) // '\\' and '/' are not equal //
+// PATH_TEST_EQ(path.string(), //
+// convertable to string) // '\\' and '/' are not equal //
+// //
+// The last of these is often what is needed, so the PATH_TEST_EQ macro is provided. //
+// It converts its first argument to a path, and then performs a .string() on it, //
+// eliminating much boilerplate .string() or even path(...).string() code. //
+// //
+// PATH_TEST_EQ(path, convertable to string) // '\\' and '/' are not equal //
 // //
 //--------------------------------------------------------------------------------------//
 
@@ -57,8 +72,13 @@
 #include <boost/detail/lightweight_test.hpp>
 #include <boost/detail/lightweight_main.hpp>
 
-#define PATH_CHECK(a, b) check(a, b, __FILE__, __LINE__)
-#define CHECK_EQUAL(a,b) check_equal(a, b, __FILE__, __LINE__)
+#ifdef BOOST_WINDOWS_API
+# define BOOST_DIR_SEP "\\"
+#else
+# define BOOST_DIR_SEP "/"
+#endif
+
+#define PATH_TEST_EQ(a, b) check(a, b, __FILE__, __LINE__)
 
 namespace
 {
@@ -71,25 +91,13 @@
       return;
 
     std::cout << file
- << '(' << line << "): source: \"" << source
+ << '(' << line << "): source: \"" << source.string()
               << "\" != expected: \"" << expected
               << "\"" << std::endl;
 
     ++::boost::detail::test_errors();
   }
 
- void check_equal(const fs::path & source,
- const std::string & expected, const char* file, int line)
- {
- if (source == expected) return;
-
- ++::boost::detail::test_errors();
-
- std::cout << file << '(' << line << "): source: \"" << source
- << "\" != expected: \"" << expected
- << "\"" << std::endl;
- }
-
   path p1("fe/fi/fo/fum");
   path p2(p1);
   path p3;
@@ -161,9 +169,9 @@
 
     itr_ck = "/";
     itr = itr_ck.begin();
- BOOST_TEST(*itr == std::string("/"));
+ BOOST_TEST(itr->string() == "/");
     BOOST_TEST(++itr == itr_ck.end());
- BOOST_TEST(*--itr == std::string("/"));
+ BOOST_TEST((--itr)->string() == "/");
 
     itr_ck = "foo";
     BOOST_TEST(*itr_ck.begin() == std::string("foo"));
@@ -172,7 +180,7 @@
     BOOST_TEST(boost::prior(itr_ck.end()) == itr_ck.begin());
 
     itr_ck = path("/foo");
- BOOST_TEST(*itr_ck.begin() == std::string("/"));
+ BOOST_TEST((itr_ck.begin())->string() == "/");
     BOOST_TEST(*boost::next(itr_ck.begin()) == std::string("foo"));
     BOOST_TEST(boost::next(boost::next(itr_ck.begin())) == itr_ck.end());
     BOOST_TEST(boost::next(itr_ck.begin()) == boost::prior(itr_ck.end()));
@@ -182,121 +190,139 @@
 
     itr_ck = "/foo/bar";
     itr = itr_ck.begin();
- BOOST_TEST(*itr == std::string("/"));
+ BOOST_TEST(itr->string() == "/");
     BOOST_TEST(*++itr == std::string("foo"));
     BOOST_TEST(*++itr == std::string("bar"));
     BOOST_TEST(++itr == itr_ck.end());
- CHECK_EQUAL(*--itr, "bar");
- CHECK_EQUAL(*--itr, "foo");
- CHECK_EQUAL(*--itr, "/");
+ PATH_TEST_EQ(*--itr, "bar");
+ PATH_TEST_EQ(*--itr, "foo");
+ PATH_TEST_EQ(*--itr, "/");
 
     itr_ck = "../f"; // previously failed due to short name bug
     itr = itr_ck.begin();
- CHECK_EQUAL(*itr, "..");
- CHECK_EQUAL(*++itr, "f");
+ PATH_TEST_EQ(itr->string(), "..");
+ PATH_TEST_EQ(*++itr, "f");
     BOOST_TEST(++itr == itr_ck.end());
- CHECK_EQUAL(*--itr, "f");
- CHECK_EQUAL(*--itr, "..");
+ PATH_TEST_EQ(*--itr, "f");
+ PATH_TEST_EQ(*--itr, "..");
 
     // POSIX says treat "/foo/bar/" as "/foo/bar/."
     itr_ck = "/foo/bar/";
     itr = itr_ck.begin();
- CHECK_EQUAL(*itr, "/");
- CHECK_EQUAL(*++itr, "foo");
- CHECK_EQUAL(*++itr, "bar");
- CHECK_EQUAL(*++itr, ".");
+ PATH_TEST_EQ(itr->string(), "/");
+ PATH_TEST_EQ(*++itr, "foo");
+ PATH_TEST_EQ(*++itr, "bar");
+ PATH_TEST_EQ(*++itr, ".");
     BOOST_TEST(++itr == itr_ck.end());
- CHECK_EQUAL(*--itr, ".");
- CHECK_EQUAL(*--itr, "bar");
- CHECK_EQUAL(*--itr, "foo");
- CHECK_EQUAL(*--itr, "/");
+ PATH_TEST_EQ(*--itr, ".");
+ PATH_TEST_EQ(*--itr, "bar");
+ PATH_TEST_EQ(*--itr, "foo");
+ PATH_TEST_EQ(*--itr, "/");
 
     // POSIX says treat "/f/b/" as "/f/b/."
     itr_ck = "/f/b/";
     itr = itr_ck.begin();
- CHECK_EQUAL(*itr, "/");
- CHECK_EQUAL(*++itr, "f");
- CHECK_EQUAL(*++itr, "b");
- CHECK_EQUAL(*++itr, ".");
+ PATH_TEST_EQ(itr->string(), "/");
+ PATH_TEST_EQ(*++itr, "f");
+ PATH_TEST_EQ(*++itr, "b");
+ PATH_TEST_EQ(*++itr, ".");
     BOOST_TEST(++itr == itr_ck.end());
- CHECK_EQUAL(*--itr, ".");
- CHECK_EQUAL(*--itr, "b");
- CHECK_EQUAL(*--itr, "f");
- CHECK_EQUAL(*--itr, "/");
+ PATH_TEST_EQ(*--itr, ".");
+ PATH_TEST_EQ(*--itr, "b");
+ PATH_TEST_EQ(*--itr, "f");
+ PATH_TEST_EQ(*--itr, "/");
 
     itr_ck = "//net";
     itr = itr_ck.begin();
     // two leading slashes are permitted by POSIX (as implementation defined),
     // while for Windows it is always well defined (as a network name)
- CHECK_EQUAL(*itr, "//net");
+ PATH_TEST_EQ(itr->string(), "//net");
     BOOST_TEST(++itr == itr_ck.end());
- CHECK_EQUAL(*--itr, "//net");
+ PATH_TEST_EQ(*--itr, "//net");
 
     itr_ck = "//net/";
     itr = itr_ck.begin();
- CHECK_EQUAL(*itr, "//net");
- CHECK_EQUAL(*++itr, "/");
+ PATH_TEST_EQ(itr->string(), "//net");
+ PATH_TEST_EQ(*++itr, "/");
     BOOST_TEST(++itr == itr_ck.end());
- CHECK_EQUAL(*--itr, "/");
- CHECK_EQUAL(*--itr, "//net");
+ PATH_TEST_EQ(*--itr, "/");
+ PATH_TEST_EQ(*--itr, "//net");
 
     itr_ck = "//foo///bar///";
     itr = itr_ck.begin();
- CHECK_EQUAL(*itr, "//foo");
- CHECK_EQUAL(*++itr, "/");
- CHECK_EQUAL(*++itr, "bar");
- CHECK_EQUAL(*++itr, ".");
+ PATH_TEST_EQ(itr->string(), "//foo");
+ PATH_TEST_EQ(*++itr, "/");
+ PATH_TEST_EQ(*++itr, "bar");
+ PATH_TEST_EQ(*++itr, ".");
     BOOST_TEST(++itr == itr_ck.end());
- CHECK_EQUAL(*--itr, ".");
- CHECK_EQUAL(*--itr, "bar");
- CHECK_EQUAL(*--itr, "/");
- CHECK_EQUAL(*--itr, "//foo");
+ PATH_TEST_EQ(*--itr, ".");
+ PATH_TEST_EQ(*--itr, "bar");
+ PATH_TEST_EQ(*--itr, "/");
+ PATH_TEST_EQ(*--itr, "//foo");
 
     itr_ck = "///foo///bar///";
     itr = itr_ck.begin();
     // three or more leading slashes are to be treated as a single slash
- CHECK_EQUAL(*itr, "/");
- CHECK_EQUAL(*++itr, "foo");
- CHECK_EQUAL(*++itr, "bar");
- CHECK_EQUAL(*++itr, ".");
+ PATH_TEST_EQ(itr->string(), "/");
+ PATH_TEST_EQ(*++itr, "foo");
+ PATH_TEST_EQ(*++itr, "bar");
+ PATH_TEST_EQ(*++itr, ".");
     BOOST_TEST(++itr == itr_ck.end());
- CHECK_EQUAL(*--itr, ".");
- CHECK_EQUAL(*--itr, "bar");
- CHECK_EQUAL(*--itr, "foo");
- CHECK_EQUAL(*--itr, "/");
+ PATH_TEST_EQ(*--itr, ".");
+ PATH_TEST_EQ(*--itr, "bar");
+ PATH_TEST_EQ(*--itr, "foo");
+ PATH_TEST_EQ(*--itr, "/");
 
     if (platform == "Windows")
     {
       itr_ck = "c:/";
       itr = itr_ck.begin();
- CHECK_EQUAL(*itr, "c:");
- CHECK_EQUAL(*++itr, "/");
+ PATH_TEST_EQ(itr->string(), "c:");
+ PATH_TEST_EQ(*++itr, std::string("/"));
       BOOST_TEST(++itr == itr_ck.end());
- CHECK_EQUAL(*--itr, "/");
- CHECK_EQUAL(*--itr, "c:");
+ PATH_TEST_EQ(*--itr, "/");
+ PATH_TEST_EQ(*--itr, "c:");
 
- itr_ck = "c:\\foo";
+ itr_ck = "c:\\";
+ itr = itr_ck.begin();
+ PATH_TEST_EQ(itr->string(), "c:");
+ PATH_TEST_EQ(*++itr, "/"); // test that iteration returns generic format
+ BOOST_TEST(++itr == itr_ck.end());
+ PATH_TEST_EQ(*--itr, "/"); // test that iteration returns generic format
+ PATH_TEST_EQ(*--itr, "c:");
+
+ itr_ck = "c:/foo";
       itr = itr_ck.begin();
       BOOST_TEST(*itr == std::string("c:"));
       BOOST_TEST(*++itr == std::string("/"));
       BOOST_TEST(*++itr == std::string("foo"));
       BOOST_TEST(++itr == itr_ck.end());
       BOOST_TEST(*--itr == std::string("foo"));
- BOOST_TEST(*--itr == std::string("/"));
+ BOOST_TEST((--itr)->string() == "/");
+ BOOST_TEST(*--itr == std::string("c:"));
+
+ itr_ck = "c:\\foo";
+ itr = itr_ck.begin();
+ BOOST_TEST(*itr == std::string("c:"));
+ BOOST_TEST(*++itr == std::string("\\"));
+ BOOST_TEST(*++itr == std::string("foo"));
+ BOOST_TEST(++itr == itr_ck.end());
+ BOOST_TEST(*--itr == std::string("foo"));
+ BOOST_TEST(*--itr == std::string("\\"));
       BOOST_TEST(*--itr == std::string("c:"));
 
       itr_ck = "\\\\\\foo\\\\\\bar\\\\\\";
       itr = itr_ck.begin();
       // three or more leading slashes are to be treated as a single slash
- CHECK_EQUAL(*itr, "/");
- CHECK_EQUAL(*++itr, "foo");
- CHECK_EQUAL(*++itr, "bar");
- CHECK_EQUAL(*++itr, ".");
+ PATH_TEST_EQ(itr->string(), "/");
+ PATH_TEST_EQ(*++itr, "foo");
+ PATH_TEST_EQ(*++itr, "bar");
+ PATH_TEST_EQ(*++itr, ".");
       BOOST_TEST(++itr == itr_ck.end());
- CHECK_EQUAL(*--itr, ".");
- CHECK_EQUAL(*--itr, "bar");
- CHECK_EQUAL(*--itr, "foo");
- CHECK_EQUAL(*--itr, "/");
+ PATH_TEST_EQ(*--itr, ".");
+ PATH_TEST_EQ(*--itr, "bar");
+ PATH_TEST_EQ(*--itr, "foo");
+ PATH_TEST_EQ(*--itr, "/");
 
       itr_ck = "c:foo";
       itr = itr_ck.begin();
@@ -355,12 +381,12 @@
       BOOST_TEST(*prior(itr_ck.end()) == std::string("//net"));
 
       itr_ck = path("//net/");
- CHECK_EQUAL(*itr_ck.begin(), "//net");
- CHECK_EQUAL(*next(itr_ck.begin()), "/");
+ PATH_TEST_EQ(itr_ck.begin()->string(), "//net");
+ PATH_TEST_EQ(next(itr_ck.begin())->string(), "/");
       BOOST_TEST(next(next(itr_ck.begin())) == itr_ck.end());
       BOOST_TEST(prior(prior(itr_ck.end())) == itr_ck.begin());
- CHECK_EQUAL(*prior(itr_ck.end()), "/");
- CHECK_EQUAL(*prior(prior(itr_ck.end())), "//net");
+ PATH_TEST_EQ(prior(itr_ck.end())->string(), "/");
+ PATH_TEST_EQ(prior(prior(itr_ck.end()))->string(), "//net");
 
       itr_ck = path("//net/foo");
       BOOST_TEST(*itr_ck.begin() == std::string("//net"));
@@ -382,7 +408,7 @@
     {
       itr_ck = "///";
       itr = itr_ck.begin();
- CHECK_EQUAL(*itr, "/");
+ PATH_TEST_EQ(itr->string(), "/");
       BOOST_TEST(++itr == itr_ck.end());
     }
   }
@@ -421,8 +447,8 @@
     BOOST_TEST(b.string() == "b");
 
     // probe operator /
- PATH_CHECK(path("") / ".", ".");
- PATH_CHECK(path("") / "..", "..");
+ PATH_TEST_EQ(path("") / ".", ".");
+ PATH_TEST_EQ(path("") / "..", "..");
     if (platform == "Windows")
     {
       BOOST_TEST(path("foo\\bar") == "foo/bar");
@@ -431,93 +457,93 @@
       BOOST_TEST((bcs / a).native() == path("b\\a").native());
       BOOST_TEST((b / as).native() == path("b\\a").native());
       BOOST_TEST((b / acs).native() == path("b\\a").native());
- PATH_CHECK(path("a") / "b", "a\\b");
- PATH_CHECK(path("..") / "", "..");
- PATH_CHECK(path("foo") / path("bar"), "foo\\bar"); // path arg
- PATH_CHECK(path("foo") / "bar", "foo\\bar"); // const char* arg
- PATH_CHECK(path("foo") / path("woo/bar").filename(), "foo\\bar"); // const std::string & arg
- PATH_CHECK("foo" / path("bar"), "foo\\bar");
- PATH_CHECK(path("..") / ".." , "..\\..");
- PATH_CHECK(path("/") / ".." , "/..");
- PATH_CHECK(path("/..") / ".." , "/..\\..");
- PATH_CHECK(path("..") / "foo" , "..\\foo");
- PATH_CHECK(path("foo") / ".." , "foo\\..");
- PATH_CHECK(path("..") / "f" , "..\\f");
- PATH_CHECK(path("/..") / "f" , "/..\\f");
- PATH_CHECK(path("f") / ".." , "f\\..");
- PATH_CHECK(path("foo") / ".." / ".." , "foo\\..\\..");
- PATH_CHECK(path("foo") / ".." / ".." / ".." , "foo\\..\\..\\..");
- PATH_CHECK(path("f") / ".." / "b" , "f\\..\\b");
- PATH_CHECK(path("foo") / ".." / "bar" , "foo\\..\\bar");
- PATH_CHECK(path("foo") / "bar" / ".." , "foo\\bar\\..");
- PATH_CHECK(path("foo") / "bar" / ".." / "..", "foo\\bar\\..\\..");
- PATH_CHECK(path("foo") / "bar" / ".." / "blah", "foo\\bar\\..\\blah");
- PATH_CHECK(path("f") / "b" / ".." , "f\\b\\..");
- PATH_CHECK(path("f") / "b" / ".." / "a", "f\\b\\..\\a");
- PATH_CHECK(path("foo") / "bar" / "blah" / ".." / "..", "foo\\bar\\blah\\..\\..");
- PATH_CHECK(path("foo") / "bar" / "blah" / ".." / ".." / "bletch", "foo\\bar\\blah\\..\\..\\bletch");
-
- PATH_CHECK(path(".") / "foo", ".\\foo");
- PATH_CHECK(path(".") / "..", ".\\..");
- PATH_CHECK(path("foo") / ".", "foo\\.");
- PATH_CHECK(path("..") / ".", "..\\.");
- PATH_CHECK(path(".") / ".", ".\\.");
- PATH_CHECK(path(".") / "." / ".", ".\\.\\.");
- PATH_CHECK(path(".") / "foo" / ".", ".\\foo\\.");
- PATH_CHECK(path("foo") / "." / "bar", "foo\\.\\bar");
- PATH_CHECK(path("foo") / "." / ".", "foo\\.\\.");
- PATH_CHECK(path("foo") / "." / "..", "foo\\.\\..");
- PATH_CHECK(path(".") / "." / "..", ".\\.\\..");
- PATH_CHECK(path(".") / ".." / ".", ".\\..\\.");
- PATH_CHECK(path("..") / "." / ".", "..\\.\\.");
+ PATH_TEST_EQ(path("a") / "b", "a\\b");
+ PATH_TEST_EQ(path("..") / "", "..");
+ PATH_TEST_EQ(path("foo") / path("bar"), "foo\\bar"); // path arg
+ PATH_TEST_EQ(path("foo") / "bar", "foo\\bar"); // const char* arg
+ PATH_TEST_EQ(path("foo") / path("woo/bar").filename(), "foo\\bar"); // const std::string & arg
+ PATH_TEST_EQ("foo" / path("bar"), "foo\\bar");
+ PATH_TEST_EQ(path("..") / ".." , "..\\..");
+ PATH_TEST_EQ(path("/") / ".." , "/..");
+ PATH_TEST_EQ(path("/..") / ".." , "/..\\..");
+ PATH_TEST_EQ(path("..") / "foo" , "..\\foo");
+ PATH_TEST_EQ(path("foo") / ".." , "foo\\..");
+ PATH_TEST_EQ(path("..") / "f" , "..\\f");
+ PATH_TEST_EQ(path("/..") / "f" , "/..\\f");
+ PATH_TEST_EQ(path("f") / ".." , "f\\..");
+ PATH_TEST_EQ(path("foo") / ".." / ".." , "foo\\..\\..");
+ PATH_TEST_EQ(path("foo") / ".." / ".." / ".." , "foo\\..\\..\\..");
+ PATH_TEST_EQ(path("f") / ".." / "b" , "f\\..\\b");
+ PATH_TEST_EQ(path("foo") / ".." / "bar" , "foo\\..\\bar");
+ PATH_TEST_EQ(path("foo") / "bar" / ".." , "foo\\bar\\..");
+ PATH_TEST_EQ(path("foo") / "bar" / ".." / "..", "foo\\bar\\..\\..");
+ PATH_TEST_EQ(path("foo") / "bar" / ".." / "blah", "foo\\bar\\..\\blah");
+ PATH_TEST_EQ(path("f") / "b" / ".." , "f\\b\\..");
+ PATH_TEST_EQ(path("f") / "b" / ".." / "a", "f\\b\\..\\a");
+ PATH_TEST_EQ(path("foo") / "bar" / "blah" / ".." / "..", "foo\\bar\\blah\\..\\..");
+ PATH_TEST_EQ(path("foo") / "bar" / "blah" / ".." / ".." / "bletch", "foo\\bar\\blah\\..\\..\\bletch");
+
+ PATH_TEST_EQ(path(".") / "foo", ".\\foo");
+ PATH_TEST_EQ(path(".") / "..", ".\\..");
+ PATH_TEST_EQ(path("foo") / ".", "foo\\.");
+ PATH_TEST_EQ(path("..") / ".", "..\\.");
+ PATH_TEST_EQ(path(".") / ".", ".\\.");
+ PATH_TEST_EQ(path(".") / "." / ".", ".\\.\\.");
+ PATH_TEST_EQ(path(".") / "foo" / ".", ".\\foo\\.");
+ PATH_TEST_EQ(path("foo") / "." / "bar", "foo\\.\\bar");
+ PATH_TEST_EQ(path("foo") / "." / ".", "foo\\.\\.");
+ PATH_TEST_EQ(path("foo") / "." / "..", "foo\\.\\..");
+ PATH_TEST_EQ(path(".") / "." / "..", ".\\.\\..");
+ PATH_TEST_EQ(path(".") / ".." / ".", ".\\..\\.");
+ PATH_TEST_EQ(path("..") / "." / ".", "..\\.\\.");
     }
     else // POSIX
     {
- BOOST_TEST((b / a).string() == "b/a");
- BOOST_TEST((bs / a).string() == "b/a");
- BOOST_TEST((bcs / a).string() == "b/a");
- BOOST_TEST((b / as).string() == "b/a");
- BOOST_TEST((b / acs).string() == "b/a");
- PATH_CHECK(path("a") / "b", "a/b");
- PATH_CHECK(path("..") / "", "..");
- PATH_CHECK(path("") / "..", "..");
- PATH_CHECK(path("foo") / path("bar"), "foo/bar"); // path arg
- PATH_CHECK(path("foo") / "bar", "foo/bar"); // const char* arg
- PATH_CHECK(path("foo") / path("woo/bar").filename(), "foo/bar"); // const std::string & arg
- PATH_CHECK("foo" / path("bar"), "foo/bar");
- PATH_CHECK(path("..") / ".." , "../..");
- PATH_CHECK(path("/") / ".." , "/..");
- PATH_CHECK(path("/..") / ".." , "/../..");
- PATH_CHECK(path("..") / "foo" , "../foo");
- PATH_CHECK(path("foo") / ".." , "foo/..");
- PATH_CHECK(path("..") / "f" , "../f");
- PATH_CHECK(path("/..") / "f" , "/../f");
- PATH_CHECK(path("f") / ".." , "f/..");
- PATH_CHECK(path("foo") / ".." / ".." , "foo/../..");
- PATH_CHECK(path("foo") / ".." / ".." / ".." , "foo/../../..");
- PATH_CHECK(path("f") / ".." / "b" , "f/../b");
- PATH_CHECK(path("foo") / ".." / "bar" , "foo/../bar");
- PATH_CHECK(path("foo") / "bar" / ".." , "foo/bar/..");
- PATH_CHECK(path("foo") / "bar" / ".." / "..", "foo/bar/../..");
- PATH_CHECK(path("foo") / "bar" / ".." / "blah", "foo/bar/../blah");
- PATH_CHECK(path("f") / "b" / ".." , "f/b/..");
- PATH_CHECK(path("f") / "b" / ".." / "a", "f/b/../a");
- PATH_CHECK(path("foo") / "bar" / "blah" / ".." / "..", "foo/bar/blah/../..");
- PATH_CHECK(path("foo") / "bar" / "blah" / ".." / ".." / "bletch", "foo/bar/blah/../../bletch");
-
- PATH_CHECK(path(".") / "foo", "./foo");
- PATH_CHECK(path(".") / "..", "./..");
- PATH_CHECK(path("foo") / ".", "foo/.");
- PATH_CHECK(path("..") / ".", "../.");
- PATH_CHECK(path(".") / ".", "./.");
- PATH_CHECK(path(".") / "." / ".", "././.");
- PATH_CHECK(path(".") / "foo" / ".", "./foo/.");
- PATH_CHECK(path("foo") / "." / "bar", "foo/./bar");
- PATH_CHECK(path("foo") / "." / ".", "foo/./.");
- PATH_CHECK(path("foo") / "." / "..", "foo/./..");
- PATH_CHECK(path(".") / "." / "..", "././..");
- PATH_CHECK(path(".") / ".." / ".", "./../.");
- PATH_CHECK(path("..") / "." / ".", ".././.");
+ PATH_TEST_EQ(b / a, "b/a");
+ PATH_TEST_EQ(bs / a, "b/a");
+ PATH_TEST_EQ(bcs / a, "b/a");
+ PATH_TEST_EQ(b / as, "b/a");
+ PATH_TEST_EQ(b / acs, "b/a");
+ PATH_TEST_EQ(path("a") / "b", "a/b");
+ PATH_TEST_EQ(path("..") / "", "..");
+ PATH_TEST_EQ(path("") / "..", "..");
+ PATH_TEST_EQ(path("foo") / path("bar"), "foo/bar"); // path arg
+ PATH_TEST_EQ(path("foo") / "bar", "foo/bar"); // const char* arg
+ PATH_TEST_EQ(path("foo") / path("woo/bar").filename(), "foo/bar"); // const std::string & arg
+ PATH_TEST_EQ("foo" / path("bar"), "foo/bar");
+ PATH_TEST_EQ(path("..") / ".." , "../..");
+ PATH_TEST_EQ(path("/") / ".." , "/..");
+ PATH_TEST_EQ(path("/..") / ".." , "/../..");
+ PATH_TEST_EQ(path("..") / "foo" , "../foo");
+ PATH_TEST_EQ(path("foo") / ".." , "foo/..");
+ PATH_TEST_EQ(path("..") / "f" , "../f");
+ PATH_TEST_EQ(path("/..") / "f" , "/../f");
+ PATH_TEST_EQ(path("f") / ".." , "f/..");
+ PATH_TEST_EQ(path("foo") / ".." / ".." , "foo/../..");
+ PATH_TEST_EQ(path("foo") / ".." / ".." / ".." , "foo/../../..");
+ PATH_TEST_EQ(path("f") / ".." / "b" , "f/../b");
+ PATH_TEST_EQ(path("foo") / ".." / "bar" , "foo/../bar");
+ PATH_TEST_EQ(path("foo") / "bar" / ".." , "foo/bar/..");
+ PATH_TEST_EQ(path("foo") / "bar" / ".." / "..", "foo/bar/../..");
+ PATH_TEST_EQ(path("foo") / "bar" / ".." / "blah", "foo/bar/../blah");
+ PATH_TEST_EQ(path("f") / "b" / ".." , "f/b/..");
+ PATH_TEST_EQ(path("f") / "b" / ".." / "a", "f/b/../a");
+ PATH_TEST_EQ(path("foo") / "bar" / "blah" / ".." / "..", "foo/bar/blah/../..");
+ PATH_TEST_EQ(path("foo") / "bar" / "blah" / ".." / ".." / "bletch", "foo/bar/blah/../../bletch");
+
+ PATH_TEST_EQ(path(".") / "foo", "./foo");
+ PATH_TEST_EQ(path(".") / "..", "./..");
+ PATH_TEST_EQ(path("foo") / ".", "foo/.");
+ PATH_TEST_EQ(path("..") / ".", "../.");
+ PATH_TEST_EQ(path(".") / ".", "./.");
+ PATH_TEST_EQ(path(".") / "." / ".", "././.");
+ PATH_TEST_EQ(path(".") / "foo" / ".", "./foo/.");
+ PATH_TEST_EQ(path("foo") / "." / "bar", "foo/./bar");
+ PATH_TEST_EQ(path("foo") / "." / ".", "foo/./.");
+ PATH_TEST_EQ(path("foo") / "." / "..", "foo/./..");
+ PATH_TEST_EQ(path(".") / "." / "..", "././..");
+ PATH_TEST_EQ(path(".") / ".." / ".", "./../.");
+ PATH_TEST_EQ(path("..") / "." / ".", ".././.");
     }
 
     // probe operator <
@@ -718,7 +744,7 @@
     p = q = "";
     BOOST_TEST(p.relative_path().string() == "");
     BOOST_TEST(p.parent_path().string() == "");
- BOOST_TEST_EQ(q.remove_filename().string(), p.parent_path().string());
+ PATH_TEST_EQ(q.remove_filename().string(), p.parent_path().string());
     BOOST_TEST(p.filename() == "");
     BOOST_TEST(p.stem() == "");
     BOOST_TEST(p.extension() == "");
@@ -738,7 +764,7 @@
     p = q = "/";
     BOOST_TEST(p.relative_path().string() == "");
     BOOST_TEST(p.parent_path().string() == "");
- BOOST_TEST_EQ(q.remove_filename().string(), p.parent_path().string());
+ PATH_TEST_EQ(q.remove_filename().string(), p.parent_path().string());
     BOOST_TEST(p.filename() == "/");
     BOOST_TEST(p.stem() == "/");
     BOOST_TEST(p.extension() == "");
@@ -759,15 +785,15 @@
       BOOST_TEST(!p.is_absolute());
 
     p = q = "//";
- CHECK_EQUAL(p.relative_path().string(), "");
- CHECK_EQUAL(p.parent_path().string(), "");
- BOOST_TEST_EQ(q.remove_filename().string(), p.parent_path().string());
- CHECK_EQUAL(p.filename(), "//");
- CHECK_EQUAL(p.stem(), "//");
- CHECK_EQUAL(p.extension(), "");
- CHECK_EQUAL(p.root_name(), "//");
- CHECK_EQUAL(p.root_directory(), "");
- CHECK_EQUAL(p.root_path().string(), "//");
+ PATH_TEST_EQ(p.relative_path().string(), "");
+ PATH_TEST_EQ(p.parent_path().string(), "");
+ PATH_TEST_EQ(q.remove_filename().string(), p.parent_path().string());
+ PATH_TEST_EQ(p.filename(), "//");
+ PATH_TEST_EQ(p.stem(), "//");
+ PATH_TEST_EQ(p.extension(), "");
+ PATH_TEST_EQ(p.root_name(), "//");
+ PATH_TEST_EQ(p.root_directory(), "");
+ PATH_TEST_EQ(p.root_path().string(), "//");
     BOOST_TEST(p.has_root_path());
     BOOST_TEST(p.has_root_name());
     BOOST_TEST(!p.has_root_directory());
@@ -779,15 +805,15 @@
     BOOST_TEST(!p.is_absolute());
 
     p = q = "///";
- CHECK_EQUAL(p.relative_path().string(), "");
- CHECK_EQUAL(p.parent_path().string(), "");
- BOOST_TEST_EQ(q.remove_filename().string(), p.parent_path().string());
- CHECK_EQUAL(p.filename(), "/");
- CHECK_EQUAL(p.stem(), "/");
- CHECK_EQUAL(p.extension(), "");
- CHECK_EQUAL(p.root_name(), "");
- CHECK_EQUAL(p.root_directory(), "/");
- CHECK_EQUAL(p.root_path().string(), "/");
+ PATH_TEST_EQ(p.relative_path().string(), "");
+ PATH_TEST_EQ(p.parent_path().string(), "");
+ PATH_TEST_EQ(q.remove_filename().string(), p.parent_path().string());
+ PATH_TEST_EQ(p.filename(), "/");
+ PATH_TEST_EQ(p.stem(), "/");
+ PATH_TEST_EQ(p.extension(), "");
+ PATH_TEST_EQ(p.root_name(), "");
+ PATH_TEST_EQ(p.root_directory(), "/");
+ PATH_TEST_EQ(p.root_path().string(), "/");
     BOOST_TEST(p.has_root_path());
     BOOST_TEST(!p.has_root_name());
     BOOST_TEST(p.has_root_directory());
@@ -804,7 +830,7 @@
     p = q = ".";
     BOOST_TEST(p.relative_path().string() == ".");
     BOOST_TEST(p.parent_path().string() == "");
- BOOST_TEST_EQ(q.remove_filename().string(), p.parent_path().string());
+ PATH_TEST_EQ(q.remove_filename().string(), p.parent_path().string());
     BOOST_TEST(p.filename() == ".");
     BOOST_TEST(p.stem() == ".");
     BOOST_TEST(p.extension() == "");
@@ -824,7 +850,7 @@
     p = q = "..";
     BOOST_TEST(p.relative_path().string() == "..");
     BOOST_TEST(p.parent_path().string() == "");
- BOOST_TEST_EQ(q.remove_filename().string(), p.parent_path().string());
+ PATH_TEST_EQ(q.remove_filename().string(), p.parent_path().string());
     BOOST_TEST(p.filename() == "..");
     BOOST_TEST(p.stem() == "..");
     BOOST_TEST(p.extension() == "");
@@ -844,7 +870,7 @@
     p = q = "foo";
     BOOST_TEST(p.relative_path().string() == "foo");
     BOOST_TEST(p.parent_path().string() == "");
- BOOST_TEST_EQ(q.remove_filename().string(), p.parent_path().string());
+ PATH_TEST_EQ(q.remove_filename().string(), p.parent_path().string());
     BOOST_TEST(p.filename() == "foo");
     BOOST_TEST(p.stem() == "foo");
     BOOST_TEST(p.extension() == "");
@@ -862,15 +888,15 @@
     BOOST_TEST(!p.is_absolute());
 
     p = q = "/foo";
- CHECK_EQUAL(p.relative_path().string(), "foo");
- CHECK_EQUAL(p.parent_path().string(), "/");
- BOOST_TEST_EQ(q.remove_filename().string(), p.parent_path().string());
- CHECK_EQUAL(p.filename(), "foo");
- CHECK_EQUAL(p.stem(), "foo");
- CHECK_EQUAL(p.extension(), "");
- CHECK_EQUAL(p.root_name(), "");
- CHECK_EQUAL(p.root_directory(), "/");
- CHECK_EQUAL(p.root_path().string(), "/");
+ PATH_TEST_EQ(p.relative_path().string(), "foo");
+ PATH_TEST_EQ(p.parent_path().string(), "/");
+ PATH_TEST_EQ(q.remove_filename().string(), p.parent_path().string());
+ PATH_TEST_EQ(p.filename(), "foo");
+ PATH_TEST_EQ(p.stem(), "foo");
+ PATH_TEST_EQ(p.extension(), "");
+ PATH_TEST_EQ(p.root_name(), "");
+ PATH_TEST_EQ(p.root_directory(), "/");
+ PATH_TEST_EQ(p.root_path().string(), "/");
     BOOST_TEST(p.has_root_path());
     BOOST_TEST(!p.has_root_name());
     BOOST_TEST(p.has_root_directory());
@@ -885,15 +911,15 @@
       BOOST_TEST(!p.is_absolute());
 
     p = q = "/foo/";
- CHECK_EQUAL(p.relative_path().string(), "foo/");
- CHECK_EQUAL(p.parent_path().string(), "/foo");
- BOOST_TEST_EQ(q.remove_filename().string(), p.parent_path().string());
- CHECK_EQUAL(p.filename(), ".");
- CHECK_EQUAL(p.stem(), ".");
- CHECK_EQUAL(p.extension(), "");
- CHECK_EQUAL(p.root_name(), "");
- CHECK_EQUAL(p.root_directory(), "/");
- CHECK_EQUAL(p.root_path().string(), "/");
+ PATH_TEST_EQ(p.relative_path().string(), "foo/");
+ PATH_TEST_EQ(p.parent_path().string(), "/foo");
+ PATH_TEST_EQ(q.remove_filename().string(), p.parent_path().string());
+ PATH_TEST_EQ(p.filename(), ".");
+ PATH_TEST_EQ(p.stem(), ".");
+ PATH_TEST_EQ(p.extension(), "");
+ PATH_TEST_EQ(p.root_name(), "");
+ PATH_TEST_EQ(p.root_directory(), "/");
+ PATH_TEST_EQ(p.root_path().string(), "/");
     BOOST_TEST(p.has_root_path());
     BOOST_TEST(!p.has_root_name());
     BOOST_TEST(p.has_root_directory());
@@ -908,13 +934,13 @@
       BOOST_TEST(!p.is_absolute());
 
     p = q = "///foo";
- CHECK_EQUAL(p.relative_path().string(), "foo");
- CHECK_EQUAL(p.parent_path().string(), "/");
- BOOST_TEST_EQ(q.remove_filename().string(), p.parent_path().string());
- CHECK_EQUAL(p.filename(), "foo");
- CHECK_EQUAL(p.root_name(), "");
- CHECK_EQUAL(p.root_directory(), "/");
- CHECK_EQUAL(p.root_path().string(), "/");
+ PATH_TEST_EQ(p.relative_path().string(), "foo");
+ PATH_TEST_EQ(p.parent_path().string(), "/");
+ PATH_TEST_EQ(q.remove_filename().string(), p.parent_path().string());
+ PATH_TEST_EQ(p.filename(), "foo");
+ PATH_TEST_EQ(p.root_name(), "");
+ PATH_TEST_EQ(p.root_directory(), "/");
+ PATH_TEST_EQ(p.root_path().string(), "/");
     BOOST_TEST(p.has_root_path());
     BOOST_TEST(!p.has_root_name());
     BOOST_TEST(p.has_root_directory());
@@ -929,7 +955,7 @@
     p = q = "foo/bar";
     BOOST_TEST(p.relative_path().string() == "foo/bar");
     BOOST_TEST(p.parent_path().string() == "foo");
- BOOST_TEST_EQ(q.remove_filename().string(), p.parent_path().string());
+ PATH_TEST_EQ(q.remove_filename().string(), p.parent_path().string());
     BOOST_TEST(p.filename() == "bar");
     BOOST_TEST(p.stem() == "bar");
     BOOST_TEST(p.extension() == "");
@@ -949,7 +975,7 @@
     p = q = "../foo";
     BOOST_TEST(p.relative_path().string() == "../foo");
     BOOST_TEST(p.parent_path().string() == "..");
- BOOST_TEST_EQ(q.remove_filename().string(), p.parent_path().string());
+ PATH_TEST_EQ(q.remove_filename().string(), p.parent_path().string());
     BOOST_TEST(p.filename() == "foo");
     BOOST_TEST(p.root_name() == "");
     BOOST_TEST(p.root_directory() == "");
@@ -963,13 +989,13 @@
     BOOST_TEST(!p.is_absolute());
 
     p = q = "..///foo";
- CHECK_EQUAL(p.relative_path().string(), "..///foo");
- CHECK_EQUAL(p.parent_path().string(), "..");
- BOOST_TEST_EQ(q.remove_filename().string(), p.parent_path().string());
- CHECK_EQUAL(p.filename(), "foo");
- CHECK_EQUAL(p.root_name(), "");
- CHECK_EQUAL(p.root_directory(), "");
- CHECK_EQUAL(p.root_path().string(), "");
+ PATH_TEST_EQ(p.relative_path().string(), "..///foo");
+ PATH_TEST_EQ(p.parent_path().string(), "..");
+ PATH_TEST_EQ(q.remove_filename().string(), p.parent_path().string());
+ PATH_TEST_EQ(p.filename(), "foo");
+ PATH_TEST_EQ(p.root_name(), "");
+ PATH_TEST_EQ(p.root_directory(), "");
+ PATH_TEST_EQ(p.root_path().string(), "");
     BOOST_TEST(!p.has_root_path());
     BOOST_TEST(!p.has_root_name());
     BOOST_TEST(!p.has_root_directory());
@@ -981,7 +1007,7 @@
     p = q = "/foo/bar";
     BOOST_TEST(p.relative_path().string() == "foo/bar");
     BOOST_TEST(p.parent_path().string() == "/foo");
- BOOST_TEST_EQ(q.remove_filename().string(), p.parent_path().string());
+ PATH_TEST_EQ(q.remove_filename().string(), p.parent_path().string());
     BOOST_TEST(p.filename() == "bar");
     BOOST_TEST(p.root_name() == "");
     BOOST_TEST(p.root_directory() == "/");
@@ -999,19 +1025,19 @@
 
     // Both POSIX and Windows allow two leading slashs
     // (POSIX meaning is implementation defined)
- PATH_CHECK(path("//resource"), "//resource");
- PATH_CHECK(path("//resource/"), "//resource/");
- PATH_CHECK(path("//resource/foo"), "//resource/foo");
+ PATH_TEST_EQ(path("//resource"), "//resource");
+ PATH_TEST_EQ(path("//resource/"), "//resource/");
+ PATH_TEST_EQ(path("//resource/foo"), "//resource/foo");
 
     p = q = path("//net");
- CHECK_EQUAL(p.string(), "//net");
- CHECK_EQUAL(p.relative_path().string(), "");
- BOOST_TEST_EQ(q.remove_filename().string(), p.parent_path().string());
- CHECK_EQUAL(p.parent_path().string(), "");
- CHECK_EQUAL(p.filename(), "//net");
- CHECK_EQUAL(p.root_name(), "//net");
- CHECK_EQUAL(p.root_directory(), "");
- CHECK_EQUAL(p.root_path().string(), "//net");
+ PATH_TEST_EQ(p.string(), "//net");
+ PATH_TEST_EQ(p.relative_path().string(), "");
+ PATH_TEST_EQ(q.remove_filename().string(), p.parent_path().string());
+ PATH_TEST_EQ(p.parent_path().string(), "");
+ PATH_TEST_EQ(p.filename(), "//net");
+ PATH_TEST_EQ(p.root_name(), "//net");
+ PATH_TEST_EQ(p.root_directory(), "");
+ PATH_TEST_EQ(p.root_path().string(), "//net");
     BOOST_TEST(p.has_root_path());
     BOOST_TEST(p.has_root_name());
     BOOST_TEST(!p.has_root_directory());
@@ -1023,7 +1049,7 @@
     p = q = path("//net/");
     BOOST_TEST(p.relative_path().string() == "");
     BOOST_TEST(p.parent_path().string() == "//net");
- BOOST_TEST_EQ(q.remove_filename().string(), p.parent_path().string());
+ PATH_TEST_EQ(q.remove_filename().string(), p.parent_path().string());
     BOOST_TEST(p.filename() == "/");
     BOOST_TEST(p.root_name() == "//net");
     BOOST_TEST(p.root_directory() == "/");
@@ -1039,7 +1065,7 @@
     p = q = path("//net/foo");
     BOOST_TEST(p.relative_path().string() == "foo");
     BOOST_TEST(p.parent_path().string() == "//net/");
- BOOST_TEST_EQ(q.remove_filename().string(), p.parent_path().string());
+ PATH_TEST_EQ(q.remove_filename().string(), p.parent_path().string());
     BOOST_TEST(p.filename() == "foo");
     BOOST_TEST(p.root_name() == "//net");
     BOOST_TEST(p.root_directory() == "/");
@@ -1053,13 +1079,13 @@
     BOOST_TEST(p.is_absolute());
 
     p = q = path("//net///foo");
- CHECK_EQUAL(p.relative_path().string(), "foo");
- CHECK_EQUAL(p.parent_path().string(), "//net/");
- BOOST_TEST_EQ(q.remove_filename().string(), p.parent_path().string());
- CHECK_EQUAL(p.filename(), "foo");
- CHECK_EQUAL(p.root_name(), "//net");
- CHECK_EQUAL(p.root_directory(), "/");
- CHECK_EQUAL(p.root_path().string(), "//net/");
+ PATH_TEST_EQ(p.relative_path().string(), "foo");
+ PATH_TEST_EQ(p.parent_path().string(), "//net/");
+ PATH_TEST_EQ(q.remove_filename().string(), p.parent_path().string());
+ PATH_TEST_EQ(p.filename(), "foo");
+ PATH_TEST_EQ(p.root_name(), "//net");
+ PATH_TEST_EQ(p.root_directory(), "/");
+ PATH_TEST_EQ(p.root_path().string(), "//net/");
     BOOST_TEST(p.has_root_path());
     BOOST_TEST(p.has_root_name());
     BOOST_TEST(p.has_root_directory());
@@ -1074,7 +1100,7 @@
       //p = q = L"\\\\?\\";
       //BOOST_TEST(p.relative_path().string() == "");
       //BOOST_TEST(p.parent_path().string() == "");
- //BOOST_TEST_EQ(q.remove_filename().string(), p.parent_path().string());
+ //PATH_TEST_EQ(q.remove_filename().string(), p.parent_path().string());
       //BOOST_TEST(p.filename() == "");
       //BOOST_TEST(p.stem() == "");
       //BOOST_TEST(p.extension() == "");
@@ -1094,7 +1120,7 @@
       p = q = path("c:");
       BOOST_TEST(p.relative_path().string() == "");
       BOOST_TEST(p.parent_path().string() == "");
- BOOST_TEST_EQ(q.remove_filename().string(), p.parent_path().string());
+ PATH_TEST_EQ(q.remove_filename().string(), p.parent_path().string());
       BOOST_TEST(p.filename() == "c:");
       BOOST_TEST(p.root_name() == "c:");
       BOOST_TEST(p.root_directory() == "");
@@ -1110,7 +1136,7 @@
       //p = q = path(L"\\\\?\\c:");
       //BOOST_TEST(p.relative_path().string() == "");
       //BOOST_TEST(p.parent_path().string() == "");
- //BOOST_TEST_EQ(q.remove_filename().string(), p.parent_path().string());
+ //PATH_TEST_EQ(q.remove_filename().string(), p.parent_path().string());
       //BOOST_TEST(p.filename() == "c:");
       //BOOST_TEST(p.root_name() == "c:");
       //BOOST_TEST(p.root_directory() == "");
@@ -1126,7 +1152,7 @@
       p = q = path("c:foo");
       BOOST_TEST(p.relative_path().string() == "foo");
       BOOST_TEST(p.parent_path().string() == "c:");
- BOOST_TEST_EQ(q.remove_filename().string(), p.parent_path().string());
+ PATH_TEST_EQ(q.remove_filename().string(), p.parent_path().string());
       BOOST_TEST(p.filename() == "foo");
       BOOST_TEST(p.root_name() == "c:");
       BOOST_TEST(p.root_directory() == "");
@@ -1142,7 +1168,7 @@
       //p = q = path(L"\\\\?\\c:foo");
       //BOOST_TEST(p.relative_path().string() == "foo");
       //BOOST_TEST(p.parent_path().string() == "c:");
- //BOOST_TEST_EQ(q.remove_filename().string(), p.parent_path().string());
+ //PATH_TEST_EQ(q.remove_filename().string(), p.parent_path().string());
       //BOOST_TEST(p.filename() == "foo");
       //BOOST_TEST(p.root_name() == "c:");
       //BOOST_TEST(p.root_directory() == "");
@@ -1158,7 +1184,7 @@
       p = q = path("c:/");
       BOOST_TEST(p.relative_path().string() == "");
       BOOST_TEST(p.parent_path().string() == "c:");
- BOOST_TEST_EQ(q.remove_filename().string(), p.parent_path().string());
+ PATH_TEST_EQ(q.remove_filename().string(), p.parent_path().string());
       BOOST_TEST(p.filename() == "/");
       BOOST_TEST(p.root_name() == "c:");
       BOOST_TEST(p.root_directory() == "/");
@@ -1174,7 +1200,7 @@
       p = q = path("c:..");
       BOOST_TEST(p.relative_path().string() == "..");
       BOOST_TEST(p.parent_path().string() == "c:");
- BOOST_TEST_EQ(q.remove_filename().string(), p.parent_path().string());
+ PATH_TEST_EQ(q.remove_filename().string(), p.parent_path().string());
       BOOST_TEST(p.filename() == "..");
       BOOST_TEST(p.root_name() == "c:");
       BOOST_TEST(p.root_directory() == "");
@@ -1188,13 +1214,13 @@
       BOOST_TEST(!p.is_absolute());
 
       p = q = path("c:/foo");
- CHECK_EQUAL(p.relative_path().string(), "foo");
- CHECK_EQUAL(p.parent_path().string(), "c:/");
- BOOST_TEST_EQ(q.remove_filename().string(), p.parent_path().string());
- CHECK_EQUAL(p.filename(), "foo");
- CHECK_EQUAL(p.root_name(), "c:");
- CHECK_EQUAL(p.root_directory(), "/");
- CHECK_EQUAL(p.root_path().string(), "c:/");
+ PATH_TEST_EQ(p.relative_path().string(), "foo");
+ PATH_TEST_EQ(p.parent_path().string(), "c:/");
+ PATH_TEST_EQ(q.remove_filename().string(), p.parent_path().string());
+ PATH_TEST_EQ(p.filename(), "foo");
+ PATH_TEST_EQ(p.root_name(), "c:");
+ PATH_TEST_EQ(p.root_directory(), "/");
+ PATH_TEST_EQ(p.root_path().string(), "c:/");
       BOOST_TEST(p.has_root_path());
       BOOST_TEST(p.has_root_name());
       BOOST_TEST(p.has_root_directory());
@@ -1204,13 +1230,13 @@
       BOOST_TEST(p.is_absolute());
 
       p = q = path("c://foo");
- CHECK_EQUAL(p.relative_path().string(), "foo");
- CHECK_EQUAL(p.parent_path().string(), "c:/");
- BOOST_TEST_EQ(q.remove_filename().string(), p.parent_path().string());
- CHECK_EQUAL(p.filename(), "foo");
- CHECK_EQUAL(p.root_name(), "c:");
- CHECK_EQUAL(p.root_directory(), "/");
- CHECK_EQUAL(p.root_path().string(), "c:/");
+ PATH_TEST_EQ(p.relative_path().string(), "foo");
+ PATH_TEST_EQ(p.parent_path().string(), "c:/");
+ PATH_TEST_EQ(q.remove_filename().string(), p.parent_path().string());
+ PATH_TEST_EQ(p.filename(), "foo");
+ PATH_TEST_EQ(p.root_name(), "c:");
+ PATH_TEST_EQ(p.root_directory(), "/");
+ PATH_TEST_EQ(p.root_path().string(), "c:/");
       BOOST_TEST(p.has_root_path());
       BOOST_TEST(p.has_root_name());
       BOOST_TEST(p.has_root_directory());
@@ -1220,13 +1246,13 @@
       BOOST_TEST(p.is_absolute());
 
       p = q = path("c:\\foo\\bar");
- CHECK_EQUAL(p.relative_path().string(), "foo\\bar");
- CHECK_EQUAL(p.parent_path().string(), "c:\\foo");
- BOOST_TEST_EQ(q.remove_filename().string(), p.parent_path().string());
- CHECK_EQUAL(p.filename(), "bar");
- CHECK_EQUAL(p.root_name(), "c:");
- CHECK_EQUAL(p.root_directory(), "\\");
- CHECK_EQUAL(p.root_path().string(), "c:\\");
+ PATH_TEST_EQ(p.relative_path().string(), "foo\\bar");
+ PATH_TEST_EQ(p.parent_path().string(), "c:\\foo");
+ PATH_TEST_EQ(q.remove_filename().string(), p.parent_path().string());
+ PATH_TEST_EQ(p.filename(), "bar");
+ PATH_TEST_EQ(p.root_name(), "c:");
+ PATH_TEST_EQ(p.root_directory(), "\\");
+ PATH_TEST_EQ(p.root_path().string(), "c:\\");
       BOOST_TEST(p.has_root_path());
       BOOST_TEST(p.has_root_name());
       BOOST_TEST(p.has_root_directory());
@@ -1238,7 +1264,7 @@
       p = q = path("prn:");
       BOOST_TEST(p.relative_path().string() == "");
       BOOST_TEST(p.parent_path().string() == "");
- BOOST_TEST_EQ(q.remove_filename().string(), p.parent_path().string());
+ PATH_TEST_EQ(q.remove_filename().string(), p.parent_path().string());
       BOOST_TEST(p.filename() == "prn:");
       BOOST_TEST(p.root_name() == "prn:");
       BOOST_TEST(p.root_directory() == "");
@@ -1252,13 +1278,13 @@
       BOOST_TEST(!p.is_absolute());
 
       p = q = path("\\\\net\\\\\\foo");
- CHECK_EQUAL(p.relative_path().string(), "foo");
- CHECK_EQUAL(p.parent_path().string(), "\\\\net\\");
- BOOST_TEST_EQ(q.remove_filename().string(), p.parent_path().string());
- CHECK_EQUAL(p.filename(), "foo");
- CHECK_EQUAL(p.root_name(), "\\\\net");
- CHECK_EQUAL(p.root_directory(), "\\");
- CHECK_EQUAL(p.root_path().string(), "\\\\net\\");
+ PATH_TEST_EQ(p.relative_path().string(), "foo");
+ PATH_TEST_EQ(p.parent_path().string(), "\\\\net\\");
+ PATH_TEST_EQ(q.remove_filename().string(), p.parent_path().string());
+ PATH_TEST_EQ(p.filename(), "foo");
+ PATH_TEST_EQ(p.root_name(), "\\\\net");
+ PATH_TEST_EQ(p.root_directory(), "\\");
+ PATH_TEST_EQ(p.root_path().string(), "\\\\net\\");
       BOOST_TEST(p.has_root_path());
       BOOST_TEST(p.has_root_name());
       BOOST_TEST(p.has_root_directory());
@@ -1270,9 +1296,9 @@
 
     else
     { // POSIX
- PATH_CHECK(path("/foo/bar/"), "/foo/bar/");
- PATH_CHECK(path("//foo//bar//"), "//foo//bar//");
- PATH_CHECK(path("///foo///bar///"), "///foo///bar///");
+ PATH_TEST_EQ(path("/foo/bar/"), "/foo/bar/");
+ PATH_TEST_EQ(path("//foo//bar//"), "//foo//bar//");
+ PATH_TEST_EQ(path("///foo///bar///"), "///foo///bar///");
 
       p = path("/usr/local/bin:/usr/bin:/bin");
       BOOST_TEST(p.string() == "/usr/local/bin:/usr/bin:/bin");
@@ -1293,142 +1319,142 @@
   {
     std::cout << "construction_tests..." << std::endl;
 
- PATH_CHECK("", "");
+ PATH_TEST_EQ("", "");
 
- PATH_CHECK("foo", "foo");
- PATH_CHECK("f", "f");
+ PATH_TEST_EQ("foo", "foo");
+ PATH_TEST_EQ("f", "f");
 
- PATH_CHECK("foo/", "foo/");
- PATH_CHECK("f/", "f/");
- PATH_CHECK("foo/..", "foo/..");
- PATH_CHECK("foo/../", "foo/../");
- PATH_CHECK("foo/bar/../..", "foo/bar/../..");
- PATH_CHECK("foo/bar/../../", "foo/bar/../../");
- PATH_CHECK(path("/"), "/");
- PATH_CHECK(path("/f"), "/f");
-
- PATH_CHECK("/foo", "/foo");
- PATH_CHECK(path("/foo/bar/"), "/foo/bar/");
- PATH_CHECK(path("//foo//bar//"), "//foo//bar//");
- PATH_CHECK(path("///foo///bar///"), "///foo///bar///");
- PATH_CHECK(path("\\/foo\\/bar\\/"), "\\/foo\\/bar\\/");
- PATH_CHECK(path("\\//foo\\//bar\\//"), "\\//foo\\//bar\\//");
+ PATH_TEST_EQ("foo/", "foo/");
+ PATH_TEST_EQ("f/", "f/");
+ PATH_TEST_EQ("foo/..", "foo/..");
+ PATH_TEST_EQ("foo/../", "foo/../");
+ PATH_TEST_EQ("foo/bar/../..", "foo/bar/../..");
+ PATH_TEST_EQ("foo/bar/../../", "foo/bar/../../");
+ PATH_TEST_EQ("/", "/");
+ PATH_TEST_EQ("/f", "/f");
+
+ PATH_TEST_EQ("/foo", "/foo");
+ PATH_TEST_EQ("/foo/bar/", "/foo/bar/");
+ PATH_TEST_EQ("//foo//bar//", "//foo//bar//");
+ PATH_TEST_EQ("///foo///bar///", "///foo///bar///");
+ PATH_TEST_EQ("\\/foo\\/bar\\/", "\\/foo\\/bar\\/");
+ PATH_TEST_EQ("\\//foo\\//bar\\//", "\\//foo\\//bar\\//");
 
     if (platform == "Windows")
     {
- PATH_CHECK(path("c:") / "foo", "c:foo");
- PATH_CHECK(path("c:") / "/foo", "c:/foo");
+ PATH_TEST_EQ(path("c:") / "foo", "c:foo");
+ PATH_TEST_EQ(path("c:") / "/foo", "c:/foo");
 
- PATH_CHECK(path("\\foo\\bar\\"), "\\foo\\bar\\");
- PATH_CHECK(path("\\\\foo\\\\bar\\\\"), "\\\\foo\\\\bar\\\\");
- PATH_CHECK(path("\\\\\\foo\\\\\\bar\\\\\\"), "\\\\\\foo\\\\\\bar\\\\\\");
-
- PATH_CHECK(path("\\"), "\\");
- PATH_CHECK(path("\\f"), "\\f");
- PATH_CHECK(path("\\foo"), "\\foo");
- PATH_CHECK(path("foo\\bar"), "foo\\bar");
- PATH_CHECK(path("foo bar"), "foo bar");
- PATH_CHECK(path("c:"), "c:");
- PATH_CHECK(path("c:/"), "c:/");
- PATH_CHECK(path("c:."), "c:.");
- PATH_CHECK(path("c:./foo"), "c:./foo");
- PATH_CHECK(path("c:.\\foo"), "c:.\\foo");
- PATH_CHECK(path("c:.."), "c:..");
- PATH_CHECK(path("c:/."), "c:/.");
- PATH_CHECK(path("c:/.."), "c:/..");
- PATH_CHECK(path("c:/../"), "c:/../");
- PATH_CHECK(path("c:\\..\\"), "c:\\..\\");
- PATH_CHECK(path("c:/../.."), "c:/../..");
- PATH_CHECK(path("c:/../foo"), "c:/../foo");
- PATH_CHECK(path("c:\\..\\foo"), "c:\\..\\foo");
- PATH_CHECK(path("c:../foo"), "c:../foo");
- PATH_CHECK(path("c:..\\foo"), "c:..\\foo");
- PATH_CHECK(path("c:/../../foo"), "c:/../../foo");
- PATH_CHECK(path("c:\\..\\..\\foo"), "c:\\..\\..\\foo");
- PATH_CHECK(path("c:foo/.."), "c:foo/..");
- PATH_CHECK(path("c:/foo/.."), "c:/foo/..");
- PATH_CHECK(path("c:/..foo"), "c:/..foo");
- PATH_CHECK(path("c:foo"), "c:foo");
- PATH_CHECK(path("c:/foo"), "c:/foo");
- PATH_CHECK(path("\\\\netname"), "\\\\netname");
- PATH_CHECK(path("\\\\netname\\"), "\\\\netname\\");
- PATH_CHECK(path("\\\\netname\\foo"), "\\\\netname\\foo");
- PATH_CHECK(path("c:/foo"), "c:/foo");
- PATH_CHECK(path("prn:"), "prn:");
+ PATH_TEST_EQ("\\foo\\bar\\", "\\foo\\bar\\");
+ PATH_TEST_EQ("\\\\foo\\\\bar\\\\", "\\\\foo\\\\bar\\\\");
+ PATH_TEST_EQ("\\\\\\foo\\\\\\bar\\\\\\", "\\\\\\foo\\\\\\bar\\\\\\");
+
+ PATH_TEST_EQ("\\", "\\");
+ PATH_TEST_EQ("\\f", "\\f");
+ PATH_TEST_EQ("\\foo", "\\foo");
+ PATH_TEST_EQ("foo\\bar", "foo\\bar");
+ PATH_TEST_EQ("foo bar", "foo bar");
+ PATH_TEST_EQ("c:", "c:");
+ PATH_TEST_EQ("c:/", "c:/");
+ PATH_TEST_EQ("c:.", "c:.");
+ PATH_TEST_EQ("c:./foo", "c:./foo");
+ PATH_TEST_EQ("c:.\\foo", "c:.\\foo");
+ PATH_TEST_EQ("c:..", "c:..");
+ PATH_TEST_EQ("c:/.", "c:/.");
+ PATH_TEST_EQ("c:/..", "c:/..");
+ PATH_TEST_EQ("c:/../", "c:/../");
+ PATH_TEST_EQ("c:\\..\\", "c:\\..\\");
+ PATH_TEST_EQ("c:/../..", "c:/../..");
+ PATH_TEST_EQ("c:/../foo", "c:/../foo");
+ PATH_TEST_EQ("c:\\..\\foo", "c:\\..\\foo");
+ PATH_TEST_EQ("c:../foo", "c:../foo");
+ PATH_TEST_EQ("c:..\\foo", "c:..\\foo");
+ PATH_TEST_EQ("c:/../../foo", "c:/../../foo");
+ PATH_TEST_EQ("c:\\..\\..\\foo", "c:\\..\\..\\foo");
+ PATH_TEST_EQ("c:foo/..", "c:foo/..");
+ PATH_TEST_EQ("c:/foo/..", "c:/foo/..");
+ PATH_TEST_EQ("c:/..foo", "c:/..foo");
+ PATH_TEST_EQ("c:foo", "c:foo");
+ PATH_TEST_EQ("c:/foo", "c:/foo");
+ PATH_TEST_EQ("\\\\netname", "\\\\netname");
+ PATH_TEST_EQ("\\\\netname\\", "\\\\netname\\");
+ PATH_TEST_EQ("\\\\netname\\foo", "\\\\netname\\foo");
+ PATH_TEST_EQ("c:/foo", "c:/foo");
+ PATH_TEST_EQ("prn:", "prn:");
     }
     else
     {
     }
 
- PATH_CHECK("foo/bar", "foo/bar");
- PATH_CHECK("a/b", "a/b"); // probe for length effects
- PATH_CHECK("..", "..");
- PATH_CHECK("../..", "../..");
- PATH_CHECK("/..", "/..");
- PATH_CHECK("/../..", "/../..");
- PATH_CHECK("../foo", "../foo");
- PATH_CHECK("foo/..", "foo/..");
- PATH_CHECK(path("foo/..bar"), "foo/..bar");
- PATH_CHECK("../f", "../f");
- PATH_CHECK("/../f", "/../f");
- PATH_CHECK("f/..", "f/..");
- PATH_CHECK("foo/../..", "foo/../..");
- PATH_CHECK("foo/../../..", "foo/../../..");
- PATH_CHECK("foo/../bar", "foo/../bar");
- PATH_CHECK("foo/bar/..", "foo/bar/..");
- PATH_CHECK("foo/bar/../..", "foo/bar/../..");
- PATH_CHECK("foo/bar/../blah", "foo/bar/../blah");
- PATH_CHECK("f/../b", "f/../b");
- PATH_CHECK("f/b/..", "f/b/..");
- PATH_CHECK("f/b/../a", "f/b/../a");
- PATH_CHECK("foo/bar/blah/../..", "foo/bar/blah/../..");
- PATH_CHECK("foo/bar/blah/../../bletch", "foo/bar/blah/../../bletch");
- PATH_CHECK("...", "...");
- PATH_CHECK("....", "....");
- PATH_CHECK("foo/...", "foo/...");
- PATH_CHECK("abc.", "abc.");
- PATH_CHECK("abc..", "abc..");
- PATH_CHECK("foo/abc.", "foo/abc.");
- PATH_CHECK("foo/abc..", "foo/abc..");
-
- PATH_CHECK(path(".abc"), ".abc");
- PATH_CHECK("a.c", "a.c");
- PATH_CHECK(path("..abc"), "..abc");
- PATH_CHECK("a..c", "a..c");
- PATH_CHECK(path("foo/.abc"), "foo/.abc");
- PATH_CHECK("foo/a.c", "foo/a.c");
- PATH_CHECK(path("foo/..abc"), "foo/..abc");
- PATH_CHECK("foo/a..c", "foo/a..c");
-
- PATH_CHECK(".", ".");
- PATH_CHECK("./foo", "./foo");
- PATH_CHECK("./..", "./..");
- PATH_CHECK("./../foo", "./../foo");
- PATH_CHECK("foo/.", "foo/.");
- PATH_CHECK("../.", "../.");
- PATH_CHECK("./.", "./.");
- PATH_CHECK("././.", "././.");
- PATH_CHECK("./foo/.", "./foo/.");
- PATH_CHECK("foo/./bar", "foo/./bar");
- PATH_CHECK("foo/./.", "foo/./.");
- PATH_CHECK("foo/./..", "foo/./..");
- PATH_CHECK("foo/./../bar", "foo/./../bar");
- PATH_CHECK("foo/../.", "foo/../.");
- PATH_CHECK("././..", "././..");
- PATH_CHECK("./../.", "./../.");
- PATH_CHECK(".././.", ".././.");
+ PATH_TEST_EQ("foo/bar", "foo/bar");
+ PATH_TEST_EQ("a/b", "a/b"); // probe for length effects
+ PATH_TEST_EQ("..", "..");
+ PATH_TEST_EQ("../..", "../..");
+ PATH_TEST_EQ("/..", "/..");
+ PATH_TEST_EQ("/../..", "/../..");
+ PATH_TEST_EQ("../foo", "../foo");
+ PATH_TEST_EQ("foo/..", "foo/..");
+ PATH_TEST_EQ("foo/..bar", "foo/..bar");
+ PATH_TEST_EQ("../f", "../f");
+ PATH_TEST_EQ("/../f", "/../f");
+ PATH_TEST_EQ("f/..", "f/..");
+ PATH_TEST_EQ("foo/../..", "foo/../..");
+ PATH_TEST_EQ("foo/../../..", "foo/../../..");
+ PATH_TEST_EQ("foo/../bar", "foo/../bar");
+ PATH_TEST_EQ("foo/bar/..", "foo/bar/..");
+ PATH_TEST_EQ("foo/bar/../..", "foo/bar/../..");
+ PATH_TEST_EQ("foo/bar/../blah", "foo/bar/../blah");
+ PATH_TEST_EQ("f/../b", "f/../b");
+ PATH_TEST_EQ("f/b/..", "f/b/..");
+ PATH_TEST_EQ("f/b/../a", "f/b/../a");
+ PATH_TEST_EQ("foo/bar/blah/../..", "foo/bar/blah/../..");
+ PATH_TEST_EQ("foo/bar/blah/../../bletch", "foo/bar/blah/../../bletch");
+ PATH_TEST_EQ("...", "...");
+ PATH_TEST_EQ("....", "....");
+ PATH_TEST_EQ("foo/...", "foo/...");
+ PATH_TEST_EQ("abc.", "abc.");
+ PATH_TEST_EQ("abc..", "abc..");
+ PATH_TEST_EQ("foo/abc.", "foo/abc.");
+ PATH_TEST_EQ("foo/abc..", "foo/abc..");
+
+ PATH_TEST_EQ(".abc", ".abc");
+ PATH_TEST_EQ("a.c", "a.c");
+ PATH_TEST_EQ("..abc", "..abc");
+ PATH_TEST_EQ("a..c", "a..c");
+ PATH_TEST_EQ("foo/.abc", "foo/.abc");
+ PATH_TEST_EQ("foo/a.c", "foo/a.c");
+ PATH_TEST_EQ("foo/..abc", "foo/..abc");
+ PATH_TEST_EQ("foo/a..c", "foo/a..c");
+
+ PATH_TEST_EQ(".", ".");
+ PATH_TEST_EQ("./foo", "./foo");
+ PATH_TEST_EQ("./..", "./..");
+ PATH_TEST_EQ("./../foo", "./../foo");
+ PATH_TEST_EQ("foo/.", "foo/.");
+ PATH_TEST_EQ("../.", "../.");
+ PATH_TEST_EQ("./.", "./.");
+ PATH_TEST_EQ("././.", "././.");
+ PATH_TEST_EQ("./foo/.", "./foo/.");
+ PATH_TEST_EQ("foo/./bar", "foo/./bar");
+ PATH_TEST_EQ("foo/./.", "foo/./.");
+ PATH_TEST_EQ("foo/./..", "foo/./..");
+ PATH_TEST_EQ("foo/./../bar", "foo/./../bar");
+ PATH_TEST_EQ("foo/../.", "foo/../.");
+ PATH_TEST_EQ("././..", "././..");
+ PATH_TEST_EQ("./../.", "./../.");
+ PATH_TEST_EQ(".././.", ".././.");
   }
 
   // append_tests --------------------------------------------------------------------//
 
   void append_test_aux(const path & p, const std::string & s, const std::string & expect)
   {
- PATH_CHECK(p / path(s), expect);
- PATH_CHECK(p / s.c_str(), expect);
- PATH_CHECK(p / s, expect);
+ PATH_TEST_EQ((p / path(s)).string(), expect);
+ PATH_TEST_EQ((p / s.c_str()).string(), expect);
+ PATH_TEST_EQ((p / s).string(), expect);
     path x(p);
     x.append(s.begin(), s.end());
- PATH_CHECK(x, expect);
+ PATH_TEST_EQ(x.string(), expect);
   }
 
   void append_tests()
@@ -1452,74 +1478,116 @@
     //for (int i = 0; i < sizeof(x)/sizeof(char*); ++i)
     // for (int j = 0; j < sizeof(y)/sizeof(char*); ++j)
     // {
- // std::cout << "\n PATH_CHECK(path(\"" << x[i] << "\") / \"" << y[j] << "\", \""
+ // std::cout << "\n PATH_TEST_EQ(path(\"" << x[i] << "\") / \"" << y[j] << "\", \""
     // << path(x[i]) / y[j] << "\");\n";
     // std::cout << " append_test_aux(\"" << x[i] << "\", \"" << y[j] << "\", \""
     // << path(x[i]) / y[j] << "\");\n";
     // }
 
- PATH_CHECK(path("") / "", "");
+ PATH_TEST_EQ(path("") / "", "");
     append_test_aux("", "", "");
 
- PATH_CHECK(path("") / "/", "/");
+ PATH_TEST_EQ(path("") / "/", "/");
     append_test_aux("", "/", "/");
 
- PATH_CHECK(path("") / "bar", "bar");
+ PATH_TEST_EQ(path("") / "bar", "bar");
     append_test_aux("", "bar", "bar");
 
- PATH_CHECK(path("") / "/bar", "/bar");
+ PATH_TEST_EQ(path("") / "/bar", "/bar");
     append_test_aux("", "/bar", "/bar");
 
- PATH_CHECK(path("/") / "", "/");
+ PATH_TEST_EQ(path("/") / "", "/");
     append_test_aux("/", "", "/");
 
- PATH_CHECK(path("/") / "/", "//");
+ PATH_TEST_EQ(path("/") / "/", "//");
     append_test_aux("/", "/", "//");
 
- PATH_CHECK(path("/") / "bar", "/bar");
+ PATH_TEST_EQ(path("/") / "bar", "/bar");
     append_test_aux("/", "bar", "/bar");
 
- PATH_CHECK(path("/") / "/bar", "//bar");
+ PATH_TEST_EQ(path("/") / "/bar", "//bar");
     append_test_aux("/", "/bar", "//bar");
 
- PATH_CHECK(path("foo") / "", "foo");
+ PATH_TEST_EQ(path("foo") / "", "foo");
     append_test_aux("foo", "", "foo");
 
- PATH_CHECK(path("foo") / "/", "foo/");
+ PATH_TEST_EQ(path("foo") / "/", "foo/");
     append_test_aux("foo", "/", "foo/");
 
- PATH_CHECK(path("foo") / "/bar", "foo/bar");
+ PATH_TEST_EQ(path("foo") / "/bar", "foo/bar");
     append_test_aux("foo", "/bar", "foo/bar");
 
- PATH_CHECK(path("foo/") / "", "foo/");
+ PATH_TEST_EQ(path("foo/") / "", "foo/");
     append_test_aux("foo/", "", "foo/");
 
- PATH_CHECK(path("foo/") / "/", "foo//");
+ PATH_TEST_EQ(path("foo/") / "/", "foo//");
     append_test_aux("foo/", "/", "foo//");
 
- PATH_CHECK(path("foo/") / "bar", "foo/bar");
+ PATH_TEST_EQ(path("foo/") / "bar", "foo/bar");
     append_test_aux("foo/", "bar", "foo/bar");
 
- PATH_CHECK(path("foo/") / "/bar", "foo//bar");
+ PATH_TEST_EQ(path("foo/") / "/bar", "foo//bar");
     append_test_aux("foo/", "/bar", "foo//bar");
 
     if (platform == "Windows")
     {
- PATH_CHECK(path("foo") / "bar", "foo\\bar");
+ PATH_TEST_EQ(path("foo") / "bar", "foo\\bar");
       append_test_aux("foo", "bar", "foo\\bar");
 
       // hand created test case specific to Windows
- PATH_CHECK(path("c:") / "bar", "c:bar");
+ PATH_TEST_EQ(path("c:") / "bar", "c:bar");
       append_test_aux("c:", "bar", "c:bar");
     }
     else
     {
- PATH_CHECK(path("foo") / "bar", "foo/bar");
+ PATH_TEST_EQ(path("foo") / "bar", "foo/bar");
       append_test_aux("foo", "bar", "foo/bar");
     }
 
   }
 
+// self_assign_and_append_tests ------------------------------------------------------//
+
+ void self_assign_and_append_tests()
+ {
+ std::cout << "self_assign_and_append_tests..." << std::endl;
+
+ path p;
+
+ p = "snafubar";
+ PATH_TEST_EQ(p = p, "snafubar");
+
+ p = "snafubar";
+ p = p.c_str();
+ PATH_TEST_EQ(p, "snafubar");
+
+ p = "snafubar";
+ p.assign(p.c_str(), path::codecvt());
+ PATH_TEST_EQ(p, "snafubar");
+
+ p = "snafubar";
+ PATH_TEST_EQ(p = p.c_str()+5, "bar");
+
+ p = "snafubar";
+ PATH_TEST_EQ(p.assign(p.c_str() + 5, p.c_str() + 7), "ba");
+
+ p = "snafubar";
+ p /= p;
+ PATH_TEST_EQ(p, "snafubar" BOOST_DIR_SEP "snafubar");
+
+ p = "snafubar";
+ p /= p.c_str();
+ PATH_TEST_EQ(p, "snafubar" BOOST_DIR_SEP "snafubar");
+
+ p = "snafubar";
+ p.append(p.c_str(), path::codecvt());
+ PATH_TEST_EQ(p, "snafubar" BOOST_DIR_SEP "snafubar");
+
+ p = "snafubar";
+ PATH_TEST_EQ(p.append(p.c_str() + 5, p.c_str() + 7), "snafubar" BOOST_DIR_SEP "ba");
+ }
+
+
   // name_function_tests -------------------------------------------------------------//
 
   void name_function_tests()
@@ -1628,7 +1696,7 @@
     BOOST_TEST(path("a.b.txt").replace_extension(".tex") == "a.b.tex");
     BOOST_TEST(path("a.b.txt").replace_extension("tex") == "a.b");
     BOOST_TEST(path("a/b").replace_extension(".c") == "a/b.c");
- BOOST_TEST_EQ(path("a.txt/b").replace_extension(".c"), "a.txt/b.c"); // ticket 4702
+ PATH_TEST_EQ(path("a.txt/b").replace_extension(".c"), "a.txt/b.c"); // ticket 4702
   }
   
   // make_preferred_tests ------------------------------------------------------------//
@@ -1678,6 +1746,7 @@
 
   construction_tests();
   append_tests();
+ self_assign_and_append_tests();
   overload_tests();
   query_and_decomposition_tests();
   composition_tests();
@@ -1704,18 +1773,18 @@
   // check the path member templates
   p5.assign(s1.begin(), s1.end());
 
- PATH_CHECK(p5, "//:somestring");
+ PATH_TEST_EQ(p5.string(), "//:somestring");
   p5 = s1;
- PATH_CHECK(p5, "//:somestring");
+ PATH_TEST_EQ(p5.string(), "//:somestring");
 
   // this code, courtesy of David Whetstone, detects a now fixed bug that
   // derefereced the end iterator (assuming debug build with checked itors)
   std::vector<char> v1;
   p5.assign(v1.begin(), v1.end());
   std::string s2(v1.begin(), v1.end());
- PATH_CHECK(p5, s2);
+ PATH_TEST_EQ(p5.string(), s2);
   p5.assign(s1.begin(), s1.begin() + 1);
- PATH_CHECK(p5, "/");
+ PATH_TEST_EQ(p5.string(), "/");
 
   BOOST_TEST(p1 != p4);
   BOOST_TEST(p1.string() == p2.string());

Modified: branches/quickbook-dev/libs/geometry/doc/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/geometry/doc/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 # Boost.Geometry (aka GGL, Generic Geometry Library)
 #
-# Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-# Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-# Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+# Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+# Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+# Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 # Use, modification and distribution is subject to the Boost Software License,
 # Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/about_documentation.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/about_documentation.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/about_documentation.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
- Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
- Copyright (c) 2009-2011 Bruno Lalande, Paris, France.
+ Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
+ Copyright (c) 2009-2012 Bruno Lalande, Paris, France.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/acknowledgments.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/acknowledgments.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/acknowledgments.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
- Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
- Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+ Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+ Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/compiling.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/compiling.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/compiling.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 [/==============================================================================
- Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
- Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
- Copyright (c) 2009-2011 Mateusz Loskot, London, UK., London, UK
+ Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+ Copyright (c) 2009-2012 Mateusz Loskot, London, UK., London, UK
 
     Use, modification and distribution is subject to the Boost Software License,
     Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/concept/box.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/concept/box.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/concept/box.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
- Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
- Copyright (c) 2009-2011 Bruno Lalande, Paris, France.
+ Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
+ Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2009-2012 Bruno Lalande, Paris, France.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/concept/linestring.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/concept/linestring.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/concept/linestring.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
- Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
- Copyright (c) 2009-2011 Bruno Lalande, Paris, France.
+ Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
+ Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2009-2012 Bruno Lalande, Paris, France.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/concept/multi_linestring.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/concept/multi_linestring.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/concept/multi_linestring.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
- Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
- Copyright (c) 2009-2011 Bruno Lalande, Paris, France.
+ Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
+ Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2009-2012 Bruno Lalande, Paris, France.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/concept/multi_point.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/concept/multi_point.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/concept/multi_point.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
- Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
- Copyright (c) 2009-2011 Bruno Lalande, Paris, France.
+ Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
+ Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2009-2012 Bruno Lalande, Paris, France.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/concept/multi_polygon.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/concept/multi_polygon.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/concept/multi_polygon.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
- Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
- Copyright (c) 2009-2011 Bruno Lalande, Paris, France.
+ Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
+ Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2009-2012 Bruno Lalande, Paris, France.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/concept/point.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/concept/point.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/concept/point.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
- Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
- Copyright (c) 2009-2011 Bruno Lalande, Paris, France.
+ Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
+ Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2009-2012 Bruno Lalande, Paris, France.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/concept/polygon.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/concept/polygon.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/concept/polygon.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
- Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
- Copyright (c) 2009-2011 Bruno Lalande, Paris, France.
+ Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
+ Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2009-2012 Bruno Lalande, Paris, France.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/concept/ring.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/concept/ring.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/concept/ring.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
- Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
- Copyright (c) 2009-2011 Bruno Lalande, Paris, France.
+ Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
+ Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2009-2012 Bruno Lalande, Paris, France.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/concept/segment.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/concept/segment.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/concept/segment.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
- Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
- Copyright (c) 2009-2011 Bruno Lalande, Paris, France.
+ Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
+ Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2009-2012 Bruno Lalande, Paris, France.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/design_rationale.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/design_rationale.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/design_rationale.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 [/==============================================================================
- Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
- Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
- Copyright (c) 2009-2011 Mateusz Loskot, London, UK., London, UK
+ Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+ Copyright (c) 2009-2012 Mateusz Loskot, London, UK., London, UK
 
     Use, modification and distribution is subject to the Boost Software License,
     Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/doxy/doxygen_input/groups/groups.hpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/doxy/doxygen_input/groups/groups.hpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/doxy/doxygen_input/groups/groups.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 //
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/doxy/doxygen_input/pages/doxygen_b_sets.hpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/doxy/doxygen_input/pages/doxygen_b_sets.hpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/doxy/doxygen_input/pages/doxygen_b_sets.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 //
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/doc/doxy/doxygen_input/pages/doxygen_c_strategy_rationale.hpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/doxy/doxygen_input/pages/doxygen_c_strategy_rationale.hpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/doxy/doxygen_input/pages/doxygen_c_strategy_rationale.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 //
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/doc/doxy/doxygen_input/pages/doxygen_d_robustness.hpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/doxy/doxygen_input/pages/doxygen_d_robustness.hpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/doxy/doxygen_input/pages/doxygen_d_robustness.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka Boost.Geometry, Generic Geometry Library)
 //
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/doc/doxy/doxygen_input/pages/doxygen_examples.hpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/doxy/doxygen_input/pages/doxygen_examples.hpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/doxy/doxygen_input/pages/doxygen_examples.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 //
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/doc/doxy/doxygen_input/pages/doxygen_mainpage.hpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/doxy/doxygen_input/pages/doxygen_mainpage.hpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/doxy/doxygen_input/pages/doxygen_mainpage.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 //
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)
@@ -18,9 +18,10 @@
 
 \section header Boost.Geometry (aka GGL, Generic Geometry Library)
 
-<em>Copyright &copy; 1995-2010 <b>Barend Gehrels</b>, Geodan, Amsterdam, the Netherlands.\n
-Copyright &copy; 2008-2010 <b>Bruno Lalande</b>, Paris, France.\n
-Copyright &copy; 2010 <b>Mateusz Loskot</b>, Cadcorp, London, UK.\n
+<em>
+Copyright &copy; 1995-2012 <b>Barend Gehrels</b>, Geodan, Amsterdam, the Netherlands.\n
+Copyright &copy; 2008-2012 <b>Bruno Lalande</b>, Paris, France.\n
+Copyright &copy; 2010-2012 <b>Mateusz Loskot</b>, Cadcorp, London, UK.\n
 Distributed under the Boost Software License, Version 1.0.\n
 (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 </em>

Modified: branches/quickbook-dev/libs/geometry/doc/doxy/doxygen_input/pages/doxygen_pages.hpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/doxy/doxygen_input/pages/doxygen_pages.hpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/doxy/doxygen_input/pages/doxygen_pages.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 //
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/doc/doxy/doxygen_input/pages/doxygen_z_article09.hpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/doxy/doxygen_input/pages/doxygen_z_article09.hpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/doxy/doxygen_input/pages/doxygen_z_article09.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 //
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/doc/doxy/doxygen_input/sourcecode/doxygen_1.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/doxy/doxygen_input/sourcecode/doxygen_1.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/doxy/doxygen_input/sourcecode/doxygen_1.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,8 +2,8 @@
 
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 //
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/doc/doxy/doxygen_input/sourcecode/doxygen_2.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/doxy/doxygen_input/sourcecode/doxygen_2.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/doxy/doxygen_input/sourcecode/doxygen_2.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,8 +2,8 @@
 
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 //
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/doc/doxy/doxygen_input/sourcecode/doxygen_3.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/doxy/doxygen_input/sourcecode/doxygen_3.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/doxy/doxygen_input/sourcecode/doxygen_3.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,8 +2,8 @@
 
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 //
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/doc/doxy/doxygen_input/sourcecode/doxygen_4.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/doxy/doxygen_input/sourcecode/doxygen_4.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/doxy/doxygen_input/sourcecode/doxygen_4.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,8 +2,8 @@
 
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 //
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/doc/doxy/doxygen_input/sourcecode/doxygen_5.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/doxy/doxygen_input/sourcecode/doxygen_5.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/doxy/doxygen_input/sourcecode/doxygen_5.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,8 +2,8 @@
 
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 //
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/doc/generated/area_status.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/generated/area_status.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/generated/area_status.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,13 +1,13 @@
 [heading Supported geometries]
 [table
 [[Geometry][Status]]
-[[Point][[$img/ok.png]]]
-[[Segment][[$img/ok.png]]]
-[[Box][[$img/ok.png]]]
-[[Linestring][[$img/ok.png]]]
-[[Ring][[$img/ok.png]]]
-[[Polygon][[$img/ok.png]]]
-[[MultiPoint][[$img/ok.png]]]
-[[MultiLinestring][[$img/ok.png]]]
-[[MultiPolygon][[$img/ok.png]]]
+[[Point][ [$img/ok.png] ]]
+[[Segment][ [$img/ok.png] ]]
+[[Box][ [$img/ok.png] ]]
+[[Linestring][ [$img/ok.png] ]]
+[[Ring][ [$img/ok.png] ]]
+[[Polygon][ [$img/ok.png] ]]
+[[MultiPoint][ [$img/ok.png] ]]
+[[MultiLinestring][ [$img/ok.png] ]]
+[[MultiPolygon][ [$img/ok.png] ]]
 ]

Modified: branches/quickbook-dev/libs/geometry/doc/generated/distance_status.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/generated/distance_status.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/generated/distance_status.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -4,10 +4,10 @@
 [[Point][ [$img/ok.png] ][ [$img/ok.png] ][ [$img/nyi.png] ][ [$img/ok.png] ][ [$img/ok.png] ][ [$img/ok.png] ][ [$img/ok.png] ][ [$img/ok.png] ][ [$img/ok.png] ]]
 [[Segment][ [$img/ok.png] ][ [$img/nyi.png] ][ [$img/nyi.png] ][ [$img/nyi.png] ][ [$img/nyi.png] ][ [$img/nyi.png] ][ [$img/nyi.png] ][ [$img/nyi.png] ][ [$img/nyi.png] ]]
 [[Box][ [$img/nyi.png] ][ [$img/nyi.png] ][ [$img/nyi.png] ][ [$img/nyi.png] ][ [$img/nyi.png] ][ [$img/nyi.png] ][ [$img/nyi.png] ][ [$img/nyi.png] ][ [$img/nyi.png] ]]
-[[Linestring][ [$img/ok.png] ][ [$img/nyi.png] ][ [$img/nyi.png] ][ [$img/nyi.png] ][ [$img/nyi.png] ][ [$img/nyi.png] ][ [$img/ok.png] ][ [$img/ok.png] ][ [$img/ok.png] ]]
+[[Linestring][ [$img/ok.png] ][ [$img/nyi.png] ][ [$img/nyi.png] ][ [$img/nyi.png] ][ [$img/nyi.png] ][ [$img/nyi.png] ][ [$img/ok.png] ][ [$img/nyi.png] ][ [$img/nyi.png] ]]
 [[Ring][ [$img/ok.png] ][ [$img/nyi.png] ][ [$img/nyi.png] ][ [$img/nyi.png] ][ [$img/nyi.png] ][ [$img/nyi.png] ][ [$img/nyi.png] ][ [$img/nyi.png] ][ [$img/nyi.png] ]]
-[[Polygon][ [$img/ok.png] ][ [$img/nyi.png] ][ [$img/nyi.png] ][ [$img/nyi.png] ][ [$img/nyi.png] ][ [$img/nyi.png] ][ [$img/ok.png] ][ [$img/ok.png] ][ [$img/ok.png] ]]
+[[Polygon][ [$img/ok.png] ][ [$img/nyi.png] ][ [$img/nyi.png] ][ [$img/nyi.png] ][ [$img/nyi.png] ][ [$img/nyi.png] ][ [$img/ok.png] ][ [$img/nyi.png] ][ [$img/nyi.png] ]]
 [[MultiPoint][ [$img/ok.png] ][ [$img/nyi.png] ][ [$img/nyi.png] ][ [$img/ok.png] ][ [$img/nyi.png] ][ [$img/ok.png] ][ [$img/ok.png] ][ [$img/ok.png] ][ [$img/ok.png] ]]
-[[MultiLinestring][ [$img/ok.png] ][ [$img/nyi.png] ][ [$img/nyi.png] ][ [$img/ok.png] ][ [$img/nyi.png] ][ [$img/ok.png] ][ [$img/ok.png] ][ [$img/ok.png] ][ [$img/ok.png] ]]
-[[MultiPolygon][ [$img/ok.png] ][ [$img/nyi.png] ][ [$img/nyi.png] ][ [$img/ok.png] ][ [$img/nyi.png] ][ [$img/ok.png] ][ [$img/ok.png] ][ [$img/ok.png] ][ [$img/ok.png] ]]
+[[MultiLinestring][ [$img/ok.png] ][ [$img/nyi.png] ][ [$img/nyi.png] ][ [$img/nyi.png] ][ [$img/nyi.png] ][ [$img/nyi.png] ][ [$img/ok.png] ][ [$img/nyi.png] ][ [$img/nyi.png] ]]
+[[MultiPolygon][ [$img/ok.png] ][ [$img/nyi.png] ][ [$img/nyi.png] ][ [$img/nyi.png] ][ [$img/nyi.png] ][ [$img/nyi.png] ][ [$img/ok.png] ][ [$img/nyi.png] ][ [$img/nyi.png] ]]
 ]

Modified: branches/quickbook-dev/libs/geometry/doc/geometry.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/geometry.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/geometry.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
- Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
- Copyright (c) 2009-2011 Bruno Lalande, Paris, France.
+ Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
+ Copyright (c) 2009-2012 Bruno Lalande, Paris, France.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -14,7 +14,7 @@
     [quickbook 1.5]
     [version 1.0]
     [authors [Gehrels, Barend], [Lalande, Bruno], [Loskot, Mateusz]]
- [copyright 2011 Barend Gehrels, Bruno Lalande, Mateusz Loskot]
+ [copyright 2009-2012 Barend Gehrels, Bruno Lalande, Mateusz Loskot]
     [purpose Documentation of Boost.Geometry library]
     [license
         Distributed under the Boost Software License, Version 1.0.
@@ -104,6 +104,7 @@
 
 [include reference.qbk]
 
+[include release_notes.qbk]
 
 [include about_documentation.qbk]
 [include acknowledgments.qbk]

Modified: branches/quickbook-dev/libs/geometry/doc/html/index.html
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/html/index.html (original)
+++ branches/quickbook-dev/libs/geometry/doc/html/index.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,16 +1,113 @@
-
-<!--
-Copyright 2010 Barend Gehrels.
-Distributed under the Boost Software License, Version 1.0. (See accompanying
-file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
--->
-
 <html>
 <head>
- <meta http-equiv="refresh" content="0; URL=http://boost-sandbox.sourceforge.net/libs/geometry/doc/html/">
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Chapter&#160;1.&#160;Geometry 1.0</title>
+<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="index.html" title="Chapter&#160;1.&#160;Geometry 1.0">
+<link rel="next" href="geometry/introduction.html" title="Introduction">
 </head>
-<body>
-Automatic redirection failed, please go to
-http://boost-sandbox.sourceforge.net/libs/geometry/doc/html/
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav"><a accesskey="n" href="geometry/introduction.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a></div>
+<div class="chapter">
+<div class="titlepage"><div>
+<div><h2 class="title">
+<a name="geometry"></a>Chapter&#160;1.&#160;Geometry 1.0</h2></div>
+<div><div class="author"><h3 class="author">
+<span class="firstname">Barend</span> <span class="surname">Gehrels</span>
+</h3></div></div>
+<div><div class="author"><h3 class="author">
+<span class="firstname">Bruno</span> <span class="surname">Lalande</span>
+</h3></div></div>
+<div><div class="author"><h3 class="author">
+<span class="firstname">Mateusz</span> <span class="surname">Loskot</span>
+</h3></div></div>
+<div><p class="copyright">Copyright &#169; 2012 Barend Gehrels, Bruno Lalande, Mateusz Loskot</p></div>
+<div><div class="legalnotice">
+<a name="id666441"></a><p>
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ </p>
+</div></div>
+</div></div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<dl>
+<dt><span class="section">Introduction</span></dt>
+<dt><span class="section">Quick Start</span></dt>
+<dt><span class="section">Design Rationale</span></dt>
+<dt><span class="section">Compilation</span></dt>
+<dt><span class="section">Indexes</span></dt>
+<dd><dl>
+<dt><span class="section">Reference matrix</span></dt>
+<dt><span class="section">Alphabetical Index</span></dt>
+</dl></dd>
+<dt><span class="section">Reference</span></dt>
+<dd><dl>
+<dt><span class="section">Access Functions</span></dt>
+<dt><span class="section">Adapted models</span></dt>
+<dt><span class="section">Algorithms</span></dt>
+<dt><span class="section">Arithmetic</span></dt>
+<dt><span class="section">Concepts</span></dt>
+<dt><span class="section">Constants</span></dt>
+<dt><span class="section">Coordinate Systems</span></dt>
+<dt><span class="section">Core Metafunctions</span></dt>
+<dt><span class="section">Enumerations</span></dt>
+<dt><span class="section">Exceptions</span></dt>
+<dt><span class="section">Iterators</span></dt>
+<dt><span class="section">Models</span></dt>
+<dt><span class="section">Strategies</span></dt>
+<dt><span class="section">Views</span></dt>
+</dl></dd>
+<dt><span class="section">About this documentation</span></dt>
+<dt><span class="section">Acknowledgments</span></dt>
+</dl>
+</div>
+<a name="geometry.contributions"></a><h3>
+<a name="geometry.contributions-heading"></a>
+ <a class="link" href="index.html#geometry.contributions">Contributions</a>
+ </h3>
+<p>
+ Boost.Geometry contains contributions by:
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+ Akira Takahashi (adaption of Boost.Fusion)
+ </li>
+<li class="listitem">
+ Alfredo Correa (adaption of Boost.Array)
+ </li>
+<li class="listitem">
+ Adam Wulkiewicz (spatial indexes) <sup>[<a name="id697753" href="#ftn.id697753" class="footnote">1</a>]</sup>
+ </li>
+<li class="listitem">
+ Federico Fern&#225;ndez (spatial indexes) <sup>[<a name="id697767" href="#ftn.id697767" class="footnote">2</a>]</sup>
+ </li>
+</ul></div>
+<div class="footnotes">
+<br><hr width="100" align="left">
+<div class="footnote"><p><sup>[<a name="ftn.id697753" href="#id697753" class="para">1</a>] </sup>
+ Currently an extension
+ </p></div>
+<div class="footnote"><p><sup>[<a name="ftn.id697767" href="#id697767" class="para">2</a>] </sup>
+ Currently an extension
+ </p></div>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"><p><small>Last revised: January 13, 2012 at 11:52:50 GMT</small></p></td>
+<td align="right"><div class="copyright-footer"></div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav"><a accesskey="n" href="geometry/introduction.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a></div>
 </body>
 </html>

Modified: branches/quickbook-dev/libs/geometry/doc/imports.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/imports.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/imports.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
- Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
- Copyright (c) 2009-2011 Bruno Lalande, Paris, France.
+ Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
+ Copyright (c) 2009-2012 Bruno Lalande, Paris, France.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/introduction.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/introduction.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/introduction.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
- Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
- Copyright (c) 2009-2011 Bruno Lalande, Paris, France.
+ Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
+ Copyright (c) 2009-2012 Bruno Lalande, Paris, France.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/make_qbk.py
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/make_qbk.py (original)
+++ branches/quickbook-dev/libs/geometry/doc/make_qbk.py 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 #! /usr/bin/env python
 # -*- coding: utf-8 -*-
 # ===========================================================================
-# Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-# Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-# Copyright (c) 2009-2011 Mateusz Loskot (mateusz_at_[hidden]), London, UK
+# Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+# Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+# Copyright (c) 2009-2012 Mateusz Loskot (mateusz_at_[hidden]), London, UK
 #
 # Use, modification and distribution is subject to the Boost Software License,
 # Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/matrix.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/matrix.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/matrix.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
- Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
- Copyright (c) 2009-2011 Bruno Lalande, Paris, France.
+ Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
+ Copyright (c) 2009-2012 Bruno Lalande, Paris, France.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/quickbook/arithmetic.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/quickbook/arithmetic.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/quickbook/arithmetic.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 [/==============================================================================
- Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
- Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
- Copyright (c) 2009-2011 Mateusz Loskot, London, UK., London, UK
+ Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+ Copyright (c) 2009-2012 Mateusz Loskot, London, UK., London, UK
 
     Use, modification and distribution is subject to the Boost Software License,
     Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/quickbook/boolean.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/quickbook/boolean.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/quickbook/boolean.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 [/==============================================================================
- Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
- Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
- Copyright (c) 2009-2011 Mateusz Loskot, London, UK., London, UK
+ Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+ Copyright (c) 2009-2012 Mateusz Loskot, London, UK., London, UK
 
     Use, modification and distribution is subject to the Boost Software License,
     Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/quickbook/geometries.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/quickbook/geometries.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/quickbook/geometries.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 [/==============================================================================
- Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
- Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
- Copyright (c) 2009-2011 Mateusz Loskot, London, UK., London, UK
+ Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+ Copyright (c) 2009-2012 Mateusz Loskot, London, UK., London, UK
 
     Use, modification and distribution is subject to the Boost Software License,
     Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/quickbook/geometry_concepts.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/quickbook/geometry_concepts.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/quickbook/geometry_concepts.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 [/==============================================================================
- Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
- Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
- Copyright (c) 2009-2011 Mateusz Loskot, London, UK., London, UK
+ Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+ Copyright (c) 2009-2012 Mateusz Loskot, London, UK., London, UK
 
     Use, modification and distribution is subject to the Boost Software License,
     Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/quickbook/geometry_types.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/quickbook/geometry_types.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/quickbook/geometry_types.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 [/==============================================================================
- Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
- Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
- Copyright (c) 2009-2011 Mateusz Loskot, London, UK., London, UK
+ Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+ Copyright (c) 2009-2012 Mateusz Loskot, London, UK., London, UK
 
     Use, modification and distribution is subject to the Boost Software License,
     Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/quickbook/misc.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/quickbook/misc.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/quickbook/misc.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 [/==============================================================================
- Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
- Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
- Copyright (c) 2009-2011 Mateusz Loskot, London, UK., London, UK
+ Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+ Copyright (c) 2009-2012 Mateusz Loskot, London, UK., London, UK
 
     Use, modification and distribution is subject to the Boost Software License,
     Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/quickbook/references.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/quickbook/references.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/quickbook/references.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 [/==============================================================================
- Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
- Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
- Copyright (c) 2009-2011 Mateusz Loskot, London, UK., London, UK
+ Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+ Copyright (c) 2009-2012 Mateusz Loskot, London, UK., London, UK
 
     Use, modification and distribution is subject to the Boost Software License,
     Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/quickbook/strategy_rationale.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/quickbook/strategy_rationale.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/quickbook/strategy_rationale.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 [/==============================================================================
- Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
- Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
- Copyright (c) 2009-2011 Mateusz Loskot, London, UK., London, UK
+ Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+ Copyright (c) 2009-2012 Mateusz Loskot, London, UK., London, UK
 
     Use, modification and distribution is subject to the Boost Software License,
     Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/quickstart.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/quickstart.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/quickstart.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
- Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
- Copyright (c) 2009-2011 Bruno Lalande, Paris, France.
+ Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
+ Copyright (c) 2009-2012 Bruno Lalande, Paris, France.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/reference.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/reference.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/reference.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
- Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
- Copyright (c) 2009-2011 Bruno Lalande, Paris, France.
+ Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
+ Copyright (c) 2009-2012 Bruno Lalande, Paris, France.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/reference/algorithms/append.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/reference/algorithms/append.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/reference/algorithms/append.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
- Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
- Copyright (c) 2009-2011 Bruno Lalande, Paris, France.
+ Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
+ Copyright (c) 2009-2012 Bruno Lalande, Paris, France.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/reference/algorithms/area.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/reference/algorithms/area.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/reference/algorithms/area.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
- Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
- Copyright (c) 2009-2011 Bruno Lalande, Paris, France.
+ Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
+ Copyright (c) 2009-2012 Bruno Lalande, Paris, France.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/reference/algorithms/buffer.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/reference/algorithms/buffer.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/reference/algorithms/buffer.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
- Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
- Copyright (c) 2009-2011 Bruno Lalande, Paris, France.
+ Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
+ Copyright (c) 2009-2012 Bruno Lalande, Paris, France.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/reference/algorithms/centroid.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/reference/algorithms/centroid.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/reference/algorithms/centroid.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
- Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
- Copyright (c) 2009-2011 Bruno Lalande, Paris, France.
+ Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
+ Copyright (c) 2009-2012 Bruno Lalande, Paris, France.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/reference/algorithms/centroid_strategies.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/reference/algorithms/centroid_strategies.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/reference/algorithms/centroid_strategies.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
- Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
- Copyright (c) 2009-2011 Bruno Lalande, Paris, France.
+ Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
+ Copyright (c) 2009-2012 Bruno Lalande, Paris, France.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/reference/algorithms/clear.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/reference/algorithms/clear.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/reference/algorithms/clear.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
- Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
- Copyright (c) 2009-2011 Bruno Lalande, Paris, France.
+ Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
+ Copyright (c) 2009-2012 Bruno Lalande, Paris, France.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -12,6 +12,8 @@
 
 [def __is_cleared__ is cleared]
 
+[include generated/clear_status.qbk]
+
 [heading Behavior]
 [table
 [[Case] [Behavior] ]

Modified: branches/quickbook-dev/libs/geometry/doc/reference/algorithms/comparable_distance.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/reference/algorithms/comparable_distance.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/reference/algorithms/comparable_distance.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
- Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
- Copyright (c) 2009-2011 Bruno Lalande, Paris, France.
+ Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
+ Copyright (c) 2009-2012 Bruno Lalande, Paris, France.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/reference/algorithms/convert.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/reference/algorithms/convert.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/reference/algorithms/convert.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
- Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
- Copyright (c) 2009-2011 Bruno Lalande, Paris, France.
+ Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
+ Copyright (c) 2009-2012 Bruno Lalande, Paris, France.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -14,6 +14,8 @@
 [tip convert is modelled as source -> target
     (where assign is modelled as target := source)]
 
+[include generated/convert_status.qbk]
+
 [heading Complexity]
 Linear
 

Modified: branches/quickbook-dev/libs/geometry/doc/reference/algorithms/convex_hull.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/reference/algorithms/convex_hull.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/reference/algorithms/convex_hull.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,15 +1,17 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
- Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
- Copyright (c) 2009-2011 Bruno Lalande, Paris, France.
+ Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
+ Copyright (c) 2009-2012 Bruno Lalande, Paris, France.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
   http://www.boost.org/LICENSE_1_0.txt)
 =============================================================================/]
 
+[include generated/convex_hull_status.qbk]
+
 [heading Complexity]
 Logarithmic
 

Modified: branches/quickbook-dev/libs/geometry/doc/reference/algorithms/correct.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/reference/algorithms/correct.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/reference/algorithms/correct.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
- Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
- Copyright (c) 2009-2011 Bruno Lalande, Paris, France.
+ Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
+ Copyright (c) 2009-2012 Bruno Lalande, Paris, France.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/reference/algorithms/difference.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/reference/algorithms/difference.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/reference/algorithms/difference.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/reference/algorithms/difference_inserter.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/reference/algorithms/difference_inserter.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/reference/algorithms/difference_inserter.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/reference/algorithms/distance.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/reference/algorithms/distance.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/reference/algorithms/distance.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
- Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
- Copyright (c) 2009-2011 Bruno Lalande, Paris, France.
+ Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
+ Copyright (c) 2009-2012 Bruno Lalande, Paris, France.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -14,6 +14,7 @@
 
 [heading Complexity]
 Linear
+
 For multi-geometry to multi-geometry: currently quadratic
 
 [heading Example]

Modified: branches/quickbook-dev/libs/geometry/doc/reference/algorithms/equals.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/reference/algorithms/equals.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/reference/algorithms/equals.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
- Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
- Copyright (c) 2009-2011 Bruno Lalande, Paris, France.
+ Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
+ Copyright (c) 2009-2012 Bruno Lalande, Paris, France.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/reference/algorithms/expand.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/reference/algorithms/expand.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/reference/algorithms/expand.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
- Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
- Copyright (c) 2009-2011 Bruno Lalande, Paris, France.
+ Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
+ Copyright (c) 2009-2012 Bruno Lalande, Paris, France.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/reference/algorithms/intersection.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/reference/algorithms/intersection.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/reference/algorithms/intersection.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
- Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
- Copyright (c) 2009-2011 Bruno Lalande, Paris, France.
+ Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
+ Copyright (c) 2009-2012 Bruno Lalande, Paris, France.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/reference/algorithms/intersects.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/reference/algorithms/intersects.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/reference/algorithms/intersects.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
- Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
- Copyright (c) 2009-2011 Bruno Lalande, Paris, France.
+ Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
+ Copyright (c) 2009-2012 Bruno Lalande, Paris, France.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/reference/algorithms/length.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/reference/algorithms/length.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/reference/algorithms/length.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
- Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
- Copyright (c) 2009-2011 Bruno Lalande, Paris, France.
+ Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
+ Copyright (c) 2009-2012 Bruno Lalande, Paris, France.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/reference/algorithms/num_geometries.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/reference/algorithms/num_geometries.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/reference/algorithms/num_geometries.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
- Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
- Copyright (c) 2009-2011 Bruno Lalande, Paris, France.
+ Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
+ Copyright (c) 2009-2012 Bruno Lalande, Paris, France.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/reference/algorithms/num_interior_rings.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/reference/algorithms/num_interior_rings.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/reference/algorithms/num_interior_rings.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
- Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
- Copyright (c) 2009-2011 Bruno Lalande, Paris, France.
+ Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
+ Copyright (c) 2009-2012 Bruno Lalande, Paris, France.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/reference/algorithms/num_points.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/reference/algorithms/num_points.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/reference/algorithms/num_points.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
- Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
- Copyright (c) 2009-2011 Bruno Lalande, Paris, France.
+ Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
+ Copyright (c) 2009-2012 Bruno Lalande, Paris, France.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/reference/algorithms/overlay_behavior.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/reference/algorithms/overlay_behavior.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/reference/algorithms/overlay_behavior.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/reference/algorithms/perimeter.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/reference/algorithms/perimeter.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/reference/algorithms/perimeter.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
- Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
- Copyright (c) 2009-2011 Bruno Lalande, Paris, France.
+ Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
+ Copyright (c) 2009-2012 Bruno Lalande, Paris, France.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/reference/algorithms/reverse.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/reference/algorithms/reverse.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/reference/algorithms/reverse.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
- Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
- Copyright (c) 2009-2011 Bruno Lalande, Paris, France.
+ Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
+ Copyright (c) 2009-2012 Bruno Lalande, Paris, France.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/reference/algorithms/simplify.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/reference/algorithms/simplify.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/reference/algorithms/simplify.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
- Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
- Copyright (c) 2009-2011 Bruno Lalande, Paris, France.
+ Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
+ Copyright (c) 2009-2012 Bruno Lalande, Paris, France.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/reference/algorithms/simplify_inserter.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/reference/algorithms/simplify_inserter.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/reference/algorithms/simplify_inserter.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
- Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
- Copyright (c) 2009-2011 Bruno Lalande, Paris, France.
+ Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
+ Copyright (c) 2009-2012 Bruno Lalande, Paris, France.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/reference/algorithms/sym_difference.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/reference/algorithms/sym_difference.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/reference/algorithms/sym_difference.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
- Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
- Copyright (c) 2009-2011 Bruno Lalande, Paris, France.
+ Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
+ Copyright (c) 2009-2012 Bruno Lalande, Paris, France.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/reference/algorithms/transform.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/reference/algorithms/transform.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/reference/algorithms/transform.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
- Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
- Copyright (c) 2009-2011 Bruno Lalande, Paris, France.
+ Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
+ Copyright (c) 2009-2012 Bruno Lalande, Paris, France.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/reference/algorithms/transform_with_strategy.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/reference/algorithms/transform_with_strategy.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/reference/algorithms/transform_with_strategy.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
- Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
- Copyright (c) 2009-2011 Bruno Lalande, Paris, France.
+ Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
+ Copyright (c) 2009-2012 Bruno Lalande, Paris, France.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/reference/algorithms/union.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/reference/algorithms/union.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/reference/algorithms/union.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
- Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
- Copyright (c) 2009-2011 Bruno Lalande, Paris, France.
+ Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
+ Copyright (c) 2009-2012 Bruno Lalande, Paris, France.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/reference/algorithms/unique.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/reference/algorithms/unique.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/reference/algorithms/unique.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
- Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
- Copyright (c) 2009-2011 Bruno Lalande, Paris, France.
+ Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
+ Copyright (c) 2009-2012 Bruno Lalande, Paris, France.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/reference/algorithms/within.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/reference/algorithms/within.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/reference/algorithms/within.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
- Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
- Copyright (c) 2009-2011 Bruno Lalande, Paris, France.
+ Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
+ Copyright (c) 2009-2012 Bruno Lalande, Paris, France.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/reference/core/closure.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/reference/core/closure.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/reference/core/closure.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/reference/core/coordinate_dimension.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/reference/core/coordinate_dimension.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/reference/core/coordinate_dimension.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/reference/core/coordinate_system.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/reference/core/coordinate_system.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/reference/core/coordinate_system.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/reference/core/coordinate_type.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/reference/core/coordinate_type.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/reference/core/coordinate_type.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/reference/core/degree_radian.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/reference/core/degree_radian.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/reference/core/degree_radian.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/reference/core/get_box.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/reference/core/get_box.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/reference/core/get_box.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/reference/core/get_point.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/reference/core/get_point.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/reference/core/get_point.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/reference/core/interior_type.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/reference/core/interior_type.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/reference/core/interior_type.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/reference/core/max_corner.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/reference/core/max_corner.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/reference/core/max_corner.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/reference/core/min_corner.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/reference/core/min_corner.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/reference/core/min_corner.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/reference/core/min_max_corner.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/reference/core/min_max_corner.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/reference/core/min_max_corner.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/reference/core/point_order.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/reference/core/point_order.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/reference/core/point_order.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/reference/core/point_type.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/reference/core/point_type.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/reference/core/point_type.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/reference/core/ring_type.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/reference/core/ring_type.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/reference/core/ring_type.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/reference/core/set_box.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/reference/core/set_box.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/reference/core/set_box.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/reference/core/set_point.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/reference/core/set_point.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/reference/core/set_point.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/reference/core/tag.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/reference/core/tag.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/reference/core/tag.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/reference/core/tag_cast.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/reference/core/tag_cast.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/reference/core/tag_cast.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/reference/geometries/adapted/boost_array.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/reference/geometries/adapted/boost_array.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/reference/geometries/adapted/boost_array.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
- Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
- Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+ Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+ Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/reference/geometries/adapted/boost_fusion.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/reference/geometries/adapted/boost_fusion.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/reference/geometries/adapted/boost_fusion.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
- Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
- Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+ Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+ Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/reference/geometries/adapted/boost_polygon/point_data.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/reference/geometries/adapted/boost_polygon/point_data.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/reference/geometries/adapted/boost_polygon/point_data.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
- Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
- Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+ Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+ Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/reference/geometries/adapted/boost_polygon/polygon_data.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/reference/geometries/adapted/boost_polygon/polygon_data.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/reference/geometries/adapted/boost_polygon/polygon_data.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
- Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
- Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+ Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+ Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/reference/geometries/adapted/boost_polygon/polygon_with_holes_data.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/reference/geometries/adapted/boost_polygon/polygon_with_holes_data.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/reference/geometries/adapted/boost_polygon/polygon_with_holes_data.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
- Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
- Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+ Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+ Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/reference/geometries/adapted/boost_polygon/rectangle_data.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/reference/geometries/adapted/boost_polygon/rectangle_data.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/reference/geometries/adapted/boost_polygon/rectangle_data.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
- Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
- Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+ Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+ Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/reference/geometries/adapted/boost_range/adapts_model.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/reference/geometries/adapted/boost_range/adapts_model.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/reference/geometries/adapted/boost_range/adapts_model.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
- Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
- Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+ Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+ Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/reference/geometries/adapted/boost_range/filtered.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/reference/geometries/adapted/boost_range/filtered.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/reference/geometries/adapted/boost_range/filtered.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
- Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
- Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+ Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+ Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/reference/geometries/adapted/boost_range/reversed.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/reference/geometries/adapted/boost_range/reversed.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/reference/geometries/adapted/boost_range/reversed.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
- Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
- Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+ Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+ Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/reference/geometries/adapted/boost_range/sliced.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/reference/geometries/adapted/boost_range/sliced.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/reference/geometries/adapted/boost_range/sliced.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
- Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
- Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+ Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+ Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/reference/geometries/adapted/boost_range/strided.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/reference/geometries/adapted/boost_range/strided.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/reference/geometries/adapted/boost_range/strided.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
- Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
- Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+ Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+ Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/reference/geometries/adapted/boost_range/uniqued.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/reference/geometries/adapted/boost_range/uniqued.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/reference/geometries/adapted/boost_range/uniqued.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
- Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
- Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+ Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+ Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/reference/geometries/adapted/boost_tuple.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/reference/geometries/adapted/boost_tuple.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/reference/geometries/adapted/boost_tuple.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
- Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
- Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+ Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+ Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/reference/geometries/adapted/c_array.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/reference/geometries/adapted/c_array.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/reference/geometries/adapted/c_array.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
- Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
- Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+ Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+ Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/reference/geometries/point.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/reference/geometries/point.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/reference/geometries/point.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
- Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
- Copyright (c) 2009-2011 Bruno Lalande, Paris, France.
+ Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
+ Copyright (c) 2009-2012 Bruno Lalande, Paris, France.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/reference/geometries/register/point.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/reference/geometries/register/point.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/reference/geometries/register/point.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
- Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
- Copyright (c) 2009-2011 Bruno Lalande, Paris, France.
+ Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
+ Copyright (c) 2009-2012 Bruno Lalande, Paris, France.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/reference/views/box_view.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/reference/views/box_view.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/reference/views/box_view.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/reference/views/segment_view.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/reference/views/segment_view.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/reference/views/segment_view.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/copyright_block.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/copyright_block.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/copyright_block.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 [/============================================================================
   Boost.Geometry (aka GGL, Generic Geometry Library)
 
- Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
- Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
- Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+ Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+ Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 # Boost.Geometry (aka GGL, Generic Geometry Library)
 # Doxygen XML to QuickBook
 #
-# Copyright (c) 2010-2011 Barend Gehrels, Amsterdam, the Netherlands.
-# Copyright (c) 2010-2011 Mateusz Loskot, London, UK.
+# Copyright (c) 2010-2012 Barend Gehrels, Amsterdam, the Netherlands.
+# Copyright (c) 2010-2012 Mateusz Loskot, London, UK.
 
 # Use, modification and distribution is subject to the Boost Software License,
 # Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/configuration.hpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/configuration.hpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/configuration.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 //
-// Copyright (c) 2010-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2010-2012 Barend Gehrels, Amsterdam, the Netherlands.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/doxygen_elements.hpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/doxygen_elements.hpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/doxygen_elements.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 //
-// Copyright (c) 2010-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2010-2012 Barend Gehrels, Amsterdam, the Netherlands.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/doxygen_xml2qbk.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/doxygen_xml2qbk.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/doxygen_xml2qbk.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // doxml2qbk (developed in the context of Boost.Geometry documentation)
 //
-// Copyright (c) 2010 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2010-2012 Barend Gehrels, Amsterdam, the Netherlands.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/doxygen_xml_parser.hpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/doxygen_xml_parser.hpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/doxygen_xml_parser.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 //
-// Copyright (c) 2010-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2010-2012 Barend Gehrels, Amsterdam, the Netherlands.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/file_to_string.hpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/file_to_string.hpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/file_to_string.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 //
-// Copyright (c) 2010-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2010-2012 Barend Gehrels, Amsterdam, the Netherlands.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/parameter_predicates.hpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/parameter_predicates.hpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/parameter_predicates.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 //
-// Copyright (c) 2010-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2010-2012 Barend Gehrels, Amsterdam, the Netherlands.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/quickbook_output.hpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/quickbook_output.hpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/quickbook_output.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 //
-// Copyright (c) 2010-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2010-2012 Barend Gehrels, Amsterdam, the Netherlands.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/rapidxml_util.hpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/rapidxml_util.hpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/rapidxml_util.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 //
-// Copyright (c) 2010-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2010-2012 Barend Gehrels, Amsterdam, the Netherlands.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/sample/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/sample/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/sample/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 # Boost.Geometry (aka GGL, Generic Geometry Library)
 #
-# Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-# Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-# Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+# Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+# Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+# Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 # Use, modification and distribution is subject to the Boost Software License,
 # Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/sample/fruit.qbk
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/sample/fruit.qbk (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/sample/fruit.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 [/============================================================================
   Boost.Fruit (aka GGL, Generic Fruit Library)
 
- Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
+ Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
   Use, modification and distribution is subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
   http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/sample/make_qbk.py
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/sample/make_qbk.py (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/sample/make_qbk.py 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 #! /usr/bin/env python
 # -*- coding: utf-8 -*-
 # ===========================================================================
-# Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+# Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 #
 # Use, modification and distribution is subject to the Boost Software License,
 # Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/sample/src/examples/apple_example.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/sample/src/examples/apple_example.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/sample/src/examples/apple_example.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // doxygen_xml2qbk Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/sample/src/fruit.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/sample/src/fruit.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/sample/src/fruit.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // doxygen_xml2qbk Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/sample/src/fruit.hpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/sample/src/fruit.hpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/doxygen_xml2qbk/sample/src/fruit.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // doxygen_xml2qbk Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/implementation_status/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/implementation_status/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/implementation_status/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 # Boost.Geometry (aka GGL, Generic Geometry Library)
 #
-# Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-# Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-# Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+# Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+# Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+# Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 # Use, modification and distribution is subject to the Boost Software License,
 # Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/implementation_status/implementation_status.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/implementation_status/implementation_status.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/implementation_status/implementation_status.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Tool reporting Implementation Status in QBK format
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2011 Bruno Lalande, Paris, France.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Bruno Lalande, Paris, France.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/implementation_status/tmp/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/implementation_status/tmp/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/implementation_status/tmp/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 # Boost.Geometry (aka GGL, Generic Geometry Library)
 #
-# Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
-# Copyright (c) 2011 Bruno Lalande, Paris, France.
+# Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
+# Copyright (c) 2011-2012 Bruno Lalande, Paris, France.
 
 # Use, modification and distribution is subject to the Boost Software License,
 # Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/support_status/qbk_outputter.hpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/support_status/qbk_outputter.hpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/support_status/qbk_outputter.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Tool reporting Implementation Support Status in QBK or plain text format
 
-// Copyright (c) 2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -76,6 +76,11 @@
         boost::mpl::for_each<Types>(qbk_table_row_header(m_out));
         m_out << "]" << std::endl;
     }
+ inline void table_header()
+ {
+ m_out << "[table" << std::endl << "[[Geometry][Status]]" << std::endl;
+ }
+
     inline void table_footer()
     {
         m_out << "]" << std::endl;

Modified: branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/support_status/support_status.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/support_status/support_status.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/support_status/support_status.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Tool reporting Implementation Support Status in QBK or plain text format
 
-// Copyright (c) 2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -22,9 +22,11 @@
 #include <boost/geometry/multi/geometries/multi_geometries.hpp>
 #include <boost/geometry/multi/multi.hpp>
 #include <boost/geometry/algorithms/append.hpp>
+#include <boost/geometry/algorithms/area.hpp>
 #include <boost/geometry/algorithms/convert.hpp>
+#include <boost/geometry/algorithms/convex_hull.hpp>
 #include <boost/geometry/algorithms/distance.hpp>
-#include <boost/geometry/strategies/cartesian/distance_pythagoras.hpp>
+#include <boost/geometry/strategies/strategies.hpp>
 
 #include "text_outputter.hpp"
 #include "qbk_outputter.hpp"
@@ -54,21 +56,50 @@
     multi_polygon_type
> all_types;
 
+#define DECLARE_UNARY_ALGORITHM(algorithm) \
+ template <typename G> \
+ struct algorithm: boost::geometry::dispatch::algorithm<G> \
+ {};
+
 #define DECLARE_BINARY_ALGORITHM(algorithm) \
     template <typename G1, typename G2> \
     struct algorithm: boost::geometry::dispatch::algorithm<G1, G2> \
     {};
 
 DECLARE_BINARY_ALGORITHM(append)
-DECLARE_BINARY_ALGORITHM(distance)
+DECLARE_UNARY_ALGORITHM (area)
+DECLARE_UNARY_ALGORITHM (clear)
 DECLARE_BINARY_ALGORITHM(convert)
+DECLARE_UNARY_ALGORITHM (convex_hull)
+DECLARE_BINARY_ALGORITHM(distance)
 
 
+template <template <typename> class Dispatcher, typename Outputter, typename G>
+struct do_unary_test
+{
+ Outputter& m_outputter;
+ inline do_unary_test(Outputter& outputter)
+ : m_outputter(outputter)
+ {}
+
+ void operator()()
+ {
+ if (boost::is_base_of<boost::geometry::nyi::not_implemented_tag, Dispatcher<G> >::type::value)
+ {
+ m_outputter.nyi();
+ }
+ else
+ {
+ m_outputter.ok();
+ }
+ }
+};
+
 template <template <typename, typename> class Dispatcher, typename Outputter, typename G2 = void>
-struct do_test
+struct do_binary_test
 {
     Outputter& m_outputter;
- inline do_test(Outputter& outputter)
+ inline do_binary_test(Outputter& outputter)
         : m_outputter(outputter)
     {}
 
@@ -86,11 +117,29 @@
     }
 };
 
+template <template <typename> class Dispatcher, typename Outputter>
+struct unary_test
+{
+ Outputter& m_outputter;
+ inline unary_test(Outputter& outputter)
+ : m_outputter(outputter)
+ {}
+
+ template <typename G>
+ void operator()(G)
+ {
+ m_outputter.template begin_row<G>();
+ do_unary_test<Dispatcher, Outputter, G> test(m_outputter);
+ test();
+ m_outputter.end_row();
+ }
+};
+
 template <template <typename, typename> class Dispatcher, typename Types, typename Outputter>
-struct test
+struct binary_test
 {
     Outputter& m_outputter;
- inline test(Outputter& outputter)
+ inline binary_test(Outputter& outputter)
         : m_outputter(outputter)
     {}
 
@@ -98,11 +147,23 @@
     void operator()(G2)
     {
          m_outputter.template begin_row<G2>();
- boost::mpl::for_each<Types>(do_test<Dispatcher, Outputter, G2>(m_outputter));
+ boost::mpl::for_each<Types>(do_binary_test<Dispatcher, Outputter, G2>(m_outputter));
          m_outputter.end_row();
     }
 };
 
+template <template <typename> class Dispatcher, typename Types, typename Outputter>
+void test_unary_algorithm(std::string const& name)
+{
+ Outputter outputter(name);
+ outputter.header(name);
+
+ outputter.template table_header();
+ boost::mpl::for_each<Types>(unary_test<Dispatcher, Outputter>(outputter));
+
+ outputter.table_footer();
+}
+
 template <template <typename, typename> class Dispatcher, typename Types1, typename Types2, typename Outputter>
 void test_binary_algorithm(std::string const& name)
 {
@@ -110,7 +171,7 @@
     outputter.header(name);
 
     outputter.template table_header<Types2>();
- boost::mpl::for_each<Types1>(test<Dispatcher, Types2, Outputter>(outputter));
+ boost::mpl::for_each<Types1>(binary_test<Dispatcher, Types2, Outputter>(outputter));
 
     outputter.table_footer();
 }
@@ -120,8 +181,11 @@
 void support_status()
 {
     test_binary_algorithm<append, all_types, boost::mpl::vector<point_type, std::vector<point_type> >, OutputFactory>("append");
- test_binary_algorithm<distance, all_types, all_types, OutputFactory>("distance");
+ test_unary_algorithm<area, all_types, OutputFactory>("area");
+ test_unary_algorithm<clear, all_types, OutputFactory>("clear");
     test_binary_algorithm<convert, all_types, all_types, OutputFactory>("convert");
+ test_unary_algorithm<convex_hull, all_types, OutputFactory>("convex_hull");
+ test_binary_algorithm<distance, all_types, all_types, OutputFactory>("distance");
 }
 
 
@@ -135,5 +199,6 @@
     {
         support_status<text_outputter>();
     }
+
     return 0;
 }

Modified: branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/support_status/text_outputter.hpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/support_status/text_outputter.hpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/docutils/tools/support_status/text_outputter.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Tool reporting Implementation Support Status in QBK or plain text format
 
-// Copyright (c) 2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -22,6 +22,7 @@
 
     template <typename T>
     static inline void table_header() { }
+ static inline void table_header() { }
 
     static inline void table_footer() { std::cout << std::endl; }
 

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 # Boost.Geometry (aka GGL, Generic Geometry Library)
 #
-# Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-# Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-# Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+# Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+# Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+# Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 # Use, modification and distribution is subject to the Boost Software License,
 # Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 # Boost.Geometry (aka GGL, Generic Geometry Library)
 #
-# Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-# Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-# Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+# Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+# Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+# Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 # Use, modification and distribution is subject to the Boost Software License,
 # Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/append.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/append.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/append.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/area.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/area.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/area.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/area_with_strategy.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/area_with_strategy.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/area_with_strategy.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/assign.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/assign.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/assign.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/assign_2d_point.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/assign_2d_point.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/assign_2d_point.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/assign_3d_point.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/assign_3d_point.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/assign_3d_point.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/assign_box_corners.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/assign_box_corners.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/assign_box_corners.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/assign_inverse.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/assign_inverse.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/assign_inverse.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/assign_point_from_index.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/assign_point_from_index.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/assign_point_from_index.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/assign_point_to_index.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/assign_point_to_index.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/assign_point_to_index.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/assign_points.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/assign_points.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/assign_points.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/centroid.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/centroid.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/centroid.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/clear.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/clear.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/clear.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/comparable_distance.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/comparable_distance.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/comparable_distance.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/convert.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/convert.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/convert.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/convex_hull.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/convex_hull.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/convex_hull.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/correct.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/correct.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/correct.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/create_svg_overlay.hpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/create_svg_overlay.hpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/create_svg_overlay.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -44,6 +44,11 @@
         mapper.text(boost::geometry::return_centroid<point_type>(g), out.str(),
                     "fill:rgb(0,0,0);font-family:Arial;font-size:10px");
     }
+#else
+ boost::ignore_unused_variable_warning(filename);
+ boost::ignore_unused_variable_warning(a);
+ boost::ignore_unused_variable_warning(b);
+ boost::ignore_unused_variable_warning(range);
 #endif
 }
 

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/create_svg_two.hpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/create_svg_two.hpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/create_svg_two.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -40,6 +40,10 @@
     {
         mapper.map(b, "opacity:0.8;fill:none;stroke:rgb(255,128,0);stroke-width:4;stroke-dasharray:1,7;stroke-linecap:round");
     }
+#else
+ boost::ignore_unused_variable_warning(filename);
+ boost::ignore_unused_variable_warning(a);
+ boost::ignore_unused_variable_warning(b);
 #endif
 }
 

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/difference.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/difference.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/difference.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/difference_inserter.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/difference_inserter.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/difference_inserter.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/distance.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/distance.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/distance.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/envelope.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/envelope.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/envelope.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/equals.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/equals.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/equals.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/expand.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/expand.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/expand.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/for_each_point.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/for_each_point.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/for_each_point.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/for_each_point_const.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/for_each_point_const.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/for_each_point_const.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/for_each_segment_const.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/for_each_segment_const.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/for_each_segment_const.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/intersection_ls_ls_point.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/intersection_ls_ls_point.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/intersection_ls_ls_point.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/intersection_poly_poly.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/intersection_poly_poly.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/intersection_poly_poly.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/intersection_segment.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/intersection_segment.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/intersection_segment.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/intersects_linestring.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/intersects_linestring.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/intersects_linestring.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/intersects_segment.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/intersects_segment.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/intersects_segment.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/length.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/length.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/length.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/length_with_strategy.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/length_with_strategy.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/length_with_strategy.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/make_2d_point.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/make_2d_point.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/make_2d_point.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/make_3d_point.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/make_3d_point.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/make_3d_point.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/make_inverse.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/make_inverse.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/make_inverse.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/make_with_range.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/make_with_range.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/make_with_range.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/num_geometries.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/num_geometries.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/num_geometries.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/num_interior_rings.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/num_interior_rings.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/num_interior_rings.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/num_points.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/num_points.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/num_points.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/return_envelope.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/return_envelope.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/return_envelope.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/reverse.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/reverse.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/reverse.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/simplify.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/simplify.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/simplify.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/simplify_insert.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/simplify_insert.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/simplify_insert.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/simplify_insert_with_strategy.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/simplify_insert_with_strategy.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/simplify_insert_with_strategy.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/sym_difference.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/sym_difference.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/sym_difference.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/transform.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/transform.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/transform.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/transform_with_strategy.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/transform_with_strategy.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/transform_with_strategy.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/union.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/union.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/union.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/unique.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/unique.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/unique.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/within.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/within.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/algorithms/within.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/core/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/core/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/core/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 # Boost.Geometry (aka GGL, Generic Geometry Library)
 #
-# Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-# Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-# Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+# Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+# Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+# Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 # Use, modification and distribution is subject to the Boost Software License,
 # Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/core/closure.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/core/closure.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/core/closure.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/core/coordinate_dimension.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/core/coordinate_dimension.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/core/coordinate_dimension.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/core/coordinate_system.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/core/coordinate_system.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/core/coordinate_system.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/core/coordinate_type.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/core/coordinate_type.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/core/coordinate_type.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/core/degree_radian.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/core/degree_radian.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/core/degree_radian.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/core/get_box.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/core/get_box.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/core/get_box.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/core/get_point.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/core/get_point.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/core/get_point.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/core/interior_type.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/core/interior_type.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/core/interior_type.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/core/point_order.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/core/point_order.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/core/point_order.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/core/point_type.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/core/point_type.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/core/point_type.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/core/ring_type.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/core/ring_type.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/core/ring_type.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/core/rings.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/core/rings.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/core/rings.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/core/set_box.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/core/set_box.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/core/set_box.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/core/set_point.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/core/set_point.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/core/set_point.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/core/tag.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/core/tag.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/core/tag.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/core/tag_cast.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/core/tag_cast.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/core/tag_cast.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 # Boost.Geometry (aka GGL, Generic Geometry Library)
 #
-# Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-# Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-# Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+# Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+# Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+# Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 # Use, modification and distribution is subject to the Boost Software License,
 # Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/adapted/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/adapted/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/adapted/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 # Boost.Geometry (aka GGL, Generic Geometry Library)
 #
-# Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-# Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-# Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+# Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+# Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+# Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 # Use, modification and distribution is subject to the Boost Software License,
 # Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/adapted/boost_array.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/adapted/boost_array.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/adapted/boost_array.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/adapted/boost_fusion.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/adapted/boost_fusion.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/adapted/boost_fusion.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/adapted/boost_polygon.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/adapted/boost_polygon.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/adapted/boost_polygon.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/adapted/boost_range/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/adapted/boost_range/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/adapted/boost_range/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 # Boost.Geometry (aka GGL, Generic Geometry Library)
 #
-# Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-# Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-# Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+# Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+# Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+# Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 # Use, modification and distribution is subject to the Boost Software License,
 # Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/adapted/boost_range/filtered.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/adapted/boost_range/filtered.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/adapted/boost_range/filtered.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/adapted/boost_range/reversed.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/adapted/boost_range/reversed.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/adapted/boost_range/reversed.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/adapted/boost_range/sliced.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/adapted/boost_range/sliced.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/adapted/boost_range/sliced.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/adapted/boost_range/strided.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/adapted/boost_range/strided.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/adapted/boost_range/strided.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/adapted/boost_range/uniqued.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/adapted/boost_range/uniqued.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/adapted/boost_range/uniqued.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/adapted/boost_tuple.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/adapted/boost_tuple.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/adapted/boost_tuple.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/adapted/c_array.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/adapted/c_array.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/adapted/c_array.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/point.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/point.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/point.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/register/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/register/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/register/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 # Boost.Geometry (aka GGL, Generic Geometry Library)
 #
-# Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-# Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-# Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+# Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+# Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+# Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 # Use, modification and distribution is subject to the Boost Software License,
 # Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/register/box.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/register/box.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/register/box.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/register/box_2d_4values.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/register/box_2d_4values.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/register/box_2d_4values.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/register/box_templated.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/register/box_templated.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/register/box_templated.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/register/linestring.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/register/linestring.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/register/linestring.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/register/linestring_templated.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/register/linestring_templated.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/register/linestring_templated.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/register/multi_linestring.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/register/multi_linestring.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/register/multi_linestring.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/register/multi_point.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/register/multi_point.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/register/multi_point.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/register/multi_point_templated.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/register/multi_point_templated.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/register/multi_point_templated.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/register/multi_polygon.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/register/multi_polygon.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/register/multi_polygon.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/register/point.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/register/point.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/register/point.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/register/ring.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/register/ring.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/register/ring.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/register/ring_templated.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/register/ring_templated.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/geometries/register/ring_templated.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/quick_start.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/quick_start.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/quick_start.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Quickbook Examples, for main page
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/views/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/views/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/views/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 # Boost.Geometry (aka GGL, Generic Geometry Library)
 #
-# Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-# Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-# Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+# Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+# Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+# Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 # Use, modification and distribution is subject to the Boost Software License,
 # Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/views/box_view.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/views/box_view.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/views/box_view.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/doc/src/examples/views/segment_view.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/doc/src/examples/views/segment_view.cpp (original)
+++ branches/quickbook-dev/libs/geometry/doc/src/examples/views/segment_view.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // QuickBook Example
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/example/01_point_example.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/example/01_point_example.cpp (original)
+++ branches/quickbook-dev/libs/geometry/example/01_point_example.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/example/02_linestring_example.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/example/02_linestring_example.cpp (original)
+++ branches/quickbook-dev/libs/geometry/example/02_linestring_example.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/example/03_polygon_example.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/example/03_polygon_example.cpp (original)
+++ branches/quickbook-dev/libs/geometry/example/03_polygon_example.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/example/04_boost_example.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/example/04_boost_example.cpp (original)
+++ branches/quickbook-dev/libs/geometry/example/04_boost_example.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/example/05_a_overlay_polygon_example.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/example/05_a_overlay_polygon_example.cpp (original)
+++ branches/quickbook-dev/libs/geometry/example/05_a_overlay_polygon_example.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/example/05_b_overlay_linestring_polygon_example.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/example/05_b_overlay_linestring_polygon_example.cpp (original)
+++ branches/quickbook-dev/libs/geometry/example/05_b_overlay_linestring_polygon_example.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/example/06_a_transformation_example.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/example/06_a_transformation_example.cpp (original)
+++ branches/quickbook-dev/libs/geometry/example/06_a_transformation_example.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/example/06_b_transformation_example.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/example/06_b_transformation_example.cpp (original)
+++ branches/quickbook-dev/libs/geometry/example/06_b_transformation_example.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Example: Affine Transformation (translate, scale, rotate)
 //
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 //
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/example/07_a_graph_route_example.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/example/07_a_graph_route_example.cpp (original)
+++ branches/quickbook-dev/libs/geometry/example/07_a_graph_route_example.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/example/07_b_graph_route_example.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/example/07_b_graph_route_example.cpp (original)
+++ branches/quickbook-dev/libs/geometry/example/07_b_graph_route_example.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/example/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/geometry/example/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/geometry/example/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 # Boost.Geometry (aka GGL, Generic Geometry Library)
 # Controls building of Boost.Geometry examples
 #
-# Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-# Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-# Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+# Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+# Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+# Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 # Use, modification and distribution is subject to the Boost Software License,
 # Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/example/c01_custom_point_example.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/example/c01_custom_point_example.cpp (original)
+++ branches/quickbook-dev/libs/geometry/example/c01_custom_point_example.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/example/c02_custom_box_example.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/example/c02_custom_box_example.cpp (original)
+++ branches/quickbook-dev/libs/geometry/example/c02_custom_box_example.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/example/c03_custom_linestring_example.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/example/c03_custom_linestring_example.cpp (original)
+++ branches/quickbook-dev/libs/geometry/example/c03_custom_linestring_example.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/example/c04_a_custom_triangle_example.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/example/c04_a_custom_triangle_example.cpp (original)
+++ branches/quickbook-dev/libs/geometry/example/c04_a_custom_triangle_example.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/example/c04_b_custom_triangle_example.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/example/c04_b_custom_triangle_example.cpp (original)
+++ branches/quickbook-dev/libs/geometry/example/c04_b_custom_triangle_example.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/example/c05_custom_point_pointer_example.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/example/c05_custom_point_pointer_example.cpp (original)
+++ branches/quickbook-dev/libs/geometry/example/c05_custom_point_pointer_example.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/example/c06_custom_polygon_example.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/example/c06_custom_polygon_example.cpp (original)
+++ branches/quickbook-dev/libs/geometry/example/c06_custom_polygon_example.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/example/c07_custom_ring_pointer_example.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/example/c07_custom_ring_pointer_example.cpp (original)
+++ branches/quickbook-dev/libs/geometry/example/c07_custom_ring_pointer_example.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/example/c08_custom_non_std_example.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/example/c08_custom_non_std_example.cpp (original)
+++ branches/quickbook-dev/libs/geometry/example/c08_custom_non_std_example.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/example/c09_custom_fusion_example.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/example/c09_custom_fusion_example.cpp (original)
+++ branches/quickbook-dev/libs/geometry/example/c09_custom_fusion_example.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2011 Akira Takahashi
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Akira Takahashi
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/example/c10_custom_cs_example.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/example/c10_custom_cs_example.cpp (original)
+++ branches/quickbook-dev/libs/geometry/example/c10_custom_cs_example.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/example/c11_custom_cs_transform_example.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/example/c11_custom_cs_transform_example.cpp (original)
+++ branches/quickbook-dev/libs/geometry/example/c11_custom_cs_transform_example.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/example/ml01_multipolygon_simplify.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/example/ml01_multipolygon_simplify.cpp (original)
+++ branches/quickbook-dev/libs/geometry/example/ml01_multipolygon_simplify.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/example/ml02_distance_strategy.cpp
==============================================================================
Binary files. No diff available.

Modified: branches/quickbook-dev/libs/geometry/example/with_external_libs/x01_qt_example.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/example/with_external_libs/x01_qt_example.cpp (original)
+++ branches/quickbook-dev/libs/geometry/example/with_external_libs/x01_qt_example.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 //
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/example/with_external_libs/x02_gd_example.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/example/with_external_libs/x02_gd_example.cpp (original)
+++ branches/quickbook-dev/libs/geometry/example/with_external_libs/x02_gd_example.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 //
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/example/with_external_libs/x03_a_soci_example.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/example/with_external_libs/x03_a_soci_example.cpp (original)
+++ branches/quickbook-dev/libs/geometry/example/with_external_libs/x03_a_soci_example.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 //
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/example/with_external_libs/x03_b_soci_example.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/example/with_external_libs/x03_b_soci_example.cpp (original)
+++ branches/quickbook-dev/libs/geometry/example/with_external_libs/x03_b_soci_example.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 //
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/example/with_external_libs/x03_c_soci_example.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/example/with_external_libs/x03_c_soci_example.cpp (original)
+++ branches/quickbook-dev/libs/geometry/example/with_external_libs/x03_c_soci_example.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 //
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 //
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/example/with_external_libs/x03_d_soci_example.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/example/with_external_libs/x03_d_soci_example.cpp (original)
+++ branches/quickbook-dev/libs/geometry/example/with_external_libs/x03_d_soci_example.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 //
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 //
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/example/with_external_libs/x04_wxwidgets_world_mapper.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/example/with_external_libs/x04_wxwidgets_world_mapper.cpp (original)
+++ branches/quickbook-dev/libs/geometry/example/with_external_libs/x04_wxwidgets_world_mapper.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 //
-// Copyright (c) 2010 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2010-2012 Barend Gehrels, Amsterdam, the Netherlands.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/example/with_external_libs/x05_shapelib_example.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/example/with_external_libs/x05_shapelib_example.cpp (original)
+++ branches/quickbook-dev/libs/geometry/example/with_external_libs/x05_shapelib_example.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 //
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/example/with_external_libs/x06_qt_world_mapper.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/example/with_external_libs/x06_qt_world_mapper.cpp (original)
+++ branches/quickbook-dev/libs/geometry/example/with_external_libs/x06_qt_world_mapper.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 //
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/example_extensions/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/geometry/example_extensions/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/geometry/example_extensions/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 # Boost.Geometry (aka GGL, Generic Geometry Library)
 #
-# Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-# Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-# Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+# Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+# Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+# Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 # Use, modification and distribution is subject to the Boost Software License,
 # Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/example_extensions/experimental/geometry_of.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/example_extensions/experimental/geometry_of.cpp (original)
+++ branches/quickbook-dev/libs/geometry/example_extensions/experimental/geometry_of.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 //
-// Copyright (c) 2010 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2010-2012 Barend Gehrels, Amsterdam, the Netherlands.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/example_extensions/gis/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/geometry/example_extensions/gis/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/geometry/example_extensions/gis/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 # Boost.Geometry (aka GGL, Generic Geometry Library)
 #
-# Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-# Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-# Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+# Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+# Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+# Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 # Use, modification and distribution is subject to the Boost Software License,
 # Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/example_extensions/gis/io/shapelib/shapelib.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/example_extensions/gis/io/shapelib/shapelib.cpp (original)
+++ branches/quickbook-dev/libs/geometry/example_extensions/gis/io/shapelib/shapelib.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 //
-// Copyright (c) 2010 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2010-2012 Barend Gehrels, Amsterdam, the Netherlands.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/example_extensions/gis/latlong/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/geometry/example_extensions/gis/latlong/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/geometry/example_extensions/gis/latlong/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 # Boost.Geometry (aka GGL, Generic Geometry Library)
 #
-# Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-# Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-# Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+# Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+# Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+# Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 # Use, modification and distribution is subject to the Boost Software License,
 # Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/example_extensions/gis/latlong/distance_example.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/example_extensions/gis/latlong/distance_example.cpp (original)
+++ branches/quickbook-dev/libs/geometry/example_extensions/gis/latlong/distance_example.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 //
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/example_extensions/gis/latlong/point_ll_example.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/example_extensions/gis/latlong/point_ll_example.cpp (original)
+++ branches/quickbook-dev/libs/geometry/example_extensions/gis/latlong/point_ll_example.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 //
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/example_extensions/gis/projections/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/geometry/example_extensions/gis/projections/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/geometry/example_extensions/gis/projections/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 # Boost.Geometry (aka GGL, Generic Geometry Library)
 #
-# Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-# Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-# Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+# Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+# Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+# Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 # Use, modification and distribution is subject to the Boost Software License,
 # Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/example_extensions/gis/projections/p01_projection_example.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/example_extensions/gis/projections/p01_projection_example.cpp (original)
+++ branches/quickbook-dev/libs/geometry/example_extensions/gis/projections/p01_projection_example.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 //
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/example_extensions/gis/projections/p02_projfactory_example.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/example_extensions/gis/projections/p02_projfactory_example.cpp (original)
+++ branches/quickbook-dev/libs/geometry/example_extensions/gis/projections/p02_projfactory_example.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 //
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/example_extensions/gis/projections/p03_projmap_example.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/example_extensions/gis/projections/p03_projmap_example.cpp (original)
+++ branches/quickbook-dev/libs/geometry/example_extensions/gis/projections/p03_projmap_example.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 //
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/example_extensions/units/08_units_example.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/example_extensions/units/08_units_example.cpp (original)
+++ branches/quickbook-dev/libs/geometry/example_extensions/units/08_units_example.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/geometry/test/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 # Boost.Geometry (aka GGL, Generic Geometry Library)
 #
-# Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-# Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-# Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+# Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+# Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+# Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 #
 # Use, modification and distribution is subject to the Boost Software License,
 # Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 # Boost.Geometry (aka GGL, Generic Geometry Library)
 #
-# Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-# Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-# Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+# Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+# Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+# Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 #
 # Use, modification and distribution is subject to the Boost Software License,
 # Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/append.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/append.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/append.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/area.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/area.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/area.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
@@ -194,7 +194,15 @@
     // Note the triangular testcase used in CCW is not sensible for open/close
 }
 
+template <typename P>
+void test_empty_input()
+{
+ bg::model::polygon<P> poly_empty;
+ bg::model::ring<P> ring_empty;
 
+ test_empty_input(poly_empty);
+ test_empty_input(ring_empty);
+}
 
 int test_main(int, char* [])
 {
@@ -214,5 +222,7 @@
     test_spherical<bg::model::point<ttmath_big, 2, bg::cs::spherical_equatorial<bg::degree> > >();
 #endif
 
+ test_empty_input<bg::model::d2::point_xy<int> >();
+
     return 0;
 }

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/assign.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/assign.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/assign.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/buffer.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/buffer.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/buffer.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/centroid.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/centroid.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/centroid.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
@@ -73,10 +73,6 @@
 
     test_centroid<bg::model::box<P> >("POLYGON((1 2,3 4))", 2, 3);
     test_centroid<P>("POINT(3 3)", 3, 3);
-
- //test_centroid_exception<bg::model::linestring<P> >("LINESTRING EMPTY");
-/// test_centroid_exception<bg::model::polygon<P> >("POLYGON EMPTY");
-// test_centroid_exception<bg::model::ring<P> >("POLYGON EMPTY");
 }
 
 
@@ -97,9 +93,19 @@
                                              4.9202312983547678, 0.69590937869808345, 1.2632138719797417, 6.0468332057401986, 23.082402715244868);
 }
 
+template <typename P>
+void test_exceptions()
+{
+ test_centroid_exception<bg::model::linestring<P> >();
+ test_centroid_exception<bg::model::polygon<P> >();
+ test_centroid_exception<bg::model::ring<P> >();
+}
+
 
 int test_main(int, char* [])
 {
+ test_exceptions<bg::model::d2::point_xy<double> >();
+
     test_2d<bg::model::d2::point_xy<double> >();
     test_2d<boost::tuple<float, float> >();
     test_2d<bg::model::d2::point_xy<float> >();

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/comparable_distance.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/comparable_distance.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/comparable_distance.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/convert.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/convert.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/convert.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/convex_hull.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/convex_hull.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/convex_hull.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
@@ -44,9 +44,14 @@
         ", 5.3 2.6, 5.4 1.2, 4.9 0.8, 2.9 0.7,2.0 1.3))",
                 12, 8, 5.245);
 
- // Waits for next cycle test_geometry<bg::model::box<P> >("box(0 0,2 2)", 5, 5, 4);
+ test_geometry<bg::model::box<P> >("box(0 0,2 2)", 4, 5, 4);
+
+ test_empty_input<bg::model::linestring<P> >();
+ test_empty_input<bg::model::ring<P> >();
+ test_empty_input<bg::model::polygon<P> >();
 }
 
+
 int test_main(int, char* [])
 {
     //test_all<bg::model::d2::point_xy<int> >();

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/correct.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/correct.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/correct.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/covered_by.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/covered_by.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/covered_by.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 //
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/detail/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/detail/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/detail/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 # Boost.Geometry (aka GGL, Generic Geometry Library)
 #
-# Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-# Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-# Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+# Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+# Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+# Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 #
 # Use, modification and distribution is subject to the Boost Software License,
 # Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/detail/partition.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/detail/partition.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/detail/partition.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 //
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/detail/sections/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/detail/sections/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/detail/sections/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 # Boost.Geometry (aka GGL, Generic Geometry Library)
 #
-# Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-# Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-# Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+# Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+# Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+# Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 #
 # Use, modification and distribution is subject to the Boost Software License,
 # Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/detail/sections/range_by_section.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/detail/sections/range_by_section.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/detail/sections/range_by_section.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2010 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2010-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/detail/sections/sectionalize.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/detail/sections/sectionalize.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/detail/sections/sectionalize.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/difference.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/difference.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/difference.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2010-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2010-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -38,6 +38,7 @@
 #include <algorithms/test_overlay.hpp>
 #include <algorithms/overlay/overlay_cases.hpp>
 #include <multi/algorithms/overlay/multi_overlay_cases.hpp>
+#include <boost/geometry/multi/io/wkt/wkt.hpp>
 
 
 #ifdef HAVE_TTMATH

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/disjoint.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/disjoint.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/disjoint.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/distance.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/distance.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/distance.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
@@ -228,6 +228,20 @@
     // test_geometry<P, boost::array<P, 2> >("POINT(3 1)", "LINESTRING(1 1,4 4)", sqrt(2.0));
 
     test_geometry<P, test::wrapped_boost_array<P, 2> >("POINT(3 1)", "LINESTRING(1 1,4 4)", sqrt(2.0));
+
+}
+
+template <typename P>
+void test_empty_input()
+{
+ P p;
+ bg::model::linestring<P> line_empty;
+ bg::model::polygon<P> poly_empty;
+ bg::model::ring<P> ring_empty;
+
+ test_empty_input(p, line_empty);
+ test_empty_input(p, poly_empty);
+ test_empty_input(p, ring_empty);
 }
 
 int test_main(int, char* [])
@@ -248,5 +262,7 @@
     test_all<bg::model::d2::point_xy<ttmath_big> >();
 #endif
 
+ test_empty_input<bg::model::d2::point_xy<int> >();
+
     return 0;
 }

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/envelope.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/envelope.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/envelope.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/equals.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/equals.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/equals.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 //
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/expand.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/expand.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/expand.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/for_each.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/for_each.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/for_each.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/intersection.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/intersection.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/intersection.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/intersection_segment.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/intersection_segment.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/intersection_segment.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/intersects.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/intersects.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/intersects.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 //
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/length.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/length.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/length.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -33,6 +33,12 @@
     test_geometry<bg::model::polygon<P> >("POLYGON((0 0,0 1,1 1,1 0,0 0))", 0);
 }
 
+template <typename P>
+void test_empty_input()
+{
+ test_empty_input(bg::model::linestring<P>());
+}
+
 int test_main(int, char* [])
 {
     test_all<bg::model::d2::point_xy<int> >();
@@ -43,5 +49,7 @@
     test_all<bg::model::d2::point_xy<ttmath_big> >();
 #endif
 
+ test_empty_input<bg::model::d2::point_xy<int> >();
+
     return 0;
 }

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/make.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/make.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/make.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/overlaps.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/overlaps.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/overlaps.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 //
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/overlay/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/overlay/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/overlay/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 # Boost.Geometry (aka GGL, Generic Geometry Library)
 #
-# Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-# Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-# Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+# Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+# Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+# Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 #
 # Use, modification and distribution is subject to the Boost Software License,
 # Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -11,11 +11,11 @@
 test-suite boost-geometry-algorithms-overlay
     :
     [ run assemble.cpp ]
-# [ run ccw_traverse.cpp ]
+ [ run ccw_traverse.cpp ]
     [ run get_turn_info.cpp ]
     [ run get_turns.cpp ]
-# [ run relative_order.cpp ]
+ [ run relative_order.cpp ]
     [ run select_rings.cpp ]
-# [ run self_intersection_points.cpp ]
+ [ run self_intersection_points.cpp ]
     [ run traverse.cpp ]
      ;

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/overlay/assemble.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/overlay/assemble.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/overlay/assemble.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2010 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2010-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/overlay/ccw_traverse.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/overlay/ccw_traverse.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/overlay/ccw_traverse.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2010 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2010-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -17,6 +17,7 @@
 
 #include <boost/geometry/geometry.hpp>
 #include <boost/geometry/geometries/point_xy.hpp>
+#include <boost/geometry/geometries/polygon.hpp>
 #include <boost/geometry/io/wkt/wkt.hpp>
 
 #if defined(TEST_WITH_SVG)

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/overlay/dissolver.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/overlay/dissolver.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/overlay/dissolver.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2010 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2010-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/overlay/enrich_intersection_points.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/overlay/enrich_intersection_points.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/overlay/enrich_intersection_points.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/overlay/get_turn_info.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/overlay/get_turn_info.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/overlay/get_turn_info.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/overlay/get_turns.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/overlay/get_turns.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/overlay/get_turns.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/overlay/overlay_cases.hpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/overlay/overlay_cases.hpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/overlay/overlay_cases.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 //
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/overlay/overlay_common.hpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/overlay/overlay_common.hpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/overlay/overlay_common.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 //
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/overlay/relative_order.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/overlay/relative_order.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/overlay/relative_order.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/overlay/robustness/interior_triangles.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/overlay/robustness/interior_triangles.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/overlay/robustness/interior_triangles.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/overlay/robustness/intersection_pies.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/overlay/robustness/intersection_pies.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/overlay/robustness/intersection_pies.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/overlay/robustness/intersection_stars.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/overlay/robustness/intersection_stars.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/overlay/robustness/intersection_stars.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/overlay/robustness/intersects.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/overlay/robustness/intersects.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/overlay/robustness/intersects.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/overlay/robustness/random_ellipses_stars.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/overlay/robustness/random_ellipses_stars.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/overlay/robustness/random_ellipses_stars.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/overlay/robustness/recursive_polygons.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/overlay/robustness/recursive_polygons.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/overlay/robustness/recursive_polygons.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/overlay/robustness/star_comb.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/overlay/robustness/star_comb.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/overlay/robustness/star_comb.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/overlay/robustness/star_comb.hpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/overlay/robustness/star_comb.hpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/overlay/robustness/star_comb.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/overlay/robustness/test_overlay_p_q.hpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/overlay/robustness/test_overlay_p_q.hpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/overlay/robustness/test_overlay_p_q.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 //
-// Copyright (c) 2009-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2009-2012 Barend Gehrels, Amsterdam, the Netherlands.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)
@@ -23,13 +23,14 @@
 
 
 #include <boost/geometry/geometry.hpp>
-#include <boost/geometry/multi/multi.hpp>
 
+#include <boost/geometry/io/wkt/wkt.hpp>
+
+#include <boost/geometry/multi/multi.hpp>
 #include <boost/geometry/multi/geometries/multi_polygon.hpp>
+#include <boost/geometry/multi/io/wkt/wkt.hpp>
 
 #include <boost/geometry/algorithms/detail/overlay/debug_turn_info.hpp>
-
-#include <boost/geometry/io/wkt/wkt.hpp>
 #include <boost/geometry/extensions/io/svg/svg_mapper.hpp>
 
 #include <geometry_test_common.hpp>

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/overlay/select_rings.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/overlay/select_rings.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/overlay/select_rings.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 //
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/overlay/self_intersection_points.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/overlay/self_intersection_points.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/overlay/self_intersection_points.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
@@ -25,12 +25,14 @@
 #include <boost/geometry/algorithms/detail/overlay/self_turn_points.hpp>
 
 #include <boost/geometry/geometries/point_xy.hpp>
+#include <boost/geometry/geometries/polygon.hpp>
 
 #include <boost/geometry/strategies/strategies.hpp>
 
 #include <boost/geometry/io/wkt/read.hpp>
 #include <boost/geometry/io/wkt/write.hpp>
 
+#include <algorithms/overlay/overlay_cases.hpp>
 
 
 #if defined(TEST_WITH_SVG)
@@ -45,23 +47,26 @@
             boost::tuple<int, double, double> const& expected_count_and_center,
             Geometry const& geometry, double precision)
     {
- typedef bg::detail::overlay::turn_info
- <
- typename bg::point_type<Geometry>::type
- > turn_info;
+
+ typedef bg::detail::overlay::turn_info
+ <
+ typename bg::point_type<Geometry>::type
+ > turn_info;
 
         std::vector<turn_info> turns;
 
         ///bg::get_intersection_points(geometry, turns);
 
- bg::detail::get_turns::no_interrupt_policy policy;
+ bg::detail::self_get_turn_points::no_interrupt_policy policy;
         bg::self_turns
             <
                 bg::detail::overlay::assign_null_policy
>(geometry, turns, policy);
 
 
- double x = 0, y = 0;
+ typedef typename bg::coordinate_type<Geometry>::type ct;
+ ct zero = ct();
+ ct x = zero, y = zero;
         BOOST_FOREACH(turn_info const& turn, turns)
         {
             x += bg::get<0>(turn.point);
@@ -125,9 +130,9 @@
 
     std::string caseid = id;
 
-//#ifdef GEOMETRY_DEBUG_INTERSECTION
+#ifdef GEOMETRY_DEBUG_INTERSECTION
     std::cout << std::endl << std::endl << "# " << caseid << std::endl;
-//#endif
+#endif
     test_self_intersection_points::apply(caseid, expected, geometry, precision);
 }
 
@@ -190,18 +195,18 @@
 
     // Hole: interior tangent to exterior
 
- test_self_overlay<polygon>("h1", boost::make_tuple(2, 2, 4),
+ test_self_overlay<polygon>("h1", boost::make_tuple(1, 2, 4),
             "POLYGON((0 0,0 4,4 4,4 0,0 0),(1 2,2 4,3 2,1 2))");
 
 
     // Hole: interior intersecting exterior
 
- test_self_overlay<polygon>("h2", boost::make_tuple(4, 4, 3.5),
+ test_self_overlay<polygon>("h2", boost::make_tuple(2, 4, 3.5),
             "POLYGON((0 0,0 4,4 4,4 0,0 0),(1 1,1 3,5 4,1 1))");
 
 
     // Hole: two intersecting holes
- test_self_overlay<polygon>("h3", boost::make_tuple(4, 2.5, 2.5),
+ test_self_overlay<polygon>("h3", boost::make_tuple(2, 2.5, 2.5),
             "POLYGON((0 0,0 4,4 4,4 0,0 0),(1 1,1 3,3 3,3 1,1 1),(2 2,2 3.5,3.5 3.5,3.5 2,2 2))");
 
     // Hole: self-intersecting hole
@@ -212,18 +217,20 @@
     test_self_overlay<polygon>("case_1", boost::make_tuple(6, 0, 0),
             "POLYGON((1 3,0 9,9 5,1 7,9 8,2 5,10 10,9 2,1 3))");
 
+ test_self_overlay<polygon>("buffer_poly_indentation8_d_r", boost::make_tuple(3, 0, 0),
+ "POLYGON((-0.8 5,-0.799036 5.03925,-0.796148 5.07841,-0.791341 5.11738,-0.784628 5.15607,-0.776025 5.19438,-0.765552 5.23223,-0.753235 5.26951,-0.739104 5.30615,-0.723191 5.34204,-0.705537 5.37712,-0.686183 5.41128,-0.665176 5.44446,-0.642566 5.47656,-0.618408 5.50751,-0.592761 5.53725,-0.537247 5.59276,-0.507515 5.61841,-0.476559 5.64257,-0.444456 5.66518,-0.411282 5.68618,-0.377117 5.70554,-0.342044 5.72319,-0.306147 5.7391,-0.269512 5.75324,-0.232228 5.76555,-0.194384 5.77603,-0.156072 5.78463,-0.117384 5.79134,-0.0784137 5.79615,-0.0392541 5.79904,0 5.8,4 5.8,4.03925 5.79904,4.07841 5.79615,4.11738 5.79134,4.15607 5.78463,4.19438 5.77603,4.23223 5.76555,4.26951 5.75324,4.30615 5.7391,4.34204 5.72319,4.37712 5.70554,4.41128 5.68618,4.44446 5.66518,4.47656 5.64257,4.50751 5.61841,4.53725 5.59276,4.59276 5.53725,4.61841 5.50751,4.64257 5.47656,4.66518 5.44446,4.68618 5.41128,4.70554 5.37712,4.72319 5.34204,4.7391 5.30615,4.75324 5.26951,4.76555 5.23223,4.77603 5.19438,4.78463 5.15607,4.79134 5.
11738,4.79615 5.07841,4.79904 5.03925,4.8 5,4.8 4,4.79976 3.98037,4.79904 3.96075,4.79783 3.94115,4.79615 3.92159,4.79398 3.90207,4.79134 3.88262,4.78822 3.86323,4.78463 3.84393,4.78056 3.82472,4.77603 3.80562,4.77102 3.78663,4.76555 3.76777,4.75962 3.74905,4.75324 3.73049,4.74639 3.71208,4.73137 3.67581,4.72319 3.65796,4.71458 3.64031,4.70554 3.62288,4.69607 3.60568,4.68618 3.58872,4.67588 3.572,4.66518 3.55554,4.65407 3.53935,4.64257 3.52344,4.63068 3.50781,4.61841 3.49249,4.60577 3.47746,4.59276 3.46275,4.5794 3.44837,4.56569 3.43431,3.56569 2.43431,3.53725 2.40724,3.50751 2.38159,3.47656 2.35743,3.44446 2.33482,3.41128 2.31382,3.37712 2.29446,3.34204 2.27681,3.30615 2.2609,3.26951 2.24676,3.23223 2.23445,3.19438 2.22397,3.15607 2.21537,3.11738 2.20866,3.07841 2.20385,3.03925 2.20096,2.96075 2.20096,2.92159 2.20385,2.88262 2.20866,2.84393 2.21537,2.80562 2.22397,2.76777 2.23445,2.73049 2.24676,2.69385 2.2609,2.65796 2.27681,2.62288 2.29446,2.58872 2.31382,2.55554 2.33482,2.52344 2.35743,2.49249 2.38159,2.
46275 2.40724,2.43431 2.43431,2.8 2.06863,2.8 2.93137,2.43431 2.56569,2.46275 2.59276,2.49249 2.61841,2.52344 2.64257,2.55554 2.66518,2.58872 2.68618,2.62288 2.70554,2.65796 2.72319,2.69385 2.7391,2.73049 2.75324,2.76777 2.76555,2.80562 2.77603,2.84393 2.78463,2.88262 2.79134,2.92159 2.79615,2.96075 2.79904,3.03925 2.79904,3.07841 2.79615,3.11738 2.79134,3.15607 2.78463,3.19438 2.77603,3.23223 2.76555,3.26951 2.75324,3.30615 2.7391,3.34204 2.72319,3.37712 2.70554,3.41128 2.68618,3.44446 2.66518,3.47656 2.64257,3.50751 2.61841,3.53725 2.59276,3.56569 2.56569,4.56569 1.56569,4.5794 1.55163,4.59276 1.53725,4.60577 1.52254,4.61841 1.50751,4.63068 1.49219,4.64257 1.47656,4.65407 1.46065,4.66518 1.44446,4.67588 1.428,4.68618 1.41128,4.69607 1.39432,4.70554 1.37712,4.71458 1.35969,4.72319 1.34204,4.73137 1.32419,4.74639 1.28792,4.75324 1.26951,4.75962 1.25095,4.76555 1.23223,4.77102 1.21337,4.77603 1.19438,4.78056 1.17528,4.78463 1.15607,4.78822 1.13677,4.79134 1.11738,4.79398 1.09793,4.79615 1.07841,4.79783 1.0588
5,4.79904 1.03925,4.79976 1.01963,4.8 1,4.8 0,4.79904 -0.0392541,4.79615 -0.0784137,4.79134 -0.117384,4.78463 -0.156072,4.77603 -0.194384,4.76555 -0.232228,4.75324 -0.269512,4.7391 -0.306147,4.72319 -0.342044,4.70554 -0.377117,4.68618 -0.411282,4.66518 -0.444456,4.64257 -0.476559,4.61841 -0.507515,4.59276 -0.537247,4.53725 -0.592761,4.50751 -0.618408,4.47656 -0.642566,4.44446 -0.665176,4.41128 -0.686183,4.37712 -0.705537,4.34204 -0.723191,4.30615 -0.739104,4.26951 -0.753235,4.23223 -0.765552,4.19438 -0.776025,4.15607 -0.784628,4.11738 -0.791341,4.07841 -0.796148,4.03925 -0.799036,4 -0.8,0 -0.8,-0.0392541 -0.799036,-0.0784137 -0.796148,-0.117384 -0.791341,-0.156072 -0.784628,-0.194384 -0.776025,-0.232228 -0.765552,-0.269512 -0.753235,-0.306147 -0.739104,-0.342044 -0.723191,-0.377117 -0.705537,-0.411282 -0.686183,-0.444456 -0.665176,-0.476559 -0.642566,-0.507515 -0.618408,-0.537247 -0.592761,-0.592761 -0.537247,-0.618408 -0.507515,-0.642566 -0.476559,-0.665176 -0.444456,-0.686183 -0.411282,-0.705537 -0.377117,
-0.723191 -0.342044,-0.739104 -0.306147,-0.753235 -0.269512,-0.765552 -0.232228,-0.776025 -0.194384,-0.784628 -0.156072,-0.791341 -0.117384,-0.796148 -0.0784137,-0.799036 -0.0392541,-0.8 0,-0.8 5))");
 
- test_self_overlay<polygon>("toolkit_2", boost::make_tuple(12, 2.06060606, 2.96969697),
+ test_self_overlay<polygon>("toolkit_2", boost::make_tuple(12, 0, 0),
             "POLYGON((170718 605997,170718 605997,170776 606016,170773 606015,170786 606020,170778 606016,170787 606021,170781 606017,170795 606028,170795 606028,170829 606055,170939 606140,170933 605968,170933 605968,170932 605908,170929 605834,170920 605866,170961 605803,170739 605684,170699 605749,170691 605766,170693 605762,170686 605775,170688 605771,170673 605794,170676 605790,170668 605800,170672 605796,170651 605818,170653 605816,170639 605829,170568 605899,170662 605943,170633 605875,170603 605961,170718 605997))");
 
     // Real-life
 
     std::string const ticket17 = "POLYGON ((-122.28139163 37.37319149,-122.28100699 37.37273669,-122.28002186 37.37303123,-122.27979681 37.37290072,-122.28007349 37.37240493,-122.27977334 37.37220360,-122.27819720 37.37288580,-122.27714184 37.37275161,-122.27678628 37.37253167,-122.27766437 37.37180973,-122.27804382 37.37121453,-122.27687664 37.37101354,-122.27645829 37.37203386,-122.27604423 37.37249110,-122.27632234 37.37343339,-122.27760980 37.37391082,-122.27812478 37.37800320,-122.26117222 37.39121007,-122.25572289 37.39566631,-122.25547269 37.39564971,-122.25366304 37.39552993,-122.24919976 37.39580268,-122.24417933 37.39366907,-122.24051443 37.39094143,-122.23246277 37.38100418,-122.23606766 37.38141338,-122.24001587 37.37738940,-122.23666848 37.37609347,-122.23057450 37.37882170,-122.22679803 37.37807143,-122.22525727 37.37448817,-122.22523229 37.37443000,-122.23083199 37.37609347,-122.23033486 37.37777891,-122.23169030 37.37732117,-122.23229178 37.37709687,-122.23237761 37.37631249,-122.23297776 37
.37438834,-122.23872850 37.37165986,-122.24044511 37.36934068,-122.24671067 37.36865847,-122.24825570 37.36981819,-122.25151719 37.36947713,-122.25357721 37.36756706,-122.26001451 37.36579354,-122.25615213 37.36545239,-122.25486458 37.36245083,-122.25357721 37.36108651,-122.25194642 37.36013139,-122.24885652 37.35958557,-122.24911401 37.35849399,-122.25357721 37.35808470,-122.25675286 37.35897159,-122.25855539 37.35753887,-122.26181687 37.35828939,-122.26713837 37.35897159,-122.26782510 37.36108651,-122.26662339 37.36456559,-122.27288911 37.36722601,-122.27366159 37.36531602,-122.27168740 37.36470213,-122.27391900 37.36374701,-122.27074326 37.36245083,-122.27134408 37.35951742,-122.27426240 37.36135926,-122.27709482 37.36115474,-122.27966974 37.36231438,-122.27958391 37.36463382,-122.27572152 37.36463382,-122.27563569 37.36524779,-122.27700899 37.36593000,-122.27709482 37.36763529,-122.27554978 37.36838573,-122.27667254 37.36931478,-122.27677932 37.36932073,-122.27769362 37.36853987,-122.27942490 37.36830803
,-122.28178776 37.36677917,-122.28509559 37.36443500,-122.28845129 37.36413744,-122.29194403 37.36695946,-122.29382577 37.36726817,-122.29600414 37.36898512,-122.29733083 37.36995398,-122.29593239 37.37141436,-122.29416649 37.37075898,-122.29325026 37.37108436,-122.29652910 37.37311697,-122.29584237 37.37374461,-122.29537583 37.37573372,-122.29487677 37.37752502,-122.30923212 37.37593011,-122.31122484 37.38230086,-122.31467994 37.38092472,-122.31715663 37.38252181,-122.32307970 37.38166978,-122.31985618 37.37667694,-122.32210304 37.37580220,-122.32581446 37.37589532,-122.32401730 37.37331839,-122.32960417 37.37189020,-122.33465527 37.37331906,-122.33425328 37.37623680,-122.33620676 37.37726132,-122.33397986 37.37822382,-122.33358918 37.38036590,-122.33202637 37.37986918,-122.33147954 37.38101784,-122.33394080 37.38198017,-122.33545239 37.38587943,-122.33478058 37.38785697,-122.33386050 37.38723721,-122.33350041 37.38571137,-122.33122003 37.38548891,-122.33140008 37.38650606,-122.33366042 37.38817490,-122.332
44019 37.39157602,-122.33298157 37.39419201,-122.33164013 37.39477028,-122.33202017 37.39518351,-122.33358038 37.39499282,-122.33376050 37.39597811,-122.33550067 37.39734478,-122.33556069 37.39481797,-122.33344040 37.39292676,-122.33638094 37.38892189,-122.34240644 37.38852719,-122.34906293 37.38726898,-122.35072321 37.39338769,-122.34910291 37.39445252,-122.34796272 37.39410291,-122.34449043 37.39640534,-122.34500223 37.39729709,-122.34936291 37.39670910,-122.35098322 37.39531066,-122.35364623 37.39554510,-122.35434369 37.39612111,-122.35798429 37.39600988,-122.35768430 37.39478621,-122.36334519 37.39206871,-122.36604726 37.39203267,-122.36778592 37.39335592,-122.36518870 37.40022011,-122.36554552 37.40247752,-122.36370519 37.40331974,-122.36270506 37.40530591,-122.36320512 37.40670418,-122.36149849 37.40851392,-122.36730580 37.41054938,-122.37263720 37.41378932,-122.37161871 37.42076600,-122.36566153 37.42006292,-122.36520547 37.42742106,-122.37165953 37.43661157,-122.35943972 37.44459022,-122.35356359 37.
44600810,-122.33792254 37.45796329,-122.35228518 37.47478091,-122.35127080 37.48181199,-122.34867342 37.48487322,-122.34359717 37.48801082,-122.33388431 37.48677650,-122.33142321 37.48429747,-122.32929580 37.48473149,-122.32609609 37.48291144,-122.32344850 37.48228229,-122.31924364 37.48410234,-122.31677299 37.48114051,-122.31431751 37.47848973,-122.31259201 37.47682190,-122.31515972 37.47568196,-122.31691389 37.47360309,-122.31292494 37.46960081,-122.31130153 37.46937743,-122.30889894 37.47124987,-122.30612839 37.47011613,-122.30149630 37.46568378,-122.30064277 37.46363784,-122.29283821 37.45922376,-122.28630141 37.45415497,-122.28883099 37.44629920,-122.28316717 37.44197138,-122.27554148 37.42297597,-122.25597410 37.40553692,-122.25196579 37.40129593,-122.25012043 37.40049143,-122.24823207 37.39897758,-122.24754551 37.39740941,-122.24778582 37.39621607,-122.24934787 37.39599102,-122.25005170 37.39871849,-122.25222328 37.39863668,-122.25342491 37.39737529,-122.25520162 37.39667289,-122.25528737 37.39522726,
-122.27747460 37.37809616,-122.27977493 37.37858717,-122.28157729 37.37920106,-122.28322534 37.37952846,-122.28416939 37.38092656,-122.28621223 37.37984219,-122.28638389 37.37613857,-122.28382607 37.37843722,-122.27930278 37.37718220,-122.28196361 37.37652740,-122.28295058 37.37568167,-122.28216101 37.37523148,-122.28114822 37.37543608,-122.27934569 37.37528613,-122.27996369 37.37448121,-122.28104521 37.37454944,-122.28185197 37.37422883,-122.28290767 37.37474038,-122.28376597 37.37467224,-122.28428104 37.37399012,-122.28402346 37.37338989,-122.28610922 37.37364914,-122.28651264 37.37327388,-122.28672722 37.37207343,-122.28628398 37.37205448,-122.28574460 37.37166682,-122.28479711 37.37200981,-122.28327731 37.37137228,-122.28285511 37.37100700,-122.28279409 37.37125669,-122.28315527 37.37173756,-122.28321872 37.37220569,-122.28187007 37.37231918,-122.28193109 37.37294908,-122.28139163 37.37319149))";
- test_self_overlay<polygon>("ticket17", boost::make_tuple(2, -122.26657721, 37.38691), ticket17);
+ test_self_overlay<polygon>("ticket17", boost::make_tuple(2, 0, 0), ticket17);
 
     std::string const uscounty_ne = "POLYGON((-72.297814 44.183545,-72.30498 44.183149,-72.306552 44.183668,-72.321587 44.188629,-72.368353 44.204057,-72.362972 44.211115,-72.357354 44.218485,-72.336176 44.246264,-72.333283 44.25006,-72.329737 44.254806,-72.327061 44.258388,-72.316301 44.272583,-72.317394 44.293961,-72.317455 44.295412,-72.317621 44.298382,-72.31757 44.298423,-72.308843 44.30567,-72.308336 44.306161,-72.305947 44.30843,-72.295321 44.31908,-72.292014 44.321754,-72.289771 44.323567,-72.283878 44.32772,-72.282024 44.32927,-72.275139 44.335778,-72.271225 44.339322,-72.269779 44.340275,-72.269584 44.340461,-72.267563 44.343747,-72.255707 44.359532,-72.254273 44.361075,-72.249662 44.367162,-72.249549 44.367339,-72.24832 44.369514,-72.247963 44.369843,-72.245885 44.372717,-72.244210 44.375223,-72.240219 44.380321,-72.24014 44.380422,-72.229086 44.391162,-72.224592 44.39553,-72.224364 44.395751,-72.224549 44.395985,-72.226261 44.398726,-72.225478 44.399979,-72.223603 44.402875,-72.222984 44.403317,
-72.222454 44.403753,-72.217109 44.411083,-72.218322 44.411745,-72.218833 44.412134,-72.218904 44.412313,-72.219023 44.412613,-72.219444 44.412803,-72.21963 44.412887,-72.220395 44.413162,-72.220619 44.413527,-72.22215 44.414167,-72.222276 44.414327,-72.222276 44.414784,-72.222565 44.415058,-72.22266 44.415469,-72.222565 44.415583,-72.22282 44.416063,-72.222757 44.416452,-72.222543 44.416596,-72.222247 44.416792,-72.221852 44.416792,-72.221439 44.416564,-72.22084 44.416647,-72.220708 44.416898,-72.221268 44.417736,-72.221378 44.418454,-72.220846 44.418454,-72.220492 44.418406,-72.220095 44.418422,-72.219850 44.418865,-72.220006 44.419292,-72.220514 44.419909,-72.220846 44.420637,-72.220581 44.421159,-72.220824 44.421665,-72.221732 44.42214,-72.222374 44.422757,-72.222971 44.422583,-72.223103 44.422282,-72.223259 44.421981,-72.223923 44.42195,-72.224874 44.421491,-72.22514 44.420827,-72.225557 44.420503,-72.226261 44.420157,-72.226305 44.419869,-72.226807 44.419643,-72.226863 44.419618,-72.227333 44.41927,-72
.22776 44.41927,-72.228341 44.419488,-72.22864 44.419675,-72.229199 44.420381,-72.229136 44.421066,-72.228977 44.421181,-72.228945 44.421569,-72.228404 44.421958,-72.228297 44.421996,-72.228021 44.422096,-72.227097 44.422119,-72.226936 44.422302,-72.22649 44.422508,-72.225917 44.422645,-72.224831 44.423217,-72.224068 44.42324,-72.223654 44.423537,-72.223654 44.423717,-72.223654 44.423742,-72.223781 44.42381,-72.223908 44.424587,-72.223924 44.424667,-72.227403 44.426083,-72.228008 44.426329,-72.228662 44.426595,-72.229395 44.426894,-72.230747 44.427231,-72.230971 44.427489,-72.234293 44.428436,-72.236972 44.429199,-72.23719 44.430035,-72.238801 44.430515,-72.24147 44.43131,-72.249962 44.43504,-72.252411 44.436005,-72.255865 44.437305,-72.263358 44.440285,-72.268753 44.442368,-72.277045 44.445563,-72.282573 44.447693,-72.292033 44.451282,-72.299916 44.454331,-72.30082 44.45469,-72.321277 44.462572,-72.325974 44.464436,-72.337127 44.468707,-72.341171 44.470234,-72.348117 44.472931,-72.350859 44.473996,-72.35875
8 44.477037,-72.371940 44.482113,-72.37455 44.483117,-72.374648 44.483164,-72.374779 44.483225,-72.381115 44.485666,-72.381492 44.485688,-72.392298 44.489866,-72.403342 44.494088,-72.418579 44.499928,-72.418900 44.500046,-72.4255 44.502596,-72.426254 44.502888,-72.434315 44.506098,-72.429847 44.512045,-72.428773 44.513475,-72.421543 44.522929,-72.42088 44.523797,-72.419175 44.524889,-72.416181 44.528756,-72.415673 44.529497,-72.411684 44.534382,-72.403416 44.545482,-72.401901 44.547507,-72.398575 44.553005,-72.396373 44.555888,-72.394723 44.556887,-72.389997 44.563861,-72.38785 44.567083,-72.374786 44.584125,-72.374551 44.584042,-72.374141 44.583887,-72.364296 44.579947,-72.363627 44.579974,-72.362284 44.579484,-72.354192 44.576537,-72.351726 44.575587,-72.346763 44.573679,-72.326173 44.566333,-72.322536 44.56502,-72.312109 44.560996,-72.303198 44.557718,-72.30252 44.557467,-72.299574 44.556334,-72.28218 44.550137,-72.282083 44.550101,-72.280975 44.54965,-72.278823 44.548773,-72.268653 44.544573,-72.268148 4
4.544564,-72.267242 44.544547,-72.267178 44.544523,-72.266593 44.544303,-72.264975 44.543192,-72.263435 44.542639,-72.263284 44.542541,-72.262964 44.542336,-72.261344 44.544238,-72.259827 44.54559,-72.257865 44.548899,-72.254187 44.554001,-72.249372 44.560675,-72.241644 44.570815,-72.237928 44.576139,-72.237433 44.576818,-72.236396 44.578188,-72.226097 44.591711,-72.224712 44.59373,-72.21978 44.600803,-72.218155 44.602206,-72.210135 44.612594,-72.209324 44.613712,-72.208816 44.614535,-72.207016 44.617438,-72.202901 44.624073,-72.202293 44.625051,-72.199855 44.62841,-72.198157 44.630644,-72.194619 44.635355,-72.193153 44.637354,-72.19052 44.641163,-72.188343 44.644224,-72.184378 44.649871,-72.182172 44.652973,-72.176 44.661598,-72.173651 44.665011,-72.169648 44.67078,-72.165261 44.676857,-72.163971 44.678423,-72.162882 44.679959,-72.158868 44.685588,-72.156736 44.688747,-72.152374 44.694988,-72.150094 44.698355,-72.147612 44.7018,-72.147155 44.702567,-72.146873 44.703032,-72.146226 44.703325,-72.145589 44.702
653,-72.141899 44.701438,-72.132779 44.698434,-72.128309 44.696934,-72.124544 44.695638,-72.110654 44.691192,-72.109358 44.690747,-72.088864 44.683714,-72.09305 44.694921,-72.094078 44.697511,-72.094433 44.698327,-72.09461 44.698776,-72.094955 44.699515,-72.095146 44.700011,-72.099952 44.712285,-72.100813 44.714476,-72.101332 44.715715,-72.101783 44.717146,-72.108368 44.733658,-72.114503 44.749624,-72.091369 44.738322,-72.083693 44.734606,-72.061312 44.723479,-72.039137 44.7125,-72.036351 44.711121,-72.02562 44.705812,-72.024818 44.705401,-72.012503 44.698821,-72.010696 44.699614,-72.007273 44.70299,-72.006749 44.703702,-72.005453 44.70441,-72.004999 44.704665,-72.002948 44.706065,-72.002574 44.706344,-71.998947 44.710903,-71.9954 44.715164,-71.995032 44.715247,-71.989775 44.720625,-71.988815 44.721224,-71.981344 44.728822,-71.98093 44.729224,-71.977211 44.732588,-71.976089 44.733763,-71.974770 44.735186,-71.974591 44.73538,-71.973434 44.736503,-71.97039 44.73946,-71.959927 44.749625,-71.958846 44.750086,-71
.950606 44.758585,-71.950276 44.758952,-71.943595 44.765337,-71.939936 44.769032,-71.930968 44.765049,-71.928756 44.762738,-71.921857 44.759843,-71.902374 44.750318,-71.882733 44.740608,-71.882573 44.740269,-71.881573 44.739354,-71.876888 44.736935,-71.875148 44.736035,-71.874539 44.735721,-71.858381 44.72766,-71.837294 44.716637,-71.83775 44.716201,-71.852267 44.702366,-71.856071 44.69874,-71.856484 44.698345,-71.87445 44.681027,-71.881231 44.674373,-71.882862 44.67311,-71.883675 44.67175,-71.88436 44.671401,-71.885978 44.669571,-71.888314 44.667829,-71.890624 44.665594,-71.891007 44.664845,-71.898726 44.657917,-71.902653 44.654205,-71.910085 44.64718,-71.910282 44.647038,-71.907401 44.645283,-71.894791 44.638722,-71.89426 44.638626,-71.892962 44.637931,-71.874538 44.628066,-71.86852 44.625053,-71.848306 44.614173,-71.848221 44.614129,-71.842803 44.611203,-71.842732 44.611165,-71.843021 44.610884,-71.856079 44.597255,-71.856286 44.59707,-71.874003 44.580903,-71.874537 44.580409,-71.898111 44.557857,-71.8986
7 44.557286,-71.908656 44.54708,-71.884835 44.524403,-71.884487 44.524048,-71.874412 44.51323,-71.871838 44.510637,-71.871760 44.51054,-71.861209 44.500056,-71.856636 44.496178,-71.8567 44.496122,-71.874535 44.480282,-71.885627 44.470472,-71.891883 44.464859,-71.893164 44.46383,-71.903342 44.454655,-71.903549 44.454476,-71.912995 44.450245,-71.921348 44.446484,-71.922164 44.44623,-71.925058 44.444914,-71.926307 44.44418,-71.933287 44.441174,-71.91481 44.423081,-71.90842 44.416928,-71.905891 44.414322,-71.898406 44.407105,-71.897962 44.406696,-71.897325 44.406109,-71.886305 44.395364,-71.874506 44.383831,-71.867904 44.377301,-71.865579 44.374962,-71.858643 44.368062,-71.849854 44.359674,-71.847478 44.357361,-71.844776 44.354732,-71.841775 44.351811,-71.840508 44.350578,-71.837656 44.347801,-71.838072 44.347593,-71.83875 44.34721,-71.839767 44.346579,-71.840775 44.345795,-71.84159 44.3453,-71.842483 44.344757,-71.843283 44.34444,-71.844319 44.344204,-71.845288 44.343871,-71.845882 44.343666,-71.846346 44.34350
6,-71.848005 44.342766,-71.849099 44.342345,-71.849899 44.341978,-71.851118 44.341405,-71.85184 44.341143,-71.852628 44.340873,-71.85355 44.340717,-71.854404 44.340617,-71.855257 44.340589,-71.85619 44.340522,-71.857168 44.340463,-71.858155 44.340363,-71.859166 44.340369,-71.859940 44.340357,-71.860974 44.340282,-71.861941 44.340109,-71.86265 44.33992,-71.863291 44.339778,-71.863719 44.339644,-71.864485 44.339374,-71.865196 44.339071,-71.865895 44.338801,-71.866458 44.338514,-71.866753 44.338322,-71.867509 44.337964,-71.868253 44.337638,-71.869120 44.337288,-71.869616 44.337129,-71.869909 44.336962,-71.870573 44.336804,-71.871203 44.336686,-71.871488 44.336689,-71.871833 44.336641,-71.872472 44.336628,-71.873009 44.336736,-71.873713 44.336973,-71.874326 44.337195,-71.874535 44.337123,-71.874997 44.337226,-71.875514 44.337266,-71.875863 44.33737,-71.876122 44.337482,-71.8762 44.337539,-71.87629 44.337651,-71.876313 44.337732,-71.876324 44.337844,-71.876324 44.337925,-71.876358 44.338054,-71.876403 44.338167,-
71.876448 44.338287,-71.876583 44.338424,-71.876685 44.338512,-71.876731 44.338548,-71.876973 44.338572,-71.877493 44.338615,-71.877628 44.338623,-71.877965 44.338719"
         ",-71.878695 44.338964,-71.879896 44.339367,-71.880546 44.339559,-71.880962 44.33976,-71.881154 44.33988,-71.881895 44.340209,-71.883973 44.341228,-71.884917 44.341717,-71.885044 44.341794,-71.887531 44.3426,-71.888182 44.342807,-71.888483 44.342846,-71.888866 44.342916,-71.88893 44.342938,-71.888994 44.342945,-71.889404 44.343039,-71.889893 44.343174,-71.890324 44.343274,-71.890332 44.343272,-71.890380 44.343255,-71.890408 44.343246,-71.890456 44.343228,-71.890548 44.343209,-71.890644 44.343192,-71.890739 44.343177,-71.890844 44.343173,-71.890926 44.343201,-71.891373 44.343335,-71.892197 44.343693,-71.894326 44.344591,-71.895856 44.345209,-71.898726 44.346251,-71.900162 44.346722,-71.902332 44.347499,-71.903115 44.347694,-71.905036 44.348154,-71.906001 44.348239,-71.906909 44.348284,-71.917008 44.346714,-71.917434 44.346535,-71.918748 44.345555,-71.921314 44.343835,-71.921459 44.343739,-71.924607 44.342252,-71.925088 44.342024,-71.926666 44.340286,-71.928041 44.338516,-71.929109 44.337577,-71.93213
8 44.336541,-71.935395 44.33577,-71.936773 44.335684,-71.939049 44.335843,-71.942442 44.336805,-71.943365 44.337188,-71.944254 44.337643,-71.945162 44.337744,-71.952593 44.337689,-71.956516 44.337632,-71.958119 44.337544,-71.959965 44.337013,-71.961822 44.336634,-71.963133 44.336556,-71.972572 44.336781,-71.973300 44.336777,-71.977175 44.337518,-71.977971 44.33757,-71.979505 44.337354,-71.980559 44.337486,-71.98112 44.3375,-71.984281 44.336414,-71.984617 44.336243,-71.984729 44.335882,-71.986483 44.331218,-71.987862 44.330081,-71.988305 44.329768,-71.989058 44.329561,-71.992446 44.328548,-71.993662 44.327611,-71.999448 44.325595,-72.000793 44.325295,-72.001221 44.325234,-72.001792 44.325079,-72.002314 44.324871,-72.003547 44.324397,-72.00485 44.324054,-72.005532 44.323829,-72.00676 44.323357,-72.009976 44.321951,-72.012172 44.321408,-72.014543 44.321032,-72.015936 44.320849,-72.01913 44.320383,-72.019577 44.320498,-72.019801 44.32052,-72.019908 44.320683,-72.020149 44.320818,-72.021041 44.320887,-72.021994 4
4.321184,-72.025782 44.322054,-72.028201 44.322375,-72.029061 44.322398,-72.029698 44.32217,-72.031322 44.320936,-72.031959 44.320662,-72.033136 44.320365,-72.033137 44.319543,-72.033773 44.317989,-72.033806 44.317349,-72.033678 44.316823,-72.03317 44.31632,-72.032341 44.315752,-72.031937 44.315475,-72.031802 44.315383,-72.031739 44.314652,-72.031549 44.313966,-72.031708 44.313007,-72.032218 44.311955,-72.032505 44.310653,-72.032444 44.307134,-72.032316 44.306677,-72.032541 44.303752,-72.032955 44.302701,-72.033464 44.301878,-72.034324 44.300941,-72.03487 44.300512,-72.035660 44.29989,-72.03633 44.298634,-72.03703 44.297834,-72.039003 44.296463,-72.039836 44.296087,-72.040117 44.295962,-72.040543 44.295876,-72.041609 44.295665,-72.041856 44.29565,-72.043202 44.295579,-72.043775 44.295608,-72.044546 44.294969,-72.044926 44.294636,-72.045137 44.29391,-72.045265 44.293198,-72.045745 44.292448,-72.046302 44.291983,-72.047349 44.291581,-72.048216 44.291404,-72.049472 44.291186,-72.051541 44.290889,-72.053355 44.2
90501,-72.054046 44.289971,-72.055002 44.288945,-72.055964 44.288162,-72.056078 44.287893,-72.056409 44.287618,-72.057273 44.287163,-72.05888 44.28624,-72.059957 44.284767,-72.062298 44.281754,-72.065434 44.277235,-72.066464 44.275093,-72.067774 44.270976,-72.066464 44.268331,-72.065949 44.268666,-72.064544 44.267997,-72.062671 44.269336,-72.060846 44.269972,-72.05874 44.270005,-72.058646 44.269269,-72.059395 44.268365,-72.05888 44.266926,-72.059113 44.265787,-72.058553 44.265285,-72.059021 44.265018,-72.059581 44.264315,-72.059535 44.265687,-72.060378 44.264951,-72.061173 44.263377,-72.061033 44.26244,-72.060333 44.261643,-72.060398 44.261463,-72.060723 44.261313,-72.061173 44.261258,-72.061495 44.260726,-72.06156 44.260621,-72.061542 44.26047,-72.060878 44.260436,-72.060518 44.260284,-72.060307 44.259961,-72.060259 44.259789,-72.060163 44.259766,-72.060194 44.257778,-72.060099 44.257595,-72.059838 44.256295,-72.059782 44.256018,-72.059523 44.255798,-72.059432 44.255721,-72.059018 44.255013,-72.058161 44.25
3916,-72.058224 44.253823,-72.058033 44.253664,-72.05708 44.252064,-72.056889 44.251859,-72.055694 44.250061,-72.055641 44.249649,-72.055515 44.249615,-72.055483 44.24912,-72.055134 44.248435,-72.054276 44.247703,-72.05399 44.246926,-72.051002 44.244892,-72.050112 44.244046,-72.049604 44.243292,-72.048999 44.242058,-72.04846 44.241212,-72.04792 44.239498,-72.047889 44.238493,-72.048621 44.237145,-72.050209 44.235066,-72.050656 44.233581,-72.052118 44.229856,-72.052469 44.229239,-72.052532 44.228805,-72.053264 44.227114,-72.053581 44.22604,-72.053995 44.224028,-72.0539 44.222703,-72.053614 44.221081,-72.053518 44.221035,-72.053518 44.220852,-72.053423 44.220784,-72.053423 44.220601,-72.053328 44.220487,-72.053328 44.220327,-72.053043 44.219732,-72.052662 44.218841,-72.052966 44.217794,-72.053232 44.216876,-72.05495 44.213677,-72.055903 44.212694,-72.056952 44.212169,-72.058605 44.211803,-72.058954 44.211597,-72.059716 44.210752,-72.060067 44.209998,-72.060067 44.209816,-72.058987 44.208512,-72.058605 44.20821
5,-72.058542 44.208032,-72.05886 44.207667,-72.058987 44.207164,-72.058906 44.20701,-72.058796 44.206798,-72.058066 44.206067,-72.058194 44.204907,-72.058287 44.204056,-72.058987 44.202114,-72.059564 44.201223,-72.059614 44.201144,-72.059669 44.201061,-72.060067 44.200446,-72.060543 44.200012,-72.062035 44.199074,-72.063560 44.198457,-72.064005 44.198069,-72.064577 44.196949,-72.064608 44.196058,-72.064608 44.195692,-72.06499 44.194801,-72.065213 44.194115,-72.065403 44.192607,-72.066102 44.19039,-72.066166 44.189773,-72.065911 44.189293,-72.065085 44.188631,-72.064285 44.187888,-72.06299 44.186688,-72.061337 44.184951,-72.05956 44.182666,-72.059116 44.181912,-72.058956 44.18182,-72.057496 44.179444,-72.056987 44.178096,-72.056861 44.178027,-72.056862 44.177822,-72.056798 44.17773,-72.056798 44.177433,-72.056575 44.176679,-72.056480 44.176633,-72.05629 44.175742,-72.054734 44.173114,-72.054227 44.172108,-72.054005 44.170646,-72.05391 44.170577,-72.053783 44.169869,-72.053021 44.167903,-72.052196 44.166921,-7
2.051655 44.166463,-72.050575 44.165961,-72.049179 44.165138,-72.048925 44.164795,-72.048799 44.164498,-72.048672 44.164452,-72.048639 44.164201,-72.048418 44.163926,-72.048355 44.163058,-72.048101 44.162144,-72.047592 44.161801,-72.047022 44.161595,-72.046133 44.161549,-72.043244 44.161869,-72.042830 44.161754,-72.042386 44.161343,-72.042386 44.160817,-72.042672 44.160292,-72.043785 44.158852,-72.044102 44.158121,-72.044039 44.157435,-72.043785 44.157047,-72.0435 44.156841,-72.042801 44.156613,-72.042103 44.15659,-72.041119 44.156864,-72.040167 44.157023,-72.039594 44.156749,-72.039245 44.156703,-72.039150 44.156498,-72.03988 44.155932,-72.039976 44.155858,-72.040082 44.155749,-72.040737 44.155972,-72.041923 44.156312,-72.042043 44.156349,-72.042801 44.156613,-72.044676 44.157097,-72.044884 44.157151,-72.045078 44.157206,-72.045767 44.157401,-72.046234 44.157563,-72.047344 44.157836,-72.048554 44.158134,-72.058602 44.160893,-72.065528 44.162794,-72.066594 44.163099,-72.070984 44.164364,-72.083157 44.167671,
-72.083344 44.167722,-72.083451 44.167775,-72.087279 44.168733,-72.091724 44.16998,-72.092625 44.170284,-72.097954 44.171765,-72.100237 44.172391,-72.100809 44.172548,-72.100996 44.172599,-72.101265 44.172673,-72.10189 44.172759,-72.102047 44.172803,-72.105729 44.173842,-72.109921 44.175046,-72.110927 44.175333,-72.116790 44.176949,-72.122705 44.178552,-72.124310 44.179174,-72.133395 44.181725,-72.138984 44.183365,-72.139194 44.183494,-72.139466 44.183503,-72.140796 44.183868,-72.151283 44.186773,-72.166147 44.190938,-72.16836 44.191508,-72.17026 44.192053,-72.171978 44.19207,-72.174381 44.192183,-72.175395 44.192186,-72.187153 44.191379,-72.190945 44.191111,-72.191322 44.191101,-72.192686 44.190957,-72.199012 44.190573,-72.204065 44.190303,-72.209594 44.190003,-72.210965 44.189741,-72.221076 44.189175,-72.229408 44.188625,-72.237321 44.188057,-72.238117 44.188023,-72.24954 44.187528,-72.271323 44.185807,-72.282972 44.184887,-72.297814 44.183545))";
- test_self_overlay<polygon>("uscounty_ne", boost::make_tuple(1, -122.26657721, 37.38691), uscounty_ne);
+ test_self_overlay<polygon>("uscounty_ne", boost::make_tuple(1, 0, 0), uscounty_ne);
 
 
 
@@ -231,7 +238,6 @@
 #endif
 
 
-
 #if ! defined(GEOMETRY_TEST_MULTI)
 int test_main(int, char* [])
 {

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/overlay/split_rings.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/overlay/split_rings.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/overlay/split_rings.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/overlay/traverse.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/overlay/traverse.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/overlay/traverse.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2010 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2010-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/overlay/traverse_gmp.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/overlay/traverse_gmp.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/overlay/traverse_gmp.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/perimeter.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/perimeter.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/perimeter.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -35,6 +35,15 @@
     test_geometry<open_polygon>("POLYGON((0 0,0 1,1 1,1 0))", 4);
 }
 
+template <typename P>
+void test_empty_input()
+{
+ bg::model::polygon<P> poly_empty;
+ bg::model::ring<P> ring_empty;
+
+ test_empty_input(poly_empty);
+ test_empty_input(ring_empty);
+}
 
 int test_main(int, char* [])
 {
@@ -48,5 +57,7 @@
     test_all<bg::model::d2::point_xy<ttmath_big> >();
 #endif
 
+ test_empty_input<bg::model::d2::point_xy<int> >();
+
     return 0;
 }

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/reverse.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/reverse.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/reverse.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2010 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2010-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/simplify.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/simplify.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/simplify.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/test_area.hpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/test_area.hpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/test_area.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -66,5 +66,19 @@
     test_area(geometry, expected_area);
 }
 
+template <typename Geometry>
+void test_empty_input(Geometry const& geometry)
+{
+ try
+ {
+ bg::area(geometry);
+ }
+ catch(bg::empty_input_exception const& )
+ {
+ return;
+ }
+ BOOST_CHECK_MESSAGE(false, "A empty_input_exception should have been thrown" );
+}
+
 
 #endif

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/test_centroid.hpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/test_centroid.hpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/test_centroid.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)
@@ -79,5 +79,21 @@
 #endif
 }
 
+template <typename Geometry>
+void test_centroid_exception()
+{
+ Geometry geometry;
+ try
+ {
+ typename bg::point_type<Geometry>::type c;
+ bg::centroid(geometry, c);
+ }
+ catch(bg::centroid_exception const& )
+ {
+ return;
+ }
+ BOOST_CHECK_MESSAGE(false, "A centroid_exception should have been thrown" );
+}
+
 
 #endif

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/test_convert.hpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/test_convert.hpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/test_convert.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/test_convex_hull.hpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/test_convex_hull.hpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/test_convex_hull.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)
@@ -108,5 +108,19 @@
     test_geometry_order<Geometry, false>(wkt, size_original, size_hull, expected_area);
 }
 
+template <typename Geometry>
+void test_empty_input()
+{
+ Geometry geometry;
+ bg::model::polygon
+ <
+ typename bg::point_type<Geometry>::type
+ > hull;
+
+ bg::convex_hull(geometry, hull);
+ BOOST_CHECK_MESSAGE(bg::num_points(hull) == 0, "Output convex hull should be empty" );
+}
+
+
 
 #endif

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/test_covered_by.hpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/test_covered_by.hpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/test_covered_by.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/test_difference.hpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/test_difference.hpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/test_difference.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/test_distance.hpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/test_distance.hpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/test_distance.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2010-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2010-2012 Barend Gehrels, Amsterdam, the Netherlands.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)
@@ -140,5 +140,19 @@
     test_distance(geometry1, geometry2, expected_distance);
 }
 
+template <typename Geometry1, typename Geometry2>
+void test_empty_input(Geometry1 const& geometry1, Geometry2 const& geometry2)
+{
+ try
+ {
+ bg::distance(geometry1, geometry2);
+ }
+ catch(bg::empty_input_exception const& )
+ {
+ return;
+ }
+ BOOST_CHECK_MESSAGE(false, "A empty_input_exception should have been thrown" );
+}
+
 
 #endif

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/test_envelope.hpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/test_envelope.hpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/test_envelope.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/test_equals.hpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/test_equals.hpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/test_equals.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/test_expand.hpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/test_expand.hpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/test_expand.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/test_for_each.hpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/test_for_each.hpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/test_for_each.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/test_intersection.hpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/test_intersection.hpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/test_intersection.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/test_intersects.hpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/test_intersects.hpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/test_intersects.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/test_length.hpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/test_length.hpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/test_length.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)
@@ -44,5 +44,18 @@
     test_length(geometry, expected_length);
 }
 
+template <typename Geometry>
+void test_empty_input(Geometry const& geometry)
+{
+ try
+ {
+ bg::length(geometry);
+ }
+ catch(bg::empty_input_exception const& )
+ {
+ return;
+ }
+ BOOST_CHECK_MESSAGE(false, "A empty_input_exception should have been thrown" );
+}
 
 #endif

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/test_overlaps.hpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/test_overlaps.hpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/test_overlaps.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Generic Geometry2 Library
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/test_overlay.hpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/test_overlay.hpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/test_overlay.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/test_perimeter.hpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/test_perimeter.hpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/test_perimeter.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)
@@ -47,5 +47,18 @@
     test_perimeter(geometry, expected_perimeter);
 }
 
+template <typename Geometry>
+void test_empty_input(Geometry const& geometry)
+{
+ try
+ {
+ bg::perimeter(geometry);
+ }
+ catch(bg::empty_input_exception const& )
+ {
+ return;
+ }
+ BOOST_CHECK_MESSAGE(false, "A empty_input_exception should have been thrown" );
+}
 
 #endif

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/test_relate.hpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/test_relate.hpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/test_relate.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2010-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2010-2012 Barend Gehrels, Amsterdam, the Netherlands.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/test_reverse.hpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/test_reverse.hpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/test_reverse.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2010-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2010-2012 Barend Gehrels, Amsterdam, the Netherlands.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/test_simplify.hpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/test_simplify.hpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/test_simplify.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/test_union.hpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/test_union.hpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/test_union.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)
@@ -53,7 +53,6 @@
     {
         area += bg::area(*it);
         holes += bg::num_interior_rings(*it);
-
         n += bg::num_points(*it, true);
     }
 
@@ -65,10 +64,16 @@
         boost::copy(array_with_one_empty_geometry, bg::detail::union_::union_insert<OutputType>(g1, g2, std::back_inserter(inserted)));
 
         typename bg::default_area_result<G1>::type area_inserted = 0;
+ int index = 0;
         for (typename std::vector<OutputType>::iterator it = inserted.begin();
- it != inserted.end(); ++it)
+ it != inserted.end();
+ ++it, ++index)
         {
- area_inserted += bg::area(*it);
+ // Skip the empty polygon created above to avoid the empty_input_exception
+ if (bg::num_points(*it) > 0)
+ {
+ area_inserted += bg::area(*it);
+ }
         }
         BOOST_CHECK_EQUAL(boost::size(clip), boost::size(inserted) - 1);
         BOOST_CHECK_CLOSE(area_inserted, expected_area, percentage);

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/test_unique.hpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/test_unique.hpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/test_unique.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/test_within.hpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/test_within.hpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/test_within.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/transform.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/transform.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/transform.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/union.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/union.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/union.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/unique.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/unique.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/unique.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2010 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2010-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test/algorithms/within.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/algorithms/within.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/algorithms/within.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 //
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/test/arithmetic/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/arithmetic/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/geometry/test/arithmetic/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 # Boost.Geometry (aka GGL, Generic Geometry Library)
 #
-# Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-# Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-# Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+# Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+# Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+# Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 #
 # Use, modification and distribution is subject to the Boost Software License,
 # Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test/arithmetic/arithmetic.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/arithmetic/arithmetic.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/arithmetic/arithmetic.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/libs/geometry/test/arithmetic/dot_product.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/arithmetic/dot_product.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/arithmetic/dot_product.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/libs/geometry/test/concepts/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/concepts/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/geometry/test/concepts/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 # Boost.Geometry (aka GGL, Generic Geometry Library)
 #
-# Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-# Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-# Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+# Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+# Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+# Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 #
 # Use, modification and distribution is subject to the Boost Software License,
 # Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test/concepts/linestring_concept.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/concepts/linestring_concept.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/concepts/linestring_concept.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test/core/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/core/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/geometry/test/core/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 # Boost.Geometry (aka GGL, Generic Geometry Library)
 #
-# Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-# Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-# Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+# Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+# Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+# Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 #
 # Use, modification and distribution is subject to the Boost Software License,
 # Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test/core/access.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/core/access.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/core/access.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/libs/geometry/test/core/coordinate_dimension.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/core/coordinate_dimension.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/core/coordinate_dimension.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test/core/coordinate_system.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/core/coordinate_system.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/core/coordinate_system.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test/core/coordinate_type.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/core/coordinate_type.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/core/coordinate_type.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test/core/geometry_id.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/core/geometry_id.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/core/geometry_id.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test/core/point_type.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/core/point_type.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/core/point_type.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test/core/radian_access.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/core/radian_access.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/core/radian_access.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/libs/geometry/test/core/reverse_dispatch.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/core/reverse_dispatch.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/core/reverse_dispatch.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/libs/geometry/test/core/ring.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/core/ring.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/core/ring.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/libs/geometry/test/core/tag.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/core/tag.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/core/tag.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test/core/topological_dimension.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/core/topological_dimension.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/core/topological_dimension.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test/geometries/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/geometries/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/geometry/test/geometries/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 # Boost.Geometry (aka GGL, Generic Geometry Library)
 #
-# Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-# Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-# Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+# Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+# Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+# Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 # Use, modification and distribution is subject to the Boost Software License,
 # Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test/geometries/adapted.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/geometries/adapted.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/geometries/adapted.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test/geometries/boost_array_as_point.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/geometries/boost_array_as_point.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/geometries/boost_array_as_point.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright Alfredo Correa 2010
-// Copyright (c) 2010 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2010 Alfredo Correa
+// Copyright (c) 2010-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test/geometries/boost_fusion.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/geometries/boost_fusion.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/geometries/boost_fusion.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 // Copyright Akira Takahashi 2011
 
 // Use, modification and distribution is subject to the Boost Software License,

Modified: branches/quickbook-dev/libs/geometry/test/geometries/boost_polygon.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/geometries/boost_polygon.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/geometries/boost_polygon.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,12 +1,17 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2010 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2010-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)
 
+// geometry::num_points does not accept the ring_proxy for adaptation, like
+// centroid and probably many more algorithms. TODO: fix that. Until then we
+// define it such that num_points is not called.
+#define BOOST_GEOMETRY_EMPTY_INPUT_NO_THROW
+
 #include <geometry_test_common.hpp>
 
 
@@ -166,4 +171,4 @@
     //test_coordinate_type<float>(); // compiles, but "BOOST_CHECK_EQUAL" fails
     test_coordinate_type<double>();
     return 0;
-}
\ No newline at end of file
+}

Modified: branches/quickbook-dev/libs/geometry/test/geometries/boost_polygon_overlay.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/geometries/boost_polygon_overlay.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/geometries/boost_polygon_overlay.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test/geometries/boost_range.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/geometries/boost_range.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/geometries/boost_range.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2010 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2010-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test/geometries/boost_tuple.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/geometries/boost_tuple.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/geometries/boost_tuple.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test/geometries/box.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/geometries/box.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/geometries/box.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/libs/geometry/test/geometries/concepts/check.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/geometries/concepts/check.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/geometries/concepts/check.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/libs/geometry/test/geometries/custom_linestring.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/geometries/custom_linestring.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/geometries/custom_linestring.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/libs/geometry/test/geometries/segment.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/geometries/segment.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/geometries/segment.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/libs/geometry/test/geometry_test_common.hpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/geometry_test_common.hpp (original)
+++ branches/quickbook-dev/libs/geometry/test/geometry_test_common.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/libs/geometry/test/io/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/io/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/geometry/test/io/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 # Boost.Geometry (aka GGL, Generic Geometry Library)
 #
-# Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-# Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-# Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+# Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+# Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+# Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 #
 # Use, modification and distribution is subject to the Boost Software License,
 # Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test/io/wkt/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/io/wkt/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/geometry/test/io/wkt/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 # Boost.Geometry (aka GGL, Generic Geometry Library)
 #
-# Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-# Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-# Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+# Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+# Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+# Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 #
 # Use, modification and distribution is subject to the Boost Software License,
 # Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test/io/wkt/io_wkt_tests.sln
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/io/wkt/io_wkt_tests.sln (original)
+++ branches/quickbook-dev/libs/geometry/test/io/wkt/io_wkt_tests.sln 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,8 +2,6 @@
 # Visual C++ Express 2005
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wkt", "wkt.vcproj", "{1FA2ADE2-F649-4245-951E-A8F5935E7127}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "multi_wkt", "multi_wkt.vcproj", "{CA8D5E44-7D8F-44A1-900C-35C28890299B}"
-EndProject
 Global
         GlobalSection(SolutionConfigurationPlatforms) = preSolution
                 Debug|Win32 = Debug|Win32
@@ -14,14 +12,6 @@
                 {1FA2ADE2-F649-4245-951E-A8F5935E7127}.Debug|Win32.Build.0 = Debug|Win32
                 {1FA2ADE2-F649-4245-951E-A8F5935E7127}.Release|Win32.ActiveCfg = Release|Win32
                 {1FA2ADE2-F649-4245-951E-A8F5935E7127}.Release|Win32.Build.0 = Release|Win32
- {F2A680B0-F6FC-479E-9988-24CF6851C13C}.Debug|Win32.ActiveCfg = Debug|Win32
- {F2A680B0-F6FC-479E-9988-24CF6851C13C}.Debug|Win32.Build.0 = Debug|Win32
- {F2A680B0-F6FC-479E-9988-24CF6851C13C}.Release|Win32.ActiveCfg = Release|Win32
- {F2A680B0-F6FC-479E-9988-24CF6851C13C}.Release|Win32.Build.0 = Release|Win32
- {CA8D5E44-7D8F-44A1-900C-35C28890299B}.Debug|Win32.ActiveCfg = Debug|Win32
- {CA8D5E44-7D8F-44A1-900C-35C28890299B}.Debug|Win32.Build.0 = Debug|Win32
- {CA8D5E44-7D8F-44A1-900C-35C28890299B}.Release|Win32.ActiveCfg = Release|Win32
- {CA8D5E44-7D8F-44A1-900C-35C28890299B}.Release|Win32.Build.0 = Release|Win32
         EndGlobalSection
         GlobalSection(SolutionProperties) = preSolution
                 HideSolutionNode = FALSE

Modified: branches/quickbook-dev/libs/geometry/test/io/wkt/wkt.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/io/wkt/wkt.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/io/wkt/wkt.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
@@ -51,9 +51,12 @@
     */
 
     BOOST_CHECK_EQUAL(bg::num_points(geometry), n);
- BOOST_CHECK_CLOSE(double(bg::length(geometry)), len, 0.0001);
- BOOST_CHECK_CLOSE(double(bg::area(geometry)), ar, 0.0001);
- BOOST_CHECK_CLOSE(double(bg::perimeter(geometry)), peri, 0.0001);
+ if (n > 0)
+ {
+ BOOST_CHECK_CLOSE(double(bg::length(geometry)), len, 0.0001);
+ BOOST_CHECK_CLOSE(double(bg::area(geometry)), ar, 0.0001);
+ BOOST_CHECK_CLOSE(double(bg::perimeter(geometry)), peri, 0.0001);
+ }
 
     // String comparison: only for int/double/float etc
     // GMP/CLN add +e01, L0, etc

Modified: branches/quickbook-dev/libs/geometry/test/io/wkt/wkt.vcproj
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/io/wkt/wkt.vcproj (original)
+++ branches/quickbook-dev/libs/geometry/test/io/wkt/wkt.vcproj 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -20,7 +20,7 @@
                         OutputDirectory="$(SolutionDir)$(ConfigurationName)"
                         IntermediateDirectory="$(ConfigurationName)\wkt"
                         ConfigurationType="1"
- InheritedPropertySheets="..\..\..\..\boost.vsprops"
+ InheritedPropertySheets="..\..\boost.vsprops"
                         CharacterSet="1"
>
                         <Tool
@@ -41,7 +41,7 @@
                         <Tool
                                 Name="VCCLCompilerTool"
                                 Optimization="0"
- AdditionalIncludeDirectories="../../../../../../..;../../../.."
+ AdditionalIncludeDirectories="../../../../..;../.."
                                 PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
                                 ExceptionHandling="2"
                                 RuntimeLibrary="1"
@@ -93,7 +93,7 @@
                         OutputDirectory="$(SolutionDir)$(ConfigurationName)"
                         IntermediateDirectory="$(ConfigurationName)\wkt"
                         ConfigurationType="1"
- InheritedPropertySheets="..\..\..\..\boost.vsprops"
+ InheritedPropertySheets="..\..\boost.vsprops"
                         CharacterSet="1"
                         WholeProgramOptimization="1"
>
@@ -114,7 +114,7 @@
                         />
                         <Tool
                                 Name="VCCLCompilerTool"
- AdditionalIncludeDirectories="../../../../../../..;../../../.."
+ AdditionalIncludeDirectories="../../../../..;../.."
                                 PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
                                 ExceptionHandling="2"
                                 UsePrecompiledHeader="0"

Modified: branches/quickbook-dev/libs/geometry/test/iterators/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/iterators/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/geometry/test/iterators/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 # Boost.Geometry (aka GGL, Generic Geometry Library)
 #
-# Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-# Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-# Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+# Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+# Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+# Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 #
 # Use, modification and distribution is subject to the Boost Software License,
 # Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test/iterators/closing_iterator.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/iterators/closing_iterator.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/iterators/closing_iterator.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/libs/geometry/test/iterators/ever_circling_iterator.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/iterators/ever_circling_iterator.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/iterators/ever_circling_iterator.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/libs/geometry/test/multi/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/multi/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/geometry/test/multi/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 # Boost.Geometry (aka GGL, Generic Geometry Library)
 #
-# Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-# Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-# Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+# Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+# Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+# Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 #
 # Use, modification and distribution is subject to the Boost Software License,
 # Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test/multi/algorithms/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/multi/algorithms/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/geometry/test/multi/algorithms/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 # Boost.Geometry (aka GGL, Generic Geometry Library)
 #
-# Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-# Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-# Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+# Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+# Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+# Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 #
 # Use, modification and distribution is subject to the Boost Software License,
 # Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_area.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_area.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_area.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 //
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_centroid.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_centroid.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_centroid.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_convert.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_convert.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_convert.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 //
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_convex_hull.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_convex_hull.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_convex_hull.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
@@ -48,8 +48,14 @@
     typedef bg::model::multi_linestring<bg::model::linestring<P> > ml;
     typedef bg::model::multi_polygon<bg::model::polygon<P> > mpoly;
     test_geometry<mp>("multipoint((1.1 1.1), (2.5 2.1), (3.1 3.1), (4.9 1.1), (3.1 1.9))", 5, 4, 3.8);
+ // Ticket 6021:
+ test_geometry<mp>("multipoint((0 53), (0 103), (1 53))", 3, 4, 25);
     test_geometry<ml>("multilinestring((2 4, 3 4, 3 5), (4 3,4 4,5 4))", 6, 5, 3.0);
     test_geometry<mpoly>("multipolygon(((1 4,1 6,2 5,3 5,4 6,4 4,1 4)), ((4 2,4 3,6 3,6 2,4 2)))", 12, 7, 14.0);
+
+ test_empty_input<mp>();
+ test_empty_input<ml>();
+ test_empty_input<mpoly>();
 }
 
 

Modified: branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_correct.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_correct.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_correct.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 //
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_covered_by.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_covered_by.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_covered_by.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 //
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_difference.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_difference.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_difference.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2010 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2010-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_distance.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_distance.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_distance.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 //
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)
@@ -10,6 +10,8 @@
 
 #include <geometry_test_common.hpp>
 
+#include <algorithms/test_distance.hpp>
+
 #include <boost/geometry/algorithms/distance.hpp>
 #include <boost/geometry/io/wkt/read.hpp>
 
@@ -128,6 +130,23 @@
     test_distance<mp2, P2>(pythagoras<P2, P2>(), "MULTIPOINT((1 1),(1 0),(0 2))", "POINT(0 0)", 1.0);
 }
 
+template <typename P>
+void test_empty_input()
+{
+ P p;
+ bg::model::multi_point<P> mp_empty;
+ bg::model::multi_linestring<bg::model::linestring<P> > ml_empty;
+
+ test_empty_input(p, mp_empty);
+ test_empty_input(p, ml_empty);
+ test_empty_input(mp_empty, mp_empty);
+
+ // Test behaviour if one of the inputs is empty
+ bg::model::multi_point<P> mp;
+ mp.push_back(p);
+ test_empty_input(mp_empty, mp);
+ test_empty_input(mp, mp_empty);
+}
 
 
 int test_main( int , char* [] )
@@ -146,5 +165,7 @@
     test_mixed<bg::model::d2::point_xy<ttmath_big>, bg::model::d2::point_xy<double> >();
 #endif
 
+ test_empty_input<bg::model::d2::point_xy<int> >();
+
     return 0;
 }

Modified: branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_envelope.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_envelope.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_envelope.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_equals.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_equals.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_equals.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 //
-// Copyright (c) 2010 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2010-2012 Barend Gehrels, Amsterdam, the Netherlands.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_for_each.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_for_each.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_for_each.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 //
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_intersection.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_intersection.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_intersection.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2010 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2010-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_length.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_length.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_length.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 //
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_num_geometries.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_num_geometries.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_num_geometries.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 //
-// Copyright 2011 Barend Gehrels (barend_at_[hidden]), Amsterdam, the Netherlands
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_num_interior_rings.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_num_interior_rings.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_num_interior_rings.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 //
-// Copyright 2011 Barend Gehrels (barend_at_[hidden]), Amsterdam, the Netherlands
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_num_points.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_num_points.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_num_points.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 //
-// Copyright 2011 Barend Gehrels (barend_at_[hidden]), Amsterdam, the Netherlands
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_perimeter.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_perimeter.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_perimeter.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 //
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_reverse.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_reverse.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_reverse.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 //
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_simplify.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_simplify.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_simplify.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 //
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_transform.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_transform.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_transform.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_union.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_union.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_union.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2010 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2010-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_unique.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_unique.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_unique.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 //
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_within.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_within.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/multi/algorithms/multi_within.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 //
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/test/multi/algorithms/overlay/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/multi/algorithms/overlay/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/geometry/test/multi/algorithms/overlay/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 # Boost.Geometry (aka GGL, Generic Geometry Library)
 #
-# Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-# Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-# Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+# Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+# Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+# Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 #
 # Use, modification and distribution is subject to the Boost Software License,
 # Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test/multi/algorithms/overlay/multi_overlay_cases.hpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/multi/algorithms/overlay/multi_overlay_cases.hpp (original)
+++ branches/quickbook-dev/libs/geometry/test/multi/algorithms/overlay/multi_overlay_cases.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2010-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2010-2012 Barend Gehrels, Amsterdam, the Netherlands.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/test/multi/algorithms/overlay/multi_overlay_common.hpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/multi/algorithms/overlay/multi_overlay_common.hpp (original)
+++ branches/quickbook-dev/libs/geometry/test/multi/algorithms/overlay/multi_overlay_common.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/test/multi/algorithms/overlay/multi_traverse.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/multi/algorithms/overlay/multi_traverse.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/multi/algorithms/overlay/multi_traverse.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test/multi/io/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/multi/io/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/geometry/test/multi/io/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,11 +1,12 @@
 # Boost.Geometry (aka GGL, Generic Geometry Library)
 #
-# Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-# Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-# Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+# Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+# Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+# Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 #
 # Use, modification and distribution is subject to the Boost Software License,
 # Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 # http://www.boost.org/LICENSE_1_0.txt)
 
-build-project wkt ;
\ No newline at end of file
+build-project wkt ;
+build-project dsv ;

Modified: branches/quickbook-dev/libs/geometry/test/multi/io/wkt/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/multi/io/wkt/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/geometry/test/multi/io/wkt/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 # Boost.Geometry (aka GGL, Generic Geometry Library)
 #
-# Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-# Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-# Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+# Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+# Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+# Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 #
 # Use, modification and distribution is subject to the Boost Software License,
 # Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test/multi/io/wkt/wkt.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/multi/io/wkt/wkt.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/multi/io/wkt/wkt.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/libs/geometry/test/point_concept/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/point_concept/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/geometry/test/point_concept/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 # Boost.Geometry (aka GGL, Generic Geometry Library)
 #
-# Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-# Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-# Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+# Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+# Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+# Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 #
 # Use, modification and distribution is subject to the Boost Software License,
 # Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test/point_concept/array_point.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/point_concept/array_point.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/point_concept/array_point.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/libs/geometry/test/point_concept/concept_checker.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/point_concept/concept_checker.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/point_concept/concept_checker.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/libs/geometry/test/point_concept/function_asserting_a_point.hpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/point_concept/function_asserting_a_point.hpp (original)
+++ branches/quickbook-dev/libs/geometry/test/point_concept/function_asserting_a_point.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library) Point concept unit tests
 //
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/test/point_concept/function_requiring_a_point.hpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/point_concept/function_requiring_a_point.hpp (original)
+++ branches/quickbook-dev/libs/geometry/test/point_concept/function_requiring_a_point.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library) Point concept unit tests
 //
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/test/point_concept/point_with_incorrect_dimension.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/point_concept/point_with_incorrect_dimension.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/point_concept/point_with_incorrect_dimension.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/libs/geometry/test/point_concept/point_without_coordinate_type.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/point_concept/point_without_coordinate_type.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/point_concept/point_without_coordinate_type.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/libs/geometry/test/point_concept/point_without_dimension.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/point_concept/point_without_dimension.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/point_concept/point_without_dimension.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/libs/geometry/test/point_concept/point_without_getter.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/point_concept/point_without_getter.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/point_concept/point_without_getter.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/libs/geometry/test/point_concept/point_without_setter.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/point_concept/point_without_setter.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/point_concept/point_without_setter.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/libs/geometry/test/point_concept/well_formed_point.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/point_concept/well_formed_point.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/point_concept/well_formed_point.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/libs/geometry/test/point_concept/well_formed_point_traits.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/point_concept/well_formed_point_traits.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/point_concept/well_formed_point_traits.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/libs/geometry/test/policies/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/policies/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/geometry/test/policies/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 # Boost.Geometry (aka GGL, Generic Geometry Library)
 #
-# Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-# Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-# Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+# Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+# Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+# Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 #
 # Use, modification and distribution is subject to the Boost Software License,
 # Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test/policies/compare.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/policies/compare.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/policies/compare.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test/strategies/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/strategies/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/geometry/test/strategies/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 # Boost.Geometry (aka GGL, Generic Geometry Library)
 #
-# Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-# Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-# Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+# Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+# Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+# Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 #
 # Use, modification and distribution is subject to the Boost Software License,
 # Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test/strategies/cross_track.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/strategies/cross_track.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/strategies/cross_track.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/libs/geometry/test/strategies/haversine.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/strategies/haversine.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/strategies/haversine.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/libs/geometry/test/strategies/projected_point.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/strategies/projected_point.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/strategies/projected_point.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/libs/geometry/test/strategies/pythagoras.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/strategies/pythagoras.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/strategies/pythagoras.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/libs/geometry/test/strategies/segment_intersection.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/strategies/segment_intersection.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/strategies/segment_intersection.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/libs/geometry/test/strategies/segment_intersection_collinear.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/strategies/segment_intersection_collinear.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/strategies/segment_intersection_collinear.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/libs/geometry/test/strategies/spherical_side.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/strategies/spherical_side.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/strategies/spherical_side.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test/strategies/transformer.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/strategies/transformer.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/strategies/transformer.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/libs/geometry/test/strategies/within.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/strategies/within.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/strategies/within.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2010 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2010-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test/test_common/test_point.hpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/test_common/test_point.hpp (original)
+++ branches/quickbook-dev/libs/geometry/test/test_common/test_point.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/test/test_common/with_pointer.hpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/test_common/with_pointer.hpp (original)
+++ branches/quickbook-dev/libs/geometry/test/test_common/with_pointer.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/test/test_geometries/all_custom_container.hpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/test_geometries/all_custom_container.hpp (original)
+++ branches/quickbook-dev/libs/geometry/test/test_geometries/all_custom_container.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test/test_geometries/all_custom_linestring.hpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/test_geometries/all_custom_linestring.hpp (original)
+++ branches/quickbook-dev/libs/geometry/test/test_geometries/all_custom_linestring.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/test/test_geometries/all_custom_polygon.hpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/test_geometries/all_custom_polygon.hpp (original)
+++ branches/quickbook-dev/libs/geometry/test/test_geometries/all_custom_polygon.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test/test_geometries/all_custom_ring.hpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/test_geometries/all_custom_ring.hpp (original)
+++ branches/quickbook-dev/libs/geometry/test/test_geometries/all_custom_ring.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test/test_geometries/custom_segment.hpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/test_geometries/custom_segment.hpp (original)
+++ branches/quickbook-dev/libs/geometry/test/test_geometries/custom_segment.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2010-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2010-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test/test_geometries/wrapped_boost_array.hpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/test_geometries/wrapped_boost_array.hpp (original)
+++ branches/quickbook-dev/libs/geometry/test/test_geometries/wrapped_boost_array.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2010-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2010-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test/ttmath.vsprops
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/ttmath.vsprops (original)
+++ branches/quickbook-dev/libs/geometry/test/ttmath.vsprops 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -7,7 +7,6 @@
         <Tool
                 Name="VCCLCompilerTool"
                 AdditionalIncludeDirectories="&quot;$(TTMATH_ROOT)&quot;;&quot;../$(TTMATH_ROOT)&quot;;&quot;../../$(TTMATH_ROOT)&quot;"
- PreprocessorDefinitions="HAVE_TTMATH"
         />
         <UserMacro
                 Name="TTMATH_ROOT"

Modified: branches/quickbook-dev/libs/geometry/test/util/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/util/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/geometry/test/util/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 # Boost.Geometry (aka GGL, Generic Geometry Library)
 #
-# Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-# Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-# Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+# Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+# Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+# Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 #
 # Use, modification and distribution is subject to the Boost Software License,
 # Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test/util/as_range.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/util/as_range.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/util/as_range.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/libs/geometry/test/util/for_each_coordinate.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/util/for_each_coordinate.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/util/for_each_coordinate.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/libs/geometry/test/util/rational.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/util/rational.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/util/rational.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/libs/geometry/test/util/select_most_precise.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/util/select_most_precise.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/util/select_most_precise.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/libs/geometry/test/util/write_dsv.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/util/write_dsv.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/util/write_dsv.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/libs/geometry/test/views/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/views/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/geometry/test/views/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 # Boost.Geometry (aka GGL, Generic Geometry Library)
 #
-# Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-# Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-# Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+# Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+# Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+# Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 #
 # Use, modification and distribution is subject to the Boost Software License,
 # Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test/views/box_view.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/views/box_view.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/views/box_view.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2010 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2010-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test/views/closeable_view.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/views/closeable_view.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/views/closeable_view.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2010 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2010-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test/views/reversible_closeable.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/views/reversible_closeable.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/views/reversible_closeable.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2010 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2010-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test/views/reversible_view.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/views/reversible_view.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/views/reversible_view.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2010 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2010-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test/views/segment_view.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test/views/segment_view.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test/views/segment_view.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2010 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2010-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test_extensions/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/geometry/test_extensions/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/geometry/test_extensions/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 # Boost.Geometry (aka GGL, Generic Geometry Library)
 #
-# Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-# Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-# Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+# Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+# Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+# Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 #
 # Use, modification and distribution is subject to the Boost Software License,
 # Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test_extensions/algorithms/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/geometry/test_extensions/algorithms/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/geometry/test_extensions/algorithms/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 # Boost.Geometry (aka GGL, Generic Geometry Library)
 #
-# Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-# Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-# Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+# Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+# Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+# Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 #
 # Use, modification and distribution is subject to the Boost Software License,
 # Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -16,3 +16,6 @@
     [ run midpoints.cpp ]
     [ run selected.cpp ]
     ;
+
+build-project buffer
+ ;

Modified: branches/quickbook-dev/libs/geometry/test_extensions/algorithms/buffer/linestring_buffer.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test_extensions/algorithms/buffer/linestring_buffer.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test_extensions/algorithms/buffer/linestring_buffer.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2010 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2010-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test_extensions/algorithms/buffer/linestring_buffer.vcproj
==============================================================================
--- branches/quickbook-dev/libs/geometry/test_extensions/algorithms/buffer/linestring_buffer.vcproj (original)
+++ branches/quickbook-dev/libs/geometry/test_extensions/algorithms/buffer/linestring_buffer.vcproj 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -20,7 +20,7 @@
                         OutputDirectory="$(SolutionDir)$(ConfigurationName)"
                         IntermediateDirectory="$(ConfigurationName)\linestring_buffer"
                         ConfigurationType="1"
- InheritedPropertySheets="..\..\..\boost.vsprops"
+ InheritedPropertySheets="..\..\boost.vsprops"
                         CharacterSet="1"
>
                         <Tool
@@ -41,7 +41,7 @@
                         <Tool
                                 Name="VCCLCompilerTool"
                                 Optimization="0"
- AdditionalIncludeDirectories=".;../../../../../..;../../.."
+ AdditionalIncludeDirectories=".;../../../../..;../../../test"
                                 PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
                                 ExceptionHandling="2"
                                 RuntimeLibrary="1"
@@ -93,7 +93,7 @@
                         OutputDirectory="$(SolutionDir)$(ConfigurationName)"
                         IntermediateDirectory="$(ConfigurationName)\linestring_buffer"
                         ConfigurationType="1"
- InheritedPropertySheets="..\..\..\boost.vsprops"
+ InheritedPropertySheets="..\..\boost.vsprops"
                         CharacterSet="1"
                         WholeProgramOptimization="1"
>
@@ -114,7 +114,7 @@
                         />
                         <Tool
                                 Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=".;../../../../../..;../../.."
+ AdditionalIncludeDirectories=".;../../../../..;../../../test"
                                 PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
                                 ExceptionHandling="2"
                                 UsePrecompiledHeader="0"

Modified: branches/quickbook-dev/libs/geometry/test_extensions/algorithms/buffer/polygon_buffer.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test_extensions/algorithms/buffer/polygon_buffer.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test_extensions/algorithms/buffer/polygon_buffer.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2010 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2010-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -54,8 +54,6 @@
 
     typedef bg::model::polygon<P> polygon_type;
 
- goto debug;
-
     test_one<polygon_type, buf::join_miter, polygon_type>("L", letter_L, 'm', 14, 0.5);
     test_one<polygon_type, buf::join_round, polygon_type>("L", letter_L, 'r', 13.7254516100806, 0.5);
     test_one<polygon_type, buf::join_miter, polygon_type>("simplex", simplex, 'm', 52.8733092508931, 1.5);
@@ -131,7 +129,6 @@
 
     //test_one<polygon_type, buf::join_miter, polygon_type>("flower35", flower, 'm', 84.694183819917185, 0.35);
 
-debug:
     for (int i = 1; i < 12; i++)
     {
         std::ostringstream out;

Modified: branches/quickbook-dev/libs/geometry/test_extensions/algorithms/buffer/polygon_buffer.vcproj
==============================================================================
--- branches/quickbook-dev/libs/geometry/test_extensions/algorithms/buffer/polygon_buffer.vcproj (original)
+++ branches/quickbook-dev/libs/geometry/test_extensions/algorithms/buffer/polygon_buffer.vcproj 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -20,7 +20,7 @@
                         OutputDirectory="$(SolutionDir)$(ConfigurationName)"
                         IntermediateDirectory="$(ConfigurationName)\polygon_buffer"
                         ConfigurationType="1"
- InheritedPropertySheets="..\..\..\boost.vsprops"
+ InheritedPropertySheets="..\..\boost.vsprops"
                         CharacterSet="1"
>
                         <Tool
@@ -41,7 +41,7 @@
                         <Tool
                                 Name="VCCLCompilerTool"
                                 Optimization="0"
- AdditionalIncludeDirectories=".;../../../../../..;../../.."
+ AdditionalIncludeDirectories=".;../../../../..;../../../test"
                                 PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
                                 ExceptionHandling="2"
                                 RuntimeLibrary="1"
@@ -93,7 +93,7 @@
                         OutputDirectory="$(SolutionDir)$(ConfigurationName)"
                         IntermediateDirectory="$(ConfigurationName)\polygon_buffer"
                         ConfigurationType="1"
- InheritedPropertySheets="..\..\..\boost.vsprops"
+ InheritedPropertySheets="..\..\boost.vsprops"
                         CharacterSet="1"
                         WholeProgramOptimization="1"
>
@@ -114,7 +114,7 @@
                         />
                         <Tool
                                 Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=".;../../../../../..;../../.."
+ AdditionalIncludeDirectories=".;../../../../..;../../../test"
                                 PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
                                 ExceptionHandling="2"
                                 UsePrecompiledHeader="0"

Modified: branches/quickbook-dev/libs/geometry/test_extensions/algorithms/buffer/test_buffer.hpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test_extensions/algorithms/buffer/test_buffer.hpp (original)
+++ branches/quickbook-dev/libs/geometry/test_extensions/algorithms/buffer/test_buffer.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2010-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2010-2012 Barend Gehrels, Amsterdam, the Netherlands.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)
@@ -10,21 +10,8 @@
 #ifndef BOOST_GEOMETRY_TEST_BUFFER_HPP
 #define BOOST_GEOMETRY_TEST_BUFFER_HPP
 
-
-//#define BOOST_GEOMETRY_DEBUG_WITH_MAPPER
-//#define BOOST_GEOMETRY_DEBUG_SPLIT_RINGS
-
-//#define BOOST_GEOMETRY_CHECK_WITH_POSTGIS
-//#define BOOST_GEOMETRY_DEBUG_ASSEMBLE
-//#define BOOST_GEOMETRY_DEBUG_IDENTIFIER
-
-//#undef BOOST_GEOMETRY_DEBUG_WITH_MAPPER
-//#undef TEST_WITH_SVG
-
-
-#if defined(BOOST_GEOMETRY_DEBUG_WITH_MAPPER)
+#define BOOST_GEOMETRY_DEBUG_WITH_MAPPER
 #define TEST_WITH_SVG
-#endif
 
 #include <fstream>
 #include <iomanip>
@@ -35,40 +22,61 @@
 
 #include <boost/geometry/algorithms/envelope.hpp>
 #include <boost/geometry/algorithms/area.hpp>
+#include <boost/geometry/algorithms/buffer.hpp>
 #include <boost/geometry/algorithms/centroid.hpp>
 #include <boost/geometry/algorithms/union.hpp>
 
-
 #include <boost/geometry/algorithms/detail/overlay/debug_turn_info.hpp>
-#include <boost/geometry/algorithms/detail/overlay/dissolver.hpp>
+#include <boost/geometry/extensions/algorithms/detail/overlay/dissolver.hpp>
 
 #include <boost/geometry/geometries/geometries.hpp>
 
 #include <boost/geometry/strategies/strategies.hpp>
 
 #include <boost/geometry/algorithms/disjoint.hpp>
-#include <boost/geometry/algorithms/dissolve.hpp>
-#include <boost/geometry/algorithms/detail/overlay/split_rings.hpp>
+#include <boost/geometry/extensions/algorithms/dissolve.hpp>
+//#include <boost/geometry/extensions/algorithms/detail/overlay/split_rings.hpp>
 
-#include <boost/geometry/algorithms/buffer.hpp>
+//#include <boost/geometry/extensions/algorithms/buffer.hpp>
 
-#include <boost/geometry/extensions/algorithms/buffer/remove_within_distance.hpp>
+//#include <boost/geometry/extensions/algorithms/buffer/remove_within_distance.hpp>
 #include <boost/geometry/extensions/algorithms/buffer/linestring_buffer.hpp>
 #include <boost/geometry/extensions/algorithms/buffer/polygon_buffer.hpp>
 //#include <boost/geometry/extensions/algorithms/buffer/unioning_buffer.hpp>
-#include <boost/geometry/extensions/algorithms/buffer/segmenting_buffer.hpp>
+//#include <boost/geometry/extensions/algorithms/buffer/segmenting_buffer.hpp>
 
-#include <boost/geometry/strategies/buffer.hpp>
+#include <boost/geometry/extensions/strategies/buffer.hpp>
 
 #include <boost/geometry/io/wkt/wkt.hpp>
 
 
-
 #if defined(TEST_WITH_SVG)
 # include <boost/geometry/extensions/io/svg/svg_mapper.hpp>
 #endif
 
 
+#include <boost/geometry/algorithms/detail/overlay/self_turn_points.hpp>
+template <typename Geometry, typename Mapper>
+void post_map(Geometry const& geometry, Mapper& mapper)
+{
+ typedef bg::detail::overlay::turn_info
+ <
+ typename bg::point_type<Geometry>::type
+ > turn_info;
+
+ std::vector<turn_info> turns;
+
+ bg::detail::self_get_turn_points::no_interrupt_policy policy;
+ bg::self_turns
+ <
+ bg::detail::overlay::assign_null_policy
+ >(geometry, turns, policy);
+
+ BOOST_FOREACH(turn_info const& turn, turns)
+ {
+ mapper.map(turn.point, "fill:rgb(255,128,0);stroke:rgb(0,0,100);stroke-width:1", 3);
+ }
+}
 
 template
 <
@@ -96,266 +104,109 @@
 
     typedef typename bg::ring_type<GeometryOut>::type ring_type;
 
- typedef JoinStrategy
- <
- point_type,
- typename bg::point_type<GeometryOut>::type
-#ifdef BOOST_GEOMETRY_DEBUG_WITH_MAPPER
- , bg::svg_mapper<point_type>
-#endif
- > join_strategy;
-
-
- typedef bg::detail::buffer::intersecting_inserter
- <
- std::vector<GeometryOut>
- > inserter_type;
-
-
- /***/
- typedef bg::box<point_type> box_type;
- typedef bg::sections<box_type, 1> sections_type;
-
- sections_type sections;
- bg::sectionalize(geometry, sections);
+ std::ostringstream filename;
+ filename << "buffer_"
+ << (bg::geometry_id<Geometry>::value == 2 ? "line" : "poly") << "_"
+ << caseid << "_"
+ << string_from_type<coordinate_type>::name()
+ << "_" << join
+ << ".svg";
 
- std::vector<GeometryOut> sections_buffered;
+ std::ofstream svg(filename.str().c_str());
 
+ bg::svg_mapper<point_type> mapper(svg, 500, 500);
 
- // Buffer all sections separately
- BOOST_FOREACH(typename sections_type::value_type const& section, sections)
     {
- if (! section.duplicate)
+ bg::model::box<point_type> box;
+ bg::envelope(geometry, box);
+ double d = distance_left;
+ if (distance_right > 0)
         {
- typedef typename boost::range_iterator
- <
- typename bg::range_type<Geometry>::type const
- >::type iterator_type;
-
-
- inserter_type inserter(sections_buffered);
-
- iterator_type begin, end;
- typedef std::pair<iterator_type, iterator_type> section_range;
- //bg::get_section(geometry, section, begin, end);
-
- typedef bg::closeable_view
- <
- typename bg::range_type<Geometry>::type const,
- bg::closure<Geometry>::value == bg::open
- > view_type;
-
- view_type view = bg::get_full_section<view_type>(geometry, section);
-
- bg::detail::buffer::linestring_buffer
- <
- section_range, ring_type, distance, join_strategy
- >::apply(std::make_pair(
- boost::begin(view) + section.begin_index,
- boost::begin(view) + section.end_index),
- inserter,
- distance(distance_left, distance_left / 2.0), // two times left
- join_strategy());
+ d += distance_right;
         }
- }
 
- std::vector<GeometryOut> sections_buffered_unioned;
- BOOST_FOREACH(GeometryOut const& p, sections_buffered)
- {
- if (sections_buffered_unioned.empty())
- {
- bg::detail::union_::union_insert<GeometryOut>(geometry, p, std::back_inserter(sections_buffered_unioned));
- }
- else if (boost::size(sections_buffered_unioned) == 1)
- {
- std::vector<GeometryOut> step;
- bg::detail::union_::union_insert<GeometryOut>(sections_buffered_unioned.front(), p, std::back_inserter(step));
- step.swap(sections_buffered_unioned);
- }
- else
- {
- std::cout << "nyi" << std::endl;
- BOOST_FOREACH(GeometryOut const& sbu, sections_buffered_unioned)
- {
- bg::detail::union_::union_insert<GeometryOut>(p, sbu, sections_buffered_unioned);
- }
- }
+ bg::buffer(box, box, d * 1.1);
+ mapper.add(box);
     }
- /***/
-
-
- std::vector<GeometryOut> buffered;
- inserter_type inserter(buffered);
-
 
-#if ! defined(TEST_WITH_SVG)
 
- #if defined(BOOST_GEOMETRY_TEST_BUFFER_POLYGON)
- GeometryOut buffered_step1;
- bg::detail::buffer::polygon_buffer
- <
- Geometry, Geometry, join_strategy
- >::apply(geometry, buffered_step1, distance_left, join_strategy());
 
- //bg::dissolve_inserter<GeometryOut>(buffered_step1, std::back_inserter(buffered));
- buffered.push_back(buffered_step1);
- #else
- /*bg::detail::buffer::linestring_buffer
+ typedef JoinStrategy
         <
- Geometry, GeometryOut, distance, join_strategy
- >::apply(geometry, inserter,
- distance(distance_left, distance_right),
- join_strategy());
- */
- #endif
-
-#else
-
- {
- std::ostringstream filename;
- filename << "buffer_"
- << (bg::geometry_id<Geometry>::value == 2 ? "line" : "poly") << "_"
- << caseid << "_"
- << string_from_type<coordinate_type>::name()
- << "_" << join
- << ".svg";
-
- std::ofstream svg(filename.str().c_str());
-
- bg::svg_mapper<point_type> mapper(svg, 500, 500);
-
- //inserter_type inserter(buffered);
-
- // Display including a margin
- bg::box<point_type> extent;
- bg::envelope(geometry, extent);
- bg::buffer(extent, extent, distance_left * 1.01);
- mapper.add(extent);
-
-
- std::vector<GeometryOut> sections_buffered_unioned;
-
-
-#if defined(BOOST_GEOMETRY_TEST_BUFFER_POLYGON)
-/*
- bg::detail::buffer::unioning_buffer(geometry, sections_buffered_unioned,
- distance(distance_left, distance_left / 2.0)
+ point_type,
+ typename bg::point_type<GeometryOut>::type
 #ifdef BOOST_GEOMETRY_DEBUG_WITH_MAPPER
- , join_strategy(mapper), mapper
-#else
- , join_strategy()
+ , bg::svg_mapper<point_type>
 #endif
- );
-*/
+ > join_strategy_type;
 
- Geometry buffered_step1;
- bg::detail::buffer::polygon_buffer
- <
- Geometry, Geometry, join_strategy
- >::apply(geometry, buffered_step1, distance_left
 #ifdef BOOST_GEOMETRY_DEBUG_WITH_MAPPER
- , join_strategy(mapper), mapper
+ join_strategy_type join_strategy(mapper);
 #else
- , join_strategy()
+ join_strategy_type join_strategy;
 #endif
- );
-
- //bg::dissolve_inserter<GeometryOut>(buffered_step1, std::back_inserter(buffered));
- buffered.push_back(buffered_step1);
 
- #else
 
+ std::vector<GeometryOut> buffered;
 
- bg::detail::buffer::segmenting_buffer(geometry, sections_buffered_unioned,
- distance(distance_left, distance_right)
+#ifdef BOOST_GEOMETRY_TEST_BUFFER_POLYGON
+ {
+ GeometryOut buffered_step1;
+ bg::detail::buffer::polygon_buffer
+ <
+ Geometry, GeometryOut, join_strategy_type
+ >::apply(geometry, buffered_step1,
+ distance_left,
+ join_strategy
 #ifdef BOOST_GEOMETRY_DEBUG_WITH_MAPPER
- , join_strategy(mapper), mapper
-#else
- , join_strategy()
+ , mapper
 #endif
- );
+ );
+ buffered.push_back(buffered_step1);
+ }
+#else
+ {
+ typedef bg::strategy::buffer::distance_assymetric<coordinate_type> distance;
+ typedef bg::detail::buffer::intersecting_inserter
+ <
+ std::vector<GeometryOut>
+ > inserter_type;
+
+ inserter_type inserter(buffered);
 
-#ifdef OLD_APPROACH
         bg::detail::buffer::linestring_buffer
             <
- Geometry, GeometryOut, distance, join_strategy
- >::apply(geometry, inserter,
- distance(distance_left, distance_right)
+ Geometry, GeometryOut, distance, join_strategy_type
+ >::apply(geometry, inserter,
+ distance(distance_left, distance_left / 2.0),
+ join_strategy
 #ifdef BOOST_GEOMETRY_DEBUG_WITH_MAPPER
- , join_strategy(mapper), mapper
-#else
- , join_strategy()
-#endif
- );
+ , mapper
 #endif
- #endif
-
- // Map input geometry in green
- mapper.map(geometry, "opacity:0.5;fill:rgb(0,255,0);stroke:rgb(0,255,0);stroke-width:1");
-
-#ifdef OLD_APPROACH
- std::vector<ring_type> rings;
- BOOST_FOREACH(GeometryOut const& polygon, buffered)
- {
-//std::cout << bg::wkt(polygon) << " ; POLYGON" << std::endl;
- bg::split_rings(polygon, rings);
- }
-
-/*
- BOOST_FOREACH(ring_type const& ring, rings)
- {
- mapper.map(ring,
- bg::area(ring) > 0
- ? "opacity:0.5;fill:none;stroke:rgb(255,0,0);stroke-width:8"
- : "opacity:0.5;fill:none;stroke:rgb(0,0,255);stroke-width:8"
- );
-std::cout << bg::wkt(ring)
- << " ; " << bg::area(ring)
- << " " << ring.size()
- << std::endl;
- }
-*/
-
- std::vector<GeometryOut> buffered_and_unioned;
- bg::dissolver(rings, buffered_and_unioned);
-
- std::vector<GeometryOut> buffered_and_assembled;
- bg::detail::overlay::assemble<GeometryOut>(buffered_and_unioned,
- std::map<bg::ring_identifier, int>(),
- buffered_and_unioned[0], buffered_and_unioned[0], 1, true, true,
- std::back_inserter(buffered_and_assembled));
-
- // Map buffer in green
- BOOST_FOREACH(GeometryOut const& p, buffered_and_assembled)
- {
- mapper.map(p, "opacity:0.8;fill:none;stroke:rgb(0,64,0);stroke-width:2");
- }
- buffered.swap(buffered_and_assembled);
+ );
+ }
 #endif
 
-
- BOOST_FOREACH(GeometryOut const& p, sections_buffered_unioned)//sections_buffered)
- {
- mapper.map(p, "opacity:0.5;fill:rgb(255,255,128);stroke:rgb(0,64,0);stroke-width:2");
- }
-
+ //std::cout << caseid << std::endl;
+ //std::cout << "INPUT: " << bg::wkt(geometry) << std::endl;
+ //std::cout << "OUTPUT:" << std::endl;
+ //BOOST_FOREACH(GeometryOut const& polygon, buffered)
+ //{
+ // std::cout << bg::wkt(polygon) << std::endl;
+ //}
 
 
-}
-#endif
+ // Map input geometry in green
+ mapper.map(geometry, "opacity:0.5;fill:rgb(0,128,0);stroke:rgb(0,128,0);stroke-width:1");
 
- /***
- coordinate_type a = coordinate_type();
     BOOST_FOREACH(GeometryOut const& polygon, buffered)
     {
- a += bg::area(polygon);
+ mapper.map(polygon, "opacity:0.8;fill:none;stroke:rgb(0,0,0);stroke-width:2");
+ post_map(polygon, mapper);
     }
- BOOST_CHECK_CLOSE(a, expected_area, join == 'r'
- ? coordinate_type(0.1)
- : coordinate_type(0.001));
- ***/
 }
 
+
 #ifdef BOOST_GEOMETRY_CHECK_WITH_POSTGIS
 static int counter = 0;
 #endif

Modified: branches/quickbook-dev/libs/geometry/test_extensions/algorithms/connect.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test_extensions/algorithms/connect.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test_extensions/algorithms/connect.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2010 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2010-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test_extensions/algorithms/dissolve.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test_extensions/algorithms/dissolve.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test_extensions/algorithms/dissolve.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2010 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2010-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -27,6 +27,7 @@
 #include <boost/geometry/strategies/strategies.hpp>
 
 #include <boost/geometry/io/wkt/wkt.hpp>
+#include <boost/geometry/multi/io/wkt/wkt.hpp>
 
 #include <boost/geometry/multi/algorithms/for_each.hpp>
 

Modified: branches/quickbook-dev/libs/geometry/test_extensions/algorithms/is_convex.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test_extensions/algorithms/is_convex.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test_extensions/algorithms/is_convex.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/libs/geometry/test_extensions/algorithms/mark_spikes.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test_extensions/algorithms/mark_spikes.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test_extensions/algorithms/mark_spikes.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2011-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test_extensions/algorithms/midpoints.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test_extensions/algorithms/midpoints.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test_extensions/algorithms/midpoints.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/libs/geometry/test_extensions/algorithms/offset.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test_extensions/algorithms/offset.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test_extensions/algorithms/offset.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2010 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2010-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test_extensions/algorithms/remove_holes_if.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test_extensions/algorithms/remove_holes_if.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test_extensions/algorithms/remove_holes_if.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/libs/geometry/test_extensions/algorithms/selected.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test_extensions/algorithms/selected.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test_extensions/algorithms/selected.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/libs/geometry/test_extensions/arithmetic/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/geometry/test_extensions/arithmetic/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/geometry/test_extensions/arithmetic/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 # Boost.Geometry (aka GGL, Generic Geometry Library)
 #
-# Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-# Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-# Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+# Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+# Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+# Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 #
 # Use, modification and distribution is subject to the Boost Software License,
 # Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test_extensions/arithmetic/cross_product.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test_extensions/arithmetic/cross_product.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test_extensions/arithmetic/cross_product.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -24,9 +24,9 @@
 void test_2d()
 {
     P p1;
- bg::assign(p1, 20, 30);
+ bg::assign_values(p1, 20, 30);
     P p2;
- bg::assign(p2, 45, 70);
+ bg::assign_values(p2, 45, 70);
     P c = bg::cross_product(p1, p2);
 
     typedef typename bg::coordinate_type<P>::type scalar_type;
@@ -37,9 +37,9 @@
 void test_3d()
 {
     P p1;
- bg::assign(p1, 20, 30, 10);
+ bg::assign_values(p1, 20, 30, 10);
     P p2;
- bg::assign(p2, 45, 70, 20);
+ bg::assign_values(p2, 45, 70, 20);
     P c = bg::cross_product(p1, p2);
 
     typedef typename bg::coordinate_type<P>::type scalar_type;
@@ -53,9 +53,9 @@
 void test_4d()
 {
     P p1;
- bg::assign(p1, 20, 30, 10, 15);
+ bg::assign_values(p1, 20, 30, 10, 15);
     P p2;
- bg::assign(p2, 45, 70, 20, 35);
+ bg::assign_values(p2, 45, 70, 20, 35);
     P c = bg::cross_product(p1, p2);
 }
 #endif

Modified: branches/quickbook-dev/libs/geometry/test_extensions/gis/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/geometry/test_extensions/gis/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/geometry/test_extensions/gis/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 # Boost.Geometry (aka GGL, Generic Geometry Library)
 #
-# Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-# Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-# Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+# Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+# Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+# Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 #
 # Use, modification and distribution is subject to the Boost Software License,
 # Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test_extensions/gis/io/wkb/read_wkb.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test_extensions/gis/io/wkb/read_wkb.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test_extensions/gis/io/wkb/read_wkb.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test_extensions/gis/latlong/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/geometry/test_extensions/gis/latlong/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/geometry/test_extensions/gis/latlong/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 # Boost.Geometry (aka GGL, Generic Geometry Library)
 #
-# Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-# Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-# Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+# Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+# Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+# Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 #
 # Use, modification and distribution is subject to the Boost Software License,
 # Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test_extensions/gis/latlong/andoyer.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test_extensions/gis/latlong/andoyer.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test_extensions/gis/latlong/andoyer.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
@@ -43,8 +43,8 @@
 
     P1 p1, p2;
 
- bg::assign(p1, lon1, lat1);
- bg::assign(p2, lon2, lat2);
+ bg::assign_values(p1, lon1, lat1);
+ bg::assign_values(p2, lon2, lat2);
 
     BOOST_CHECK_CLOSE(andoyer.apply(p1, p2), return_type(1000.0 * expected_km), 0.001);
 }

Modified: branches/quickbook-dev/libs/geometry/test_extensions/gis/latlong/area_ll.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test_extensions/gis/latlong/area_ll.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test_extensions/gis/latlong/area_ll.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/libs/geometry/test_extensions/gis/latlong/cross_track.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test_extensions/gis/latlong/cross_track.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test_extensions/gis/latlong/cross_track.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
@@ -58,9 +58,9 @@
     //typedef bg::strategy::distance::andoyer<Point, Point> andoyer_type;
 
     Point p1, p2, p3;
- bg::assign(p1, lon1, lat1);
- bg::assign(p2, lon2, lat2);
- bg::assign(p3, lon3, lat3);
+ bg::assign_values(p1, lon1, lat1);
+ bg::assign_values(p2, lon2, lat2);
+ bg::assign_values(p3, lon3, lat3);
 
     strategy_type strategy;
     return_type d = strategy.apply(p1, p2, p3);

Modified: branches/quickbook-dev/libs/geometry/test_extensions/gis/latlong/distance_mixed.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test_extensions/gis/latlong/distance_mixed.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test_extensions/gis/latlong/distance_mixed.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/libs/geometry/test_extensions/gis/latlong/parse.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test_extensions/gis/latlong/parse.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test_extensions/gis/latlong/parse.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/libs/geometry/test_extensions/gis/latlong/parse_dms.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test_extensions/gis/latlong/parse_dms.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test_extensions/gis/latlong/parse_dms.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/libs/geometry/test_extensions/gis/latlong/point_ll.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test_extensions/gis/latlong/point_ll.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test_extensions/gis/latlong/point_ll.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/libs/geometry/test_extensions/gis/latlong/vincenty.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test_extensions/gis/latlong/vincenty.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test_extensions/gis/latlong/vincenty.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
@@ -43,8 +43,8 @@
 
     P1 p1, p2;
 
- bg::assign(p1, lon1, lat1);
- bg::assign(p2, lon2, lat2);
+ bg::assign_values(p1, lon1, lat1);
+ bg::assign_values(p2, lon2, lat2);
 
     BOOST_CHECK_CLOSE(vincenty.apply(p1, p2), return_type(1000.0) * return_type(expected_km), 0.001);
 }

Modified: branches/quickbook-dev/libs/geometry/test_extensions/gis/projections/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/geometry/test_extensions/gis/projections/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/geometry/test_extensions/gis/projections/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 # Boost.Geometry (aka GGL, Generic Geometry Library)
 #
-# Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-# Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-# Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+# Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+# Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+# Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 #
 # Use, modification and distribution is subject to the Boost Software License,
 # Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test_extensions/gis/projections/projection.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test_extensions/gis/projections/projection.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test_extensions/gis/projections/projection.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/libs/geometry/test_extensions/gis/projections/projection_epsg.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test_extensions/gis/projections/projection_epsg.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test_extensions/gis/projections/projection_epsg.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
@@ -80,14 +80,16 @@
 
 int test_main(int, char* [])
 {
+ // Commented out most the types because otherwise it cannot be linked
     //test_all<int[2]>();
- test_all<float[2]>();
- test_all<double[2]>();
- test_all<test::test_point>();
+ //test_all<float[2]>();
+ //test_all<double[2]>();
+ //test_all<test::test_point>();
     //test_all<bg::model::d2::point_xy<int> >();
- test_all<bg::model::d2::point_xy<float> >();
+ ////test_all<bg::model::d2::point_xy<float> >();
+ ////test_all<bg::model::d2::point_xy<long double> >();
+
     test_all<bg::model::d2::point_xy<double> >();
- test_all<bg::model::d2::point_xy<long double> >();
 
     return 0;
 }

Modified: branches/quickbook-dev/libs/geometry/test_extensions/gis/projections/projections.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test_extensions/gis/projections/projections.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test_extensions/gis/projections/projections.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/libs/geometry/test_extensions/index/rtree.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test_extensions/index/rtree.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test_extensions/index/rtree.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test_extensions/iterators/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/geometry/test_extensions/iterators/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/geometry/test_extensions/iterators/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 # Boost.Geometry (aka GGL, Generic Geometry Library)
 #
-# Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-# Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-# Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+# Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+# Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+# Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 #
 # Use, modification and distribution is subject to the Boost Software License,
 # Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test_extensions/iterators/segment_returning_iterator.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test_extensions/iterators/segment_returning_iterator.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test_extensions/iterators/segment_returning_iterator.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,8 +1,8 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 //
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test_extensions/nsphere/access.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test_extensions/nsphere/access.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test_extensions/nsphere/access.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,9 +1,9 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
-// Copyright (c) 2008-2011 Bruno Lalande, Paris, France.
-// Copyright (c) 2009-2011 Mateusz Loskot, London, UK.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
+// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
 
 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.

Modified: branches/quickbook-dev/libs/geometry/test_extensions/nsphere/area.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test_extensions/nsphere/area.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test_extensions/nsphere/area.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test_extensions/nsphere/circle.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test_extensions/nsphere/circle.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test_extensions/nsphere/circle.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test_extensions/nsphere/multi_within.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test_extensions/nsphere/multi_within.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test_extensions/nsphere/multi_within.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 //
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/geometry/test_extensions/nsphere/point_type.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test_extensions/nsphere/point_type.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test_extensions/nsphere/point_type.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,7 +1,7 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 // Unit Test
 
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at

Modified: branches/quickbook-dev/libs/geometry/test_extensions/nsphere/within.cpp
==============================================================================
--- branches/quickbook-dev/libs/geometry/test_extensions/nsphere/within.cpp (original)
+++ branches/quickbook-dev/libs/geometry/test_extensions/nsphere/within.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Boost.Geometry (aka GGL, Generic Geometry Library)
 //
-// Copyright (c) 2007-2011 Barend Gehrels, Amsterdam, the Netherlands.
+// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 // Use, modification and distribution is subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)

Modified: branches/quickbook-dev/libs/interprocess/doc/interprocess.qbk
==============================================================================
--- branches/quickbook-dev/libs/interprocess/doc/interprocess.qbk (original)
+++ branches/quickbook-dev/libs/interprocess/doc/interprocess.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -6600,8 +6600,15 @@
 [section:release_notes_boost_1_49_00 Boost 1.49 Release]
 
 * Fixed bugs
- [@https://svn.boost.org/trac/boost/ticket/6233 #6233],
+ [@https://svn.boost.org/trac/boost/ticket/6412 #6412],
+ [@https://svn.boost.org/trac/boost/ticket/6398 #6398],
+ [@https://svn.boost.org/trac/boost/ticket/6319 #6319],
   [@https://svn.boost.org/trac/boost/ticket/6287 #6287],
+ [@https://svn.boost.org/trac/boost/ticket/6265 #6265],
+ [@https://svn.boost.org/trac/boost/ticket/6233 #6233],
+ [@https://svn.boost.org/trac/boost/ticket/6147 #6147],
+ [@https://svn.boost.org/trac/boost/ticket/6134 #6134],
+ [@https://svn.boost.org/trac/boost/ticket/6058 #6058],
   [@https://svn.boost.org/trac/boost/ticket/6054 #6054],
   [@https://svn.boost.org/trac/boost/ticket/5772 #5772],
   [@https://svn.boost.org/trac/boost/ticket/5738 #5738],

Modified: branches/quickbook-dev/libs/intrusive/doc/intrusive.qbk
==============================================================================
--- branches/quickbook-dev/libs/intrusive/doc/intrusive.qbk (original)
+++ branches/quickbook-dev/libs/intrusive/doc/intrusive.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3827,6 +3827,7 @@
 [section:release_notes_boost_1_49_00 Boost 1.49 Release]
 
 * Fixed bugs
+ [@https://svn.boost.org/trac/boost/ticket/6347 #6347],
   [@https://svn.boost.org/trac/boost/ticket/6223 #6223],
   [@https://svn.boost.org/trac/boost/ticket/6153 #6153].
 

Modified: branches/quickbook-dev/libs/iostreams/src/gzip.cpp
==============================================================================
--- branches/quickbook-dev/libs/iostreams/src/gzip.cpp (original)
+++ branches/quickbook-dev/libs/iostreams/src/gzip.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -62,7 +62,7 @@
     case s_os:
         os_ = value;
         if (flags_ & gzip::flags::extra) {
- state_ = s_extra;
+ state_ = s_xlen;
         } else if (flags_ & gzip::flags::name) {
             state_ = s_name;
         } else if (flags_ & gzip::flags::comment) {

Modified: branches/quickbook-dev/libs/iostreams/test/gzip_test.cpp
==============================================================================
--- branches/quickbook-dev/libs/iostreams/test/gzip_test.cpp (original)
+++ branches/quickbook-dev/libs/iostreams/test/gzip_test.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -5,6 +5,7 @@
 
 // See http://www.boost.org/libs/iostreams for documentation.
 
+#include <cstddef>
 #include <string>
 #include <boost/iostreams/copy.hpp>
 #include <boost/iostreams/device/array.hpp>
@@ -111,11 +112,51 @@
     BOOST_CHECK_EQUAL(data, res);
 }
 
+void header_test()
+{
+ // This test is in response to https://svn.boost.org/trac/boost/ticket/5908
+ // which describes a problem parsing gzip headers with extra fields as
+ // defined in RFC 1952 (http://www.ietf.org/rfc/rfc1952.txt).
+ // The extra field data used here is characteristic of the tabix file
+ // format (http://samtools.sourceforge.net/tabix.shtml).
+ const char header_bytes[] = {
+ gzip::magic::id1,
+ gzip::magic::id2,
+ gzip::method::deflate, // Compression Method: deflate
+ gzip::flags::extra | gzip::flags::name | gzip::flags::comment, // flags
+ 0x22, 0x9c, 0xf3, 0x4e, // 4 byte modification time (little endian)
+ gzip::extra_flags::best_compression, // XFL
+ gzip::os_unix, // OS
+ 6, 0, // 2 byte length of extra field (little endian, 6 bytes)
+ 'B', 'C', 2, 0, 0, 0, // 6 bytes worth of extra field data
+ 'a', 'b', 'c', 0, // original filename, null terminated
+ 'n', 'o', ' ', 'c', 'o', 'm', 'm', 'e', 'n', 't', 0, // comment
+ };
+ size_t sz = sizeof(header_bytes)/sizeof(header_bytes[0]);
+
+ boost::iostreams::detail::gzip_header hdr;
+ for (size_t i = 0; i < sz; ++i) {
+ hdr.process(header_bytes[i]);
+
+ // Require that we are done at the last byte, not before.
+ if (i == sz-1)
+ BOOST_REQUIRE(hdr.done());
+ else
+ BOOST_REQUIRE(!hdr.done());
+ }
+
+ BOOST_CHECK_EQUAL("abc", hdr.file_name());
+ BOOST_CHECK_EQUAL("no comment", hdr.comment());
+ BOOST_CHECK_EQUAL(0x4ef39c22, hdr.mtime());
+ BOOST_CHECK_EQUAL(gzip::os_unix, hdr.os());
+}
+
 test_suite* init_unit_test_suite(int, char* [])
 {
     test_suite* test = BOOST_TEST_SUITE("gzip test");
     test->add(BOOST_TEST_CASE(&compression_test));
     test->add(BOOST_TEST_CASE(&multiple_member_test));
     test->add(BOOST_TEST_CASE(&array_source_test));
+ test->add(BOOST_TEST_CASE(&header_test));
     return test;
 }

Modified: branches/quickbook-dev/libs/locale/src/posix/numeric.cpp
==============================================================================
--- branches/quickbook-dev/libs/locale/src/posix/numeric.cpp (original)
+++ branches/quickbook-dev/libs/locale/src/posix/numeric.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -210,7 +210,7 @@
     {
         while(begin!=end) {
             char c= *begin++;
- mask r=mask();
+ int r=0;
             if(isspace_l(c,*lc_))
                 r|=space;
             if(isprint_l(c,*lc_))
@@ -229,7 +229,10 @@
                 r|=xdigit;
             if(ispunct_l(c,*lc_))
                 r|=punct;
- *m++ = r;
+ // r actually should be mask, but some standard
+ // libraries (like STLPort)
+ // do not define operator | properly so using int+cast
+ *m++ = static_cast<mask>(r);
         }
         return begin;
     }
@@ -305,7 +308,7 @@
     {
         while(begin!=end) {
             wchar_t c= *begin++;
- mask r=mask();
+ int r=0;
             if(iswspace_l(c,*lc_))
                 r|=space;
             if(iswprint_l(c,*lc_))
@@ -324,7 +327,10 @@
                 r|=xdigit;
             if(iswpunct_l(c,*lc_))
                 r|=punct;
- *m++ = r;
+ // r actually should be mask, but some standard
+ // libraries (like STLPort)
+ // do not define operator | properly so using int+cast
+ *m++ = static_cast<mask>(r);
         }
         return begin;
     }

Modified: branches/quickbook-dev/libs/locale/test/test_locale.hpp
==============================================================================
--- branches/quickbook-dev/libs/locale/test/test_locale.hpp (original)
+++ branches/quickbook-dev/libs/locale/test/test_locale.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -13,7 +13,7 @@
 #include <iostream>
 #include <iomanip>
 #include <cstdlib>
-
+#include <string>
 
 int error_counter=0;
 int test_counter=0;

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/index.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/index.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/index.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -513,7 +513,7 @@
   </p>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
-<td align="left"><p><small>Last revised: December 21, 2011 at 17:52:13 GMT</small></p></td>
+<td align="left"><p><small>Last revised: January 09, 2012 at 12:12:07 GMT</small></p></td>
 <td align="right"><div class="copyright-footer"></div></td>
 </tr></table>
 <hr>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/index/s12.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/index/s12.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/index/s12.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,9 +22,9 @@
 <div class="spirit-nav">
 <a accesskey="p" href="../math_toolkit/status/credits.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="s13.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section id1474671">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="id1473788"></a>Function Index</h2></div></div></div>
+<a name="id1474671"></a>Function Index</h2></div></div></div>
 <p><a class="link" href="s12.html#idx_id_0">A</a> <a class="link" href="s12.html#idx_id_1">B</a> <a class="link" href="s12.html#idx_id_2">C</a> <a class="link" href="s12.html#idx_id_3">D</a> <a class="link" href="s12.html#idx_id_4">E</a> <a class="link" href="s12.html#idx_id_5">F</a> <a class="link" href="s12.html#idx_id_6">G</a> <a class="link" href="s12.html#idx_id_7">H</a> <a class="link" href="s12.html#idx_id_8">I</a> <a class="link" href="s12.html#idx_id_9">K</a> <a class="link" href="s12.html#idx_id_10">L</a> <a class="link" href="s12.html#idx_id_11">M</a> <a class="link" href="s12.html#idx_id_12">N</a> <a class="link" href="s12.html#idx_id_14">P</a> <a class="link" href="s12.html#idx_id_15">Q</a> <a class="link" href="s12.html#idx_id_16">R</a> <a class="link" href="s12.html#idx_id_17">S</a> <a class="link" href="s12.html#idx_id_18">T</a> <a class="link" href="s12.html#idx_id_19">U</a> <a class="link" href="s12.html#idx_id_20">V</a> <a class="link" href="s12.html#idx_id_21">W</a> <a class="link" href=
"s12.html#idx_id_22">Z</a></p>
 <div class="variablelist"><dl>
 <dt>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/index/s13.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/index/s13.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/index/s13.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,9 +22,9 @@
 <div class="spirit-nav">
 <a accesskey="p" href="s12.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="s14.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section id1491128">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="id1490914"></a>Class Index</h2></div></div></div>
+<a name="id1491128"></a>Class Index</h2></div></div></div>
 <p><a class="link" href="s13.html#idx_id_24">B</a> <a class="link" href="s13.html#idx_id_25">C</a> <a class="link" href="s13.html#idx_id_26">D</a> <a class="link" href="s13.html#idx_id_27">E</a> <a class="link" href="s13.html#idx_id_28">F</a> <a class="link" href="s13.html#idx_id_29">G</a> <a class="link" href="s13.html#idx_id_30">H</a> <a class="link" href="s13.html#idx_id_31">I</a> <a class="link" href="s13.html#idx_id_33">L</a> <a class="link" href="s13.html#idx_id_34">M</a> <a class="link" href="s13.html#idx_id_35">N</a> <a class="link" href="s13.html#idx_id_37">P</a> <a class="link" href="s13.html#idx_id_39">R</a> <a class="link" href="s13.html#idx_id_40">S</a> <a class="link" href="s13.html#idx_id_41">T</a> <a class="link" href="s13.html#idx_id_42">U</a> <a class="link" href="s13.html#idx_id_44">W</a></p>
 <div class="variablelist"><dl>
 <dt>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/index/s14.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/index/s14.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/index/s14.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,9 +22,9 @@
 <div class="spirit-nav">
 <a accesskey="p" href="s13.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="s15.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section id1492041">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="id1491827"></a>Typedef Index</h2></div></div></div>
+<a name="id1492041"></a>Typedef Index</h2></div></div></div>
 <p><a class="link" href="s14.html#idx_id_46">A</a> <a class="link" href="s14.html#idx_id_47">B</a> <a class="link" href="s14.html#idx_id_48">C</a> <a class="link" href="s14.html#idx_id_49">D</a> <a class="link" href="s14.html#idx_id_50">E</a> <a class="link" href="s14.html#idx_id_51">F</a> <a class="link" href="s14.html#idx_id_52">G</a> <a class="link" href="s14.html#idx_id_53">H</a> <a class="link" href="s14.html#idx_id_54">I</a> <a class="link" href="s14.html#idx_id_56">L</a> <a class="link" href="s14.html#idx_id_58">N</a> <a class="link" href="s14.html#idx_id_59">O</a> <a class="link" href="s14.html#idx_id_60">P</a> <a class="link" href="s14.html#idx_id_62">R</a> <a class="link" href="s14.html#idx_id_63">S</a> <a class="link" href="s14.html#idx_id_64">T</a> <a class="link" href="s14.html#idx_id_65">U</a> <a class="link" href="s14.html#idx_id_66">V</a> <a class="link" href="s14.html#idx_id_67">W</a></p>
 <div class="variablelist"><dl>
 <dt>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/index/s15.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/index/s15.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/index/s15.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,9 +22,9 @@
 <div class="spirit-nav">
 <a accesskey="p" href="s14.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="s16.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section id1494926">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="id1494712"></a>Macro Index</h2></div></div></div>
+<a name="id1494926"></a>Macro Index</h2></div></div></div>
 <p><a class="link" href="s15.html#idx_id_70">B</a> <a class="link" href="s15.html#idx_id_74">F</a></p>
 <div class="variablelist"><dl>
 <dt>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/index/s16.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/index/s16.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/index/s16.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -21,9 +21,9 @@
 <div class="spirit-nav">
 <a accesskey="p" href="s15.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a>
 </div>
-<div class="section">
+<div class="section id1496362">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="id1495875"></a>Index</h2></div></div></div>
+<a name="id1496362"></a>Index</h2></div></div></div>
 <p><a class="link" href="s16.html#idx_id_92">A</a> <a class="link" href="s16.html#idx_id_93">B</a> <a class="link" href="s16.html#idx_id_94">C</a> <a class="link" href="s16.html#idx_id_95">D</a> <a class="link" href="s16.html#idx_id_96">E</a> <a class="link" href="s16.html#idx_id_97">F</a> <a class="link" href="s16.html#idx_id_98">G</a> <a class="link" href="s16.html#idx_id_99">H</a> <a class="link" href="s16.html#idx_id_100">I</a> <a class="link" href="s16.html#idx_id_101">K</a> <a class="link" href="s16.html#idx_id_102">L</a> <a class="link" href="s16.html#idx_id_103">M</a> <a class="link" href="s16.html#idx_id_104">N</a> <a class="link" href="s16.html#idx_id_105">O</a> <a class="link" href="s16.html#idx_id_106">P</a> <a class="link" href="s16.html#idx_id_107">Q</a> <a class="link" href="s16.html#idx_id_108">R</a> <a class="link" href="s16.html#idx_id_109">S</a> <a class="link" href="s16.html#idx_id_110">T</a> <a class="link" href="s16.html#idx_id_111">U</a> <a class="link" href="s16.html#idx_id_112">V</a
> <a class="link" href="s16.html#idx_id_113">W</a> <a class="link" href="s16.html#idx_id_114">Z</a></p>
 <div class="variablelist"><dl>
 <dt>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/backgrounders.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/backgrounders.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/backgrounders.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="perf/perf_test_app.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="backgrounders/implementation.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_backgrounders">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
 <a name="math_toolkit.backgrounders"></a><a class="link" href="backgrounders.html" title="Backgrounders">Backgrounders</a>
 </h2></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/backgrounders/implementation.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/backgrounders/implementation.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/backgrounders/implementation.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="../backgrounders.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../backgrounders.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="relative_error.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_backgrounders_implementation">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="math_toolkit.backgrounders.implementation"></a><a class="link" href="implementation.html" title="Additional Implementation Notes">Additional
       Implementation Notes</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/backgrounders/lanczos.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/backgrounders/lanczos.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/backgrounders/lanczos.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="relative_error.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../backgrounders.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="remez.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_backgrounders_lanczos">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="math_toolkit.backgrounders.lanczos"></a><a class="link" href="lanczos.html" title="The Lanczos Approximation">The Lanczos Approximation</a>
 </h3></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/backgrounders/refs.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/backgrounders/refs.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/backgrounders/refs.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="remez.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../backgrounders.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../status.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_backgrounders_refs">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="math_toolkit.backgrounders.refs"></a><a class="link" href="refs.html" title="References">References</a>
 </h3></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/backgrounders/relative_error.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/backgrounders/relative_error.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/backgrounders/relative_error.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="implementation.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../backgrounders.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="lanczos.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_backgrounders_relative_error">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="math_toolkit.backgrounders.relative_error"></a><a class="link" href="relative_error.html" title="Relative Error">Relative Error</a>
 </h3></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/backgrounders/remez.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/backgrounders/remez.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/backgrounders/remez.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="lanczos.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../backgrounders.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="refs.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_backgrounders_remez">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="math_toolkit.backgrounders.remez"></a><a class="link" href="remez.html" title="The Remez Method">The Remez Method</a>
 </h3></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="main_overview/contact.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="dist/stat_tut.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
 <a name="math_toolkit.dist"></a><a class="link" href="dist.html" title="Statistical Distributions and Functions">Statistical Distributions and Functions</a>
 </h2></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="stat_tut/dist_params.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../dist.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="dist_ref/nmp.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_dist_ref">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="math_toolkit.dist.dist_ref"></a><a class="link" href="dist_ref.html" title="Statistical Distributions Reference">Statistical Distributions
       Reference</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dist_algorithms.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dist_algorithms.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dist_algorithms.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="dists/weibull_dist.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../dist_ref.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../future.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_dist_ref_dist_algorithms">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.dist.dist_ref.dist_algorithms"></a><a class="link" href="dist_algorithms.html" title="Distribution Algorithms">Distribution
         Algorithms</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="nmp.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../dist_ref.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="dists/bernoulli_dist.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_dist_ref_dists">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.dist.dist_ref.dists"></a><a class="link" href="dists.html" title="Distributions">Distributions</a>
 </h4></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/bernoulli_dist.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/bernoulli_dist.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/bernoulli_dist.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="../dists.html"><img src="../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="beta_dist.html"><img src="../../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_dist_ref_dists_bernoulli_dist">
 <div class="titlepage"><div><div><h5 class="title">
 <a name="math_toolkit.dist.dist_ref.dists.bernoulli_dist"></a><a class="link" href="bernoulli_dist.html" title="Bernoulli Distribution">Bernoulli
           Distribution</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/beta_dist.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/beta_dist.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/beta_dist.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="bernoulli_dist.html"><img src="../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="binomial_dist.html"><img src="../../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_dist_ref_dists_beta_dist">
 <div class="titlepage"><div><div><h5 class="title">
 <a name="math_toolkit.dist.dist_ref.dists.beta_dist"></a><a class="link" href="beta_dist.html" title="Beta Distribution">Beta
           Distribution</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/binomial_dist.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/binomial_dist.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/binomial_dist.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="beta_dist.html"><img src="../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="cauchy_dist.html"><img src="../../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_dist_ref_dists_binomial_dist">
 <div class="titlepage"><div><div><h5 class="title">
 <a name="math_toolkit.dist.dist_ref.dists.binomial_dist"></a><a class="link" href="binomial_dist.html" title="Binomial Distribution">Binomial
           Distribution</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/cauchy_dist.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/cauchy_dist.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/cauchy_dist.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="binomial_dist.html"><img src="../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="chi_squared_dist.html"><img src="../../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_dist_ref_dists_cauchy_dist">
 <div class="titlepage"><div><div><h5 class="title">
 <a name="math_toolkit.dist.dist_ref.dists.cauchy_dist"></a><a class="link" href="cauchy_dist.html" title="Cauchy-Lorentz Distribution">Cauchy-Lorentz
           Distribution</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/chi_squared_dist.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/chi_squared_dist.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/chi_squared_dist.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="cauchy_dist.html"><img src="../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="exp_dist.html"><img src="../../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_dist_ref_dists_chi_squared_dist">
 <div class="titlepage"><div><div><h5 class="title">
 <a name="math_toolkit.dist.dist_ref.dists.chi_squared_dist"></a><a class="link" href="chi_squared_dist.html" title="Chi Squared Distribution">Chi
           Squared Distribution</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/exp_dist.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/exp_dist.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/exp_dist.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="chi_squared_dist.html"><img src="../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="extreme_dist.html"><img src="../../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_dist_ref_dists_exp_dist">
 <div class="titlepage"><div><div><h5 class="title">
 <a name="math_toolkit.dist.dist_ref.dists.exp_dist"></a><a class="link" href="exp_dist.html" title="Exponential Distribution">Exponential
           Distribution</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/extreme_dist.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/extreme_dist.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/extreme_dist.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="exp_dist.html"><img src="../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="f_dist.html"><img src="../../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_dist_ref_dists_extreme_dist">
 <div class="titlepage"><div><div><h5 class="title">
 <a name="math_toolkit.dist.dist_ref.dists.extreme_dist"></a><a class="link" href="extreme_dist.html" title="Extreme Value Distribution">Extreme
           Value Distribution</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/f_dist.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/f_dist.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/f_dist.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="extreme_dist.html"><img src="../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="gamma_dist.html"><img src="../../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_dist_ref_dists_f_dist">
 <div class="titlepage"><div><div><h5 class="title">
 <a name="math_toolkit.dist.dist_ref.dists.f_dist"></a><a class="link" href="f_dist.html" title="F Distribution">F Distribution</a>
 </h5></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/gamma_dist.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/gamma_dist.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/gamma_dist.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="f_dist.html"><img src="../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="geometric_dist.html"><img src="../../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_dist_ref_dists_gamma_dist">
 <div class="titlepage"><div><div><h5 class="title">
 <a name="math_toolkit.dist.dist_ref.dists.gamma_dist"></a><a class="link" href="gamma_dist.html" title="Gamma (and Erlang) Distribution">Gamma
           (and Erlang) Distribution</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/geometric_dist.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/geometric_dist.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/geometric_dist.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="gamma_dist.html"><img src="../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="hypergeometric_dist.html"><img src="../../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_dist_ref_dists_geometric_dist">
 <div class="titlepage"><div><div><h5 class="title">
 <a name="math_toolkit.dist.dist_ref.dists.geometric_dist"></a><a class="link" href="geometric_dist.html" title="Geometric Distribution">Geometric
           Distribution</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/hypergeometric_dist.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/hypergeometric_dist.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/hypergeometric_dist.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="geometric_dist.html"><img src="../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="inverse_chi_squared_dist.html"><img src="../../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_dist_ref_dists_hypergeometric_dist">
 <div class="titlepage"><div><div><h5 class="title">
 <a name="math_toolkit.dist.dist_ref.dists.hypergeometric_dist"></a><a class="link" href="hypergeometric_dist.html" title="Hypergeometric Distribution">Hypergeometric
           Distribution</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_chi_squared_dist.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_chi_squared_dist.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_chi_squared_dist.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="hypergeometric_dist.html"><img src="../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="inverse_gamma_dist.html"><img src="../../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_dist_ref_dists_inverse_chi_squared_dist">
 <div class="titlepage"><div><div><h5 class="title">
 <a name="math_toolkit.dist.dist_ref.dists.inverse_chi_squared_dist"></a><a class="link" href="inverse_chi_squared_dist.html" title="Inverse Chi Squared Distribution">Inverse
           Chi Squared Distribution</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gamma_dist.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gamma_dist.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gamma_dist.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="inverse_chi_squared_dist.html"><img src="../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="inverse_gaussian_dist.html"><img src="../../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_dist_ref_dists_inverse_gamma_dist">
 <div class="titlepage"><div><div><h5 class="title">
 <a name="math_toolkit.dist.dist_ref.dists.inverse_gamma_dist"></a><a class="link" href="inverse_gamma_dist.html" title="Inverse Gamma Distribution">Inverse
           Gamma Distribution</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gaussian_dist.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gaussian_dist.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/inverse_gaussian_dist.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="inverse_gamma_dist.html"><img src="../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="laplace_dist.html"><img src="../../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_dist_ref_dists_inverse_gaussian_dist">
 <div class="titlepage"><div><div><h5 class="title">
 <a name="math_toolkit.dist.dist_ref.dists.inverse_gaussian_dist"></a><a class="link" href="inverse_gaussian_dist.html" title="Inverse Gaussian (or Inverse Normal) Distribution">Inverse
           Gaussian (or Inverse Normal) Distribution</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/laplace_dist.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/laplace_dist.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/laplace_dist.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="inverse_gaussian_dist.html"><img src="../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="logistic_dist.html"><img src="../../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_dist_ref_dists_laplace_dist">
 <div class="titlepage"><div><div><h5 class="title">
 <a name="math_toolkit.dist.dist_ref.dists.laplace_dist"></a><a class="link" href="laplace_dist.html" title="Laplace Distribution">Laplace
           Distribution</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/logistic_dist.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/logistic_dist.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/logistic_dist.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="laplace_dist.html"><img src="../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="lognormal_dist.html"><img src="../../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_dist_ref_dists_logistic_dist">
 <div class="titlepage"><div><div><h5 class="title">
 <a name="math_toolkit.dist.dist_ref.dists.logistic_dist"></a><a class="link" href="logistic_dist.html" title="Logistic Distribution">Logistic
           Distribution</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/lognormal_dist.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/lognormal_dist.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/lognormal_dist.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="logistic_dist.html"><img src="../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="negative_binomial_dist.html"><img src="../../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_dist_ref_dists_lognormal_dist">
 <div class="titlepage"><div><div><h5 class="title">
 <a name="math_toolkit.dist.dist_ref.dists.lognormal_dist"></a><a class="link" href="lognormal_dist.html" title="Log Normal Distribution">Log
           Normal Distribution</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_beta_dist.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_beta_dist.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_beta_dist.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="negative_binomial_dist.html"><img src="../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="nc_chi_squared_dist.html"><img src="../../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_dist_ref_dists_nc_beta_dist">
 <div class="titlepage"><div><div><h5 class="title">
 <a name="math_toolkit.dist.dist_ref.dists.nc_beta_dist"></a><a class="link" href="nc_beta_dist.html" title="Noncentral Beta Distribution">Noncentral
           Beta Distribution</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_chi_squared_dist.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_chi_squared_dist.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_chi_squared_dist.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="nc_beta_dist.html"><img src="../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="nc_f_dist.html"><img src="../../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_dist_ref_dists_nc_chi_squared_dist">
 <div class="titlepage"><div><div><h5 class="title">
 <a name="math_toolkit.dist.dist_ref.dists.nc_chi_squared_dist"></a><a class="link" href="nc_chi_squared_dist.html" title="Noncentral Chi-Squared Distribution">Noncentral
           Chi-Squared Distribution</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_f_dist.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_f_dist.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_f_dist.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="nc_chi_squared_dist.html"><img src="../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="nc_t_dist.html"><img src="../../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_dist_ref_dists_nc_f_dist">
 <div class="titlepage"><div><div><h5 class="title">
 <a name="math_toolkit.dist.dist_ref.dists.nc_f_dist"></a><a class="link" href="nc_f_dist.html" title="Noncentral F Distribution">Noncentral
           F Distribution</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_t_dist.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_t_dist.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/nc_t_dist.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="nc_f_dist.html"><img src="../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="normal_dist.html"><img src="../../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_dist_ref_dists_nc_t_dist">
 <div class="titlepage"><div><div><h5 class="title">
 <a name="math_toolkit.dist.dist_ref.dists.nc_t_dist"></a><a class="link" href="nc_t_dist.html" title="Noncentral T Distribution">Noncentral
           T Distribution</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/negative_binomial_dist.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/negative_binomial_dist.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/negative_binomial_dist.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="lognormal_dist.html"><img src="../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="nc_beta_dist.html"><img src="../../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_dist_ref_dists_negative_binomial_dist">
 <div class="titlepage"><div><div><h5 class="title">
 <a name="math_toolkit.dist.dist_ref.dists.negative_binomial_dist"></a><a class="link" href="negative_binomial_dist.html" title="Negative Binomial Distribution">Negative
           Binomial Distribution</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/normal_dist.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/normal_dist.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/normal_dist.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="nc_t_dist.html"><img src="../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="pareto.html"><img src="../../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_dist_ref_dists_normal_dist">
 <div class="titlepage"><div><div><h5 class="title">
 <a name="math_toolkit.dist.dist_ref.dists.normal_dist"></a><a class="link" href="normal_dist.html" title="Normal (Gaussian) Distribution">Normal
           (Gaussian) Distribution</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/pareto.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/pareto.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/pareto.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="normal_dist.html"><img src="../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="poisson_dist.html"><img src="../../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_dist_ref_dists_pareto">
 <div class="titlepage"><div><div><h5 class="title">
 <a name="math_toolkit.dist.dist_ref.dists.pareto"></a><a class="link" href="pareto.html" title="Pareto Distribution">Pareto Distribution</a>
 </h5></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/poisson_dist.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/poisson_dist.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/poisson_dist.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="pareto.html"><img src="../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="rayleigh.html"><img src="../../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_dist_ref_dists_poisson_dist">
 <div class="titlepage"><div><div><h5 class="title">
 <a name="math_toolkit.dist.dist_ref.dists.poisson_dist"></a><a class="link" href="poisson_dist.html" title="Poisson Distribution">Poisson
           Distribution</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/rayleigh.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/rayleigh.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/rayleigh.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="poisson_dist.html"><img src="../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="students_t_dist.html"><img src="../../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_dist_ref_dists_rayleigh">
 <div class="titlepage"><div><div><h5 class="title">
 <a name="math_toolkit.dist.dist_ref.dists.rayleigh"></a><a class="link" href="rayleigh.html" title="Rayleigh Distribution">Rayleigh
           Distribution</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/students_t_dist.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/students_t_dist.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/students_t_dist.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="rayleigh.html"><img src="../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="triangular_dist.html"><img src="../../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_dist_ref_dists_students_t_dist">
 <div class="titlepage"><div><div><h5 class="title">
 <a name="math_toolkit.dist.dist_ref.dists.students_t_dist"></a><a class="link" href="students_t_dist.html" title="Students t Distribution">Students
           t Distribution</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/triangular_dist.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/triangular_dist.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/triangular_dist.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="students_t_dist.html"><img src="../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="uniform_dist.html"><img src="../../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_dist_ref_dists_triangular_dist">
 <div class="titlepage"><div><div><h5 class="title">
 <a name="math_toolkit.dist.dist_ref.dists.triangular_dist"></a><a class="link" href="triangular_dist.html" title="Triangular Distribution">Triangular
           Distribution</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/uniform_dist.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/uniform_dist.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/uniform_dist.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="triangular_dist.html"><img src="../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="weibull_dist.html"><img src="../../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_dist_ref_dists_uniform_dist">
 <div class="titlepage"><div><div><h5 class="title">
 <a name="math_toolkit.dist.dist_ref.dists.uniform_dist"></a><a class="link" href="uniform_dist.html" title="Uniform Distribution">Uniform
           Distribution</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/weibull_dist.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/weibull_dist.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/dists/weibull_dist.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="uniform_dist.html"><img src="../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.html"><img src="../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../dist_algorithms.html"><img src="../../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_dist_ref_dists_weibull_dist">
 <div class="titlepage"><div><div><h5 class="title">
 <a name="math_toolkit.dist.dist_ref.dists.weibull_dist"></a><a class="link" href="weibull_dist.html" title="Weibull Distribution">Weibull
           Distribution</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/nmp.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/nmp.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/dist_ref/nmp.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="../dist_ref.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../dist_ref.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="dists.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_dist_ref_nmp">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.dist.dist_ref.nmp"></a><a class="link" href="nmp.html" title="Non-Member Properties">Non-Member Properties</a>
 </h4></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/future.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/future.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/future.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="dist_ref/dist_algorithms.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../dist.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../special.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_future">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="math_toolkit.dist.future"></a><a class="link" href="future.html" title="Extras/Future Directions">Extras/Future Directions</a>
 </h3></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="../dist.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../dist.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="stat_tut/overview.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_stat_tut">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="math_toolkit.dist.stat_tut"></a><a class="link" href="stat_tut.html" title="Statistical Distributions Tutorial">Statistical Distributions
       Tutorial</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/dist_params.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/dist_params.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/dist_params.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="variates.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../stat_tut.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../dist_ref.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_stat_tut_dist_params">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.dist.stat_tut.dist_params"></a><a class="link" href="dist_params.html" title="Discrete Probability Distributions">Discrete Probability
         Distributions</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/overview.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/overview.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/overview.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="../stat_tut.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../stat_tut.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="overview/headers.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_stat_tut_overview">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.dist.stat_tut.overview"></a><a class="link" href="overview.html" title="Overview of Distributions">Overview of Distributions</a>
 </h4></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/overview/complements.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/overview/complements.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/overview/complements.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="generic.html"><img src="../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../overview.html"><img src="../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="parameters.html"><img src="../../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_stat_tut_overview_complements">
 <div class="titlepage"><div><div><h5 class="title">
 <a name="math_toolkit.dist.stat_tut.overview.complements"></a><a name="complements"></a><a class="link" href="complements.html" title="Complements are supported too - and when to use them">Complements
           are supported too - and when to use them</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/overview/generic.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/overview/generic.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/overview/generic.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="objects.html"><img src="../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../overview.html"><img src="../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="complements.html"><img src="../../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_stat_tut_overview_generic">
 <div class="titlepage"><div><div><h5 class="title">
 <a name="math_toolkit.dist.stat_tut.overview.generic"></a><a class="link" href="generic.html" title="Generic operations common to all distributions are non-member functions">Generic
           operations common to all distributions are non-member functions</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/overview/headers.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/overview/headers.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/overview/headers.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="../overview.html"><img src="../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../overview.html"><img src="../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="objects.html"><img src="../../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_stat_tut_overview_headers">
 <div class="titlepage"><div><div><h5 class="title">
 <a name="math_toolkit.dist.stat_tut.overview.headers"></a><a class="link" href="headers.html" title="Headers and Namespaces">Headers
           and Namespaces</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/overview/objects.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/overview/objects.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/overview/objects.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="headers.html"><img src="../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../overview.html"><img src="../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="generic.html"><img src="../../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_stat_tut_overview_objects">
 <div class="titlepage"><div><div><h5 class="title">
 <a name="math_toolkit.dist.stat_tut.overview.objects"></a><a class="link" href="objects.html" title="Distributions are Objects">Distributions
           are Objects</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/overview/parameters.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/overview/parameters.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/overview/parameters.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="complements.html"><img src="../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../overview.html"><img src="../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="summary.html"><img src="../../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_stat_tut_overview_parameters">
 <div class="titlepage"><div><div><h5 class="title">
 <a name="math_toolkit.dist.stat_tut.overview.parameters"></a><a class="link" href="parameters.html" title="Parameters can be calculated">Parameters
           can be calculated</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/overview/summary.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/overview/summary.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/overview/summary.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="parameters.html"><img src="../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../overview.html"><img src="../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../weg.html"><img src="../../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_stat_tut_overview_summary">
 <div class="titlepage"><div><div><h5 class="title">
 <a name="math_toolkit.dist.stat_tut.overview.summary"></a><a class="link" href="summary.html" title="Summary">Summary</a>
 </h5></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/variates.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/variates.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/variates.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="weg/c_sharp.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../stat_tut.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="dist_params.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_stat_tut_variates">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.dist.stat_tut.variates"></a><a class="link" href="variates.html" title="Random Variates and Distribution Parameters">Random Variates
         and Distribution Parameters</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="overview/summary.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../stat_tut.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="weg/dist_construct_eg.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_stat_tut_weg">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.dist.stat_tut.weg"></a><a class="link" href="weg.html" title="Worked Examples">Worked Examples</a>
 </h4></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="f_eg.html"><img src="../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../weg.html"><img src="../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="binom_eg/binomial_coinflip_example.html"><img src="../../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_stat_tut_weg_binom_eg">
 <div class="titlepage"><div><div><h5 class="title">
 <a name="math_toolkit.dist.stat_tut.weg.binom_eg"></a><a class="link" href="binom_eg.html" title="Binomial Distribution Examples">Binomial
           Distribution Examples</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binom_conf.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binom_conf.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binom_conf.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="binomial_quiz_example.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../binom_eg.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="binom_size_eg.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_stat_tut_weg_binom_eg_binom_conf">
 <div class="titlepage"><div><div><h6 class="title">
 <a name="math_toolkit.dist.stat_tut.weg.binom_eg.binom_conf"></a><a class="link" href="binom_conf.html" title="Calculating Confidence Limits on the Frequency of Occurrence for a Binomial Distribution">Calculating
             Confidence Limits on the Frequency of Occurrence for a Binomial Distribution</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binom_size_eg.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binom_size_eg.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binom_size_eg.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="binom_conf.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../binom_eg.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../geometric_eg.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_stat_tut_weg_binom_eg_binom_size_eg">
 <div class="titlepage"><div><div><h6 class="title">
 <a name="math_toolkit.dist.stat_tut.weg.binom_eg.binom_size_eg"></a><a class="link" href="binom_size_eg.html" title="Estimating Sample Sizes for a Binomial Distribution.">Estimating
             Sample Sizes for a Binomial Distribution.</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binomial_coinflip_example.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binomial_coinflip_example.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binomial_coinflip_example.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="../binom_eg.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../binom_eg.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="binomial_quiz_example.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_stat_tut_weg_binom_eg_binomial_coinflip_example">
 <div class="titlepage"><div><div><h6 class="title">
 <a name="math_toolkit.dist.stat_tut.weg.binom_eg.binomial_coinflip_example"></a><a class="link" href="binomial_coinflip_example.html" title="Binomial Coin-Flipping Example">Binomial
             Coin-Flipping Example</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binomial_quiz_example.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binomial_quiz_example.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/binom_eg/binomial_quiz_example.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="binomial_coinflip_example.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../binom_eg.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="binom_conf.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_stat_tut_weg_binom_eg_binomial_quiz_example">
 <div class="titlepage"><div><div><h6 class="title">
 <a name="math_toolkit.dist.stat_tut.weg.binom_eg.binomial_quiz_example"></a><a class="link" href="binomial_quiz_example.html" title="Binomial Quiz Example">Binomial
             Quiz Example</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/c_sharp.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/c_sharp.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/c_sharp.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="nag_library.html"><img src="../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../weg.html"><img src="../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../variates.html"><img src="../../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_stat_tut_weg_c_sharp">
 <div class="titlepage"><div><div><h5 class="title">
 <a name="math_toolkit.dist.stat_tut.weg.c_sharp"></a><a class="link" href="c_sharp.html" title="Using the Distributions from Within C#">Using the
           Distributions from Within C#</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="st_eg/paired_st.html"><img src="../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../weg.html"><img src="../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="cs_eg/chi_sq_intervals.html"><img src="../../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_stat_tut_weg_cs_eg">
 <div class="titlepage"><div><div><h5 class="title">
 <a name="math_toolkit.dist.stat_tut.weg.cs_eg"></a><a class="link" href="cs_eg.html" title="Chi Squared Distribution Examples">Chi Squared
           Distribution Examples</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_intervals.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_intervals.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_intervals.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="../cs_eg.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../cs_eg.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="chi_sq_test.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_stat_tut_weg_cs_eg_chi_sq_intervals">
 <div class="titlepage"><div><div><h6 class="title">
 <a name="math_toolkit.dist.stat_tut.weg.cs_eg.chi_sq_intervals"></a><a class="link" href="chi_sq_intervals.html" title="Confidence Intervals on the Standard Deviation">Confidence
             Intervals on the Standard Deviation</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_size.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_size.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_size.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="chi_sq_test.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../cs_eg.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../f_eg.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_stat_tut_weg_cs_eg_chi_sq_size">
 <div class="titlepage"><div><div><h6 class="title">
 <a name="math_toolkit.dist.stat_tut.weg.cs_eg.chi_sq_size"></a><a class="link" href="chi_sq_size.html" title="Estimating the Required Sample Sizes for a Chi-Square Test for the Standard Deviation">Estimating
             the Required Sample Sizes for a Chi-Square Test for the Standard Deviation</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_test.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_test.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/cs_eg/chi_sq_test.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="chi_sq_intervals.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../cs_eg.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="chi_sq_size.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_stat_tut_weg_cs_eg_chi_sq_test">
 <div class="titlepage"><div><div><h6 class="title">
 <a name="math_toolkit.dist.stat_tut.weg.cs_eg.chi_sq_test"></a><a class="link" href="chi_sq_test.html" title="Chi-Square Test for the Standard Deviation">Chi-Square
             Test for the Standard Deviation</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/dist_construct_eg.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/dist_construct_eg.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/dist_construct_eg.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="../weg.html"><img src="../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../weg.html"><img src="../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="st_eg.html"><img src="../../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_stat_tut_weg_dist_construct_eg">
 <div class="titlepage"><div><div><h5 class="title">
 <a name="math_toolkit.dist.stat_tut.weg.dist_construct_eg"></a><a class="link" href="dist_construct_eg.html" title="Distribution Construction Example">Distribution
           Construction Example</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/error_eg.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/error_eg.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/error_eg.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="nccs_eg/nccs_power_eg.html"><img src="../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../weg.html"><img src="../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="find_eg.html"><img src="../../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_stat_tut_weg_error_eg">
 <div class="titlepage"><div><div><h5 class="title">
 <a name="math_toolkit.dist.stat_tut.weg.error_eg"></a><a class="link" href="error_eg.html" title="Error Handling Example">Error Handling
           Example</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/f_eg.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/f_eg.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/f_eg.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="cs_eg/chi_sq_size.html"><img src="../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../weg.html"><img src="../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="binom_eg.html"><img src="../../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_stat_tut_weg_f_eg">
 <div class="titlepage"><div><div><h5 class="title">
 <a name="math_toolkit.dist.stat_tut.weg.f_eg"></a><a class="link" href="f_eg.html" title="F Distribution Examples">F Distribution
           Examples</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="error_eg.html"><img src="../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../weg.html"><img src="../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="find_eg/find_location_eg.html"><img src="../../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_stat_tut_weg_find_eg">
 <div class="titlepage"><div><div><h5 class="title">
 <a name="math_toolkit.dist.stat_tut.weg.find_eg"></a><a class="link" href="find_eg.html" title="Find Location and Scale Examples">Find Location
           and Scale Examples</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_location_eg.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_location_eg.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_location_eg.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="../find_eg.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../find_eg.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="find_scale_eg.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_stat_tut_weg_find_eg_find_location_eg">
 <div class="titlepage"><div><div><h6 class="title">
 <a name="math_toolkit.dist.stat_tut.weg.find_eg.find_location_eg"></a><a class="link" href="find_location_eg.html" title="Find Location (Mean) Example">Find
             Location (Mean) Example</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_mean_and_sd_eg.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_mean_and_sd_eg.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_mean_and_sd_eg.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="find_scale_eg.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../find_eg.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../nag_library.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_stat_tut_weg_find_eg_find_mean_and_sd_eg">
 <div class="titlepage"><div><div><h6 class="title">
 <a name="math_toolkit.dist.stat_tut.weg.find_eg.find_mean_and_sd_eg"></a><a class="link" href="find_mean_and_sd_eg.html" title="Find mean and standard deviation example">Find
             mean and standard deviation example</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_scale_eg.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_scale_eg.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/find_eg/find_scale_eg.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="find_location_eg.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../find_eg.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="find_mean_and_sd_eg.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_stat_tut_weg_find_eg_find_scale_eg">
 <div class="titlepage"><div><div><h6 class="title">
 <a name="math_toolkit.dist.stat_tut.weg.find_eg.find_scale_eg"></a><a class="link" href="find_scale_eg.html" title="Find Scale (Standard Deviation) Example">Find
             Scale (Standard Deviation) Example</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/geometric_eg.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/geometric_eg.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/geometric_eg.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="binom_eg/binom_size_eg.html"><img src="../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../weg.html"><img src="../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="neg_binom_eg.html"><img src="../../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_stat_tut_weg_geometric_eg">
 <div class="titlepage"><div><div><h5 class="title">
 <a name="math_toolkit.dist.stat_tut.weg.geometric_eg"></a><a class="link" href="geometric_eg.html" title="Geometric Distribution Examples">Geometric
           Distribution Examples</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/inverse_chi_squared_eg.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/inverse_chi_squared_eg.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/inverse_chi_squared_eg.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="normal_example/normal_misc.html"><img src="../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../weg.html"><img src="../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="nccs_eg.html"><img src="../../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_stat_tut_weg_inverse_chi_squared_eg">
 <div class="titlepage"><div><div><h5 class="title">
 <a name="math_toolkit.dist.stat_tut.weg.inverse_chi_squared_eg"></a><a class="link" href="inverse_chi_squared_eg.html" title="Inverse Chi-Squared Distribution Bayes Example">Inverse
           Chi-Squared Distribution Bayes Example</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/nag_library.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/nag_library.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/nag_library.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="find_eg/find_mean_and_sd_eg.html"><img src="../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../weg.html"><img src="../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="c_sharp.html"><img src="../../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_stat_tut_weg_nag_library">
 <div class="titlepage"><div><div><h5 class="title">
 <a name="math_toolkit.dist.stat_tut.weg.nag_library"></a><a class="link" href="nag_library.html" title="Comparison with C, R, FORTRAN-style Free Functions">Comparison
           with C, R, FORTRAN-style Free Functions</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/nccs_eg.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/nccs_eg.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/nccs_eg.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="inverse_chi_squared_eg.html"><img src="../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../weg.html"><img src="../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="nccs_eg/nccs_power_eg.html"><img src="../../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_stat_tut_weg_nccs_eg">
 <div class="titlepage"><div><div><h5 class="title">
 <a name="math_toolkit.dist.stat_tut.weg.nccs_eg"></a><a class="link" href="nccs_eg.html" title="Non Central Chi Squared Example">Non Central
           Chi Squared Example</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/nccs_eg/nccs_power_eg.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/nccs_eg/nccs_power_eg.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/nccs_eg/nccs_power_eg.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="../nccs_eg.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../nccs_eg.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../error_eg.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_stat_tut_weg_nccs_eg_nccs_power_eg">
 <div class="titlepage"><div><div><h6 class="title">
 <a name="math_toolkit.dist.stat_tut.weg.nccs_eg.nccs_power_eg"></a><a class="link" href="nccs_power_eg.html" title="Tables of the power function of the chi2 test.">Tables
             of the power function of the chi<sup>2</sup> test.</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/neg_binom_eg.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/neg_binom_eg.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/neg_binom_eg.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="geometric_eg.html"><img src="../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../weg.html"><img src="../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="neg_binom_eg/neg_binom_conf.html"><img src="../../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_stat_tut_weg_neg_binom_eg">
 <div class="titlepage"><div><div><h5 class="title">
 <a name="math_toolkit.dist.stat_tut.weg.neg_binom_eg"></a><a class="link" href="neg_binom_eg.html" title="Negative Binomial Distribution Examples">Negative
           Binomial Distribution Examples</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/neg_binom_eg/neg_binom_conf.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/neg_binom_eg/neg_binom_conf.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/neg_binom_eg/neg_binom_conf.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="../neg_binom_eg.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../neg_binom_eg.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="neg_binom_size_eg.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_stat_tut_weg_neg_binom_eg_neg_binom_conf">
 <div class="titlepage"><div><div><h6 class="title">
 <a name="math_toolkit.dist.stat_tut.weg.neg_binom_eg.neg_binom_conf"></a><a class="link" href="neg_binom_conf.html" title="Calculating Confidence Limits on the Frequency of Occurrence for the Negative Binomial Distribution">Calculating
             Confidence Limits on the Frequency of Occurrence for the Negative Binomial

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/neg_binom_eg/neg_binom_size_eg.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/neg_binom_eg/neg_binom_size_eg.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/neg_binom_eg/neg_binom_size_eg.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="neg_binom_conf.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../neg_binom_eg.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="negative_binomial_example1.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_stat_tut_weg_neg_binom_eg_neg_binom_size_eg">
 <div class="titlepage"><div><div><h6 class="title">
 <a name="math_toolkit.dist.stat_tut.weg.neg_binom_eg.neg_binom_size_eg"></a><a class="link" href="neg_binom_size_eg.html" title="Estimating Sample Sizes for the Negative Binomial.">Estimating
             Sample Sizes for the Negative Binomial.</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/neg_binom_eg/negative_binomial_example1.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/neg_binom_eg/negative_binomial_example1.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/neg_binom_eg/negative_binomial_example1.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="neg_binom_size_eg.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../neg_binom_eg.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="negative_binomial_example2.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_stat_tut_weg_neg_binom_eg_negative_binomial_example1">
 <div class="titlepage"><div><div><h6 class="title">
 <a name="math_toolkit.dist.stat_tut.weg.neg_binom_eg.negative_binomial_example1"></a><a class="link" href="negative_binomial_example1.html" title="Negative Binomial Sales Quota Example.">Negative
             Binomial Sales Quota Example.</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/neg_binom_eg/negative_binomial_example2.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/neg_binom_eg/negative_binomial_example2.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/neg_binom_eg/negative_binomial_example2.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="negative_binomial_example1.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../neg_binom_eg.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../normal_example.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_stat_tut_weg_neg_binom_eg_negative_binomial_example2">
 <div class="titlepage"><div><div><h6 class="title">
 <a name="math_toolkit.dist.stat_tut.weg.neg_binom_eg.negative_binomial_example2"></a><a class="link" href="negative_binomial_example2.html" title="Negative Binomial Table Printing Example.">Negative
             Binomial Table Printing Example.</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/normal_example.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/normal_example.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/normal_example.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="neg_binom_eg/negative_binomial_example2.html"><img src="../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../weg.html"><img src="../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="normal_example/normal_misc.html"><img src="../../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_stat_tut_weg_normal_example">
 <div class="titlepage"><div><div><h5 class="title">
 <a name="math_toolkit.dist.stat_tut.weg.normal_example"></a><a class="link" href="normal_example.html" title="Normal Distribution Examples">Normal
           Distribution Examples</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/normal_example/normal_misc.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/normal_example/normal_misc.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/normal_example/normal_misc.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="../normal_example.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../normal_example.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../inverse_chi_squared_eg.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_stat_tut_weg_normal_example_normal_misc">
 <div class="titlepage"><div><div><h6 class="title">
 <a name="math_toolkit.dist.stat_tut.weg.normal_example.normal_misc"></a><a class="link" href="normal_misc.html" title="Some Miscellaneous Examples of the Normal (Gaussian) Distribution">Some
             Miscellaneous Examples of the Normal (Gaussian) Distribution</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/st_eg.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/st_eg.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/st_eg.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="dist_construct_eg.html"><img src="../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../weg.html"><img src="../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="st_eg/tut_mean_intervals.html"><img src="../../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_stat_tut_weg_st_eg">
 <div class="titlepage"><div><div><h5 class="title">
 <a name="math_toolkit.dist.stat_tut.weg.st_eg"></a><a class="link" href="st_eg.html" title="Student's t Distribution Examples">Student's t
           Distribution Examples</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/st_eg/paired_st.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/st_eg/paired_st.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/st_eg/paired_st.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="two_sample_students_t.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../st_eg.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../cs_eg.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_stat_tut_weg_st_eg_paired_st">
 <div class="titlepage"><div><div><h6 class="title">
 <a name="math_toolkit.dist.stat_tut.weg.st_eg.paired_st"></a><a class="link" href="paired_st.html" title="Comparing two paired samples with the Student's t distribution">Comparing
             two paired samples with the Student's t distribution</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/st_eg/tut_mean_intervals.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/st_eg/tut_mean_intervals.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/st_eg/tut_mean_intervals.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="../st_eg.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../st_eg.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="tut_mean_test.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_stat_tut_weg_st_eg_tut_mean_intervals">
 <div class="titlepage"><div><div><h6 class="title">
 <a name="math_toolkit.dist.stat_tut.weg.st_eg.tut_mean_intervals"></a><a class="link" href="tut_mean_intervals.html" title="Calculating confidence intervals on the mean with the Students-t distribution">Calculating
             confidence intervals on the mean with the Students-t distribution</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/st_eg/tut_mean_size.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/st_eg/tut_mean_size.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/st_eg/tut_mean_size.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="tut_mean_test.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../st_eg.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="two_sample_students_t.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_stat_tut_weg_st_eg_tut_mean_size">
 <div class="titlepage"><div><div><h6 class="title">
 <a name="math_toolkit.dist.stat_tut.weg.st_eg.tut_mean_size"></a><a class="link" href="tut_mean_size.html" title="Estimating how large a sample size would have to become in order to give a significant Students-t test result with a single sample test">Estimating
             how large a sample size would have to become in order to give a significant

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/st_eg/tut_mean_test.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/st_eg/tut_mean_test.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/st_eg/tut_mean_test.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="tut_mean_intervals.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../st_eg.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="tut_mean_size.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_stat_tut_weg_st_eg_tut_mean_test">
 <div class="titlepage"><div><div><h6 class="title">
 <a name="math_toolkit.dist.stat_tut.weg.st_eg.tut_mean_test"></a><a class="link" href="tut_mean_test.html" title='Testing a sample mean for difference from a "true" mean'>Testing
             a sample mean for difference from a "true" mean</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/st_eg/two_sample_students_t.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/st_eg/two_sample_students_t.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/dist/stat_tut/weg/st_eg/two_sample_students_t.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="tut_mean_size.html"><img src="../../../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../st_eg.html"><img src="../../../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../../index.html"><img src="../../../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="paired_st.html"><img src="../../../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_dist_stat_tut_weg_st_eg_two_sample_students_t">
 <div class="titlepage"><div><div><h6 class="title">
 <a name="math_toolkit.dist.stat_tut.weg.st_eg.two_sample_students_t"></a><a class="link" href="two_sample_students_t.html" title="Comparing the means of two samples with the Students-t test">Comparing
             the means of two samples with the Students-t test</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/extern_c.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/extern_c.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/extern_c.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="utils/next_float/float_advance.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="extern_c/tr1.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_extern_c">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
 <a name="math_toolkit.extern_c"></a><a class="link" href="extern_c.html" title='TR1 and C99 external "C" Functions'>TR1 and C99 external "C"
     Functions</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/extern_c/c99.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/extern_c/c99.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/extern_c/c99.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="tr1.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../extern_c.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="tr1_ref.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_extern_c_c99">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="math_toolkit.extern_c.c99"></a><a class="link" href="c99.html" title="C99 C Functions">C99 C Functions</a>
 </h3></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/extern_c/tr1.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/extern_c/tr1.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/extern_c/tr1.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="../extern_c.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../extern_c.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="c99.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_extern_c_tr1">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="math_toolkit.extern_c.tr1"></a><a class="link" href="tr1.html" title="C99 and TR1 C Functions Overview">C99 and TR1 C Functions Overview</a>
 </h3></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/extern_c/tr1_ref.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/extern_c/tr1_ref.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/extern_c/tr1_ref.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="c99.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../extern_c.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../toolkit.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_extern_c_tr1_ref">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="math_toolkit.extern_c.tr1_ref"></a><a class="link" href="tr1_ref.html" title="TR1 C Functions Quick Reference">TR1 C Functions Quick
       Reference</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="../index.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="main_overview/intro.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_main_overview">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
 <a name="math_toolkit.main_overview"></a><a class="link" href="main_overview.html" title="Overview">Overview</a>
 </h2></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/building.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/building.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/building.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="perf_over.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../main_overview.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="history1.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_main_overview_building">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="math_toolkit.main_overview.building"></a><a class="link" href="building.html" title="If and How to Build a Boost.Math Library, and its Examples and Tests">If and How to Build
       a Boost.Math Library, and its Examples and Tests</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/compilers_overview.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/compilers_overview.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/compilers_overview.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="error_handling.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../main_overview.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="config_macros.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_main_overview_compilers_overview">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="math_toolkit.main_overview.compilers_overview"></a><a class="link" href="compilers_overview.html" title="Compilers">Compilers</a>
 </h3></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/config_macros.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/config_macros.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/config_macros.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="compilers_overview.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../main_overview.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="pol_overview.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_main_overview_config_macros">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="math_toolkit.main_overview.config_macros"></a><a class="link" href="config_macros.html" title="Configuration Macros">Configuration
       Macros</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/contact.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/contact.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/contact.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="faq.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../main_overview.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../dist.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_main_overview_contact">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="math_toolkit.main_overview.contact"></a><a class="link" href="contact.html" title="Contact Info and Support">Contact Info and
       Support</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/directories.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/directories.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/directories.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="navigation.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../main_overview.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="namespaces.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_main_overview_directories">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="math_toolkit.main_overview.directories"></a><a class="link" href="directories.html" title="Directory and File Structure">Directory and
       File Structure</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/error_handling.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/error_handling.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/error_handling.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="result_type.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../main_overview.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="compilers_overview.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_main_overview_error_handling">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="math_toolkit.main_overview.error_handling"></a><a class="link" href="error_handling.html" title="Error Handling">Error Handling</a>
 </h3></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/faq.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/faq.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/faq.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="tr1.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../main_overview.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="contact.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_main_overview_faq">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="math_toolkit.main_overview.faq"></a><a class="link" href="faq.html" title="Frequently Asked Questions FAQ">Frequently Asked Questions
       FAQ</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/history1.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/history1.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/history1.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,13 +22,57 @@
 <div class="spirit-nav">
 <a accesskey="p" href="building.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../main_overview.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="tr1.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_main_overview_history1">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="math_toolkit.main_overview.history1"></a><a class="link" href="history1.html" title="History and What's New">History and What's
       New</a>
 </h3></div></div></div>
 <h5>
 <a name="math_toolkit.main_overview.history1.h0"></a>
+ <span><a name="math_toolkit.main_overview.history1.boost_1_49"></a></span><a class="link" href="history1.html#math_toolkit.main_overview.history1.boost_1_49">Boost-1.49</a>
+ </h5>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+ Deprecated wrongly named <code class="computeroutput"><span class="identifier">twothirds</span></code>
+ math constant in favour of <code class="computeroutput"><span class="identifier">two_thirds</span></code>
+ (with underscore separator). (issue #6199).
+ </li>
+<li class="listitem">
+ Refactored test data and some special function code to improve support
+ for arbitary precision and/or expression-template-enabled types.
+ </li>
+<li class="listitem">
+ Added new faster zeta function evaluation method.
+ </li>
+</ul></div>
+<p>
+ Fixed issues:
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+ Corrected CDF complement for Laplace distribution (issue #6151).
+ </li>
+<li class="listitem">
+ Corrected branch cuts on the complex inverse trig functions, to handle
+ signed zeros (issue #6171).
+ </li>
+<li class="listitem">
+ Fixed bug in <code class="computeroutput"><span class="identifier">bessel_yn</span></code>
+ which caused incorrect overflow errors to be raised for negative <span class="emphasis"><em>n</em></span>
+ (issue #6367).
+ </li>
+<li class="listitem">
+ Also fixed minor/cosmetic/configuration issues #6120,
+ #6191,
+ #5982,
+ #6130,
+ #6234,
+ #6307,
+ #6192.
+ </li>
+</ul></div>
+<h5>
+<a name="math_toolkit.main_overview.history1.h1"></a>
         <span><a name="math_toolkit.main_overview.history1.boost_1_48"></a></span><a class="link" href="history1.html#math_toolkit.main_overview.history1.boost_1_48">Boost-1.48</a>
       </h5>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
@@ -79,7 +123,7 @@
           </li>
 </ul></div>
 <h5>
-<a name="math_toolkit.main_overview.history1.h1"></a>
+<a name="math_toolkit.main_overview.history1.h2"></a>
         <span><a name="math_toolkit.main_overview.history1.boost_1_47"></a></span><a class="link" href="history1.html#math_toolkit.main_overview.history1.boost_1_47">Boost-1.47</a>
       </h5>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
@@ -96,7 +140,7 @@
           </li>
 </ul></div>
 <h5>
-<a name="math_toolkit.main_overview.history1.h2"></a>
+<a name="math_toolkit.main_overview.history1.h3"></a>
         <span><a name="math_toolkit.main_overview.history1.boost_1_46_1"></a></span><a class="link" href="history1.html#math_toolkit.main_overview.history1.boost_1_46_1">Boost-1.46.1</a>
       </h5>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
@@ -104,7 +148,7 @@
             <a href="https://svn.boost.org/trac/boost/ticket/5095" target="_top">#5113</a>.
           </li></ul></div>
 <h5>
-<a name="math_toolkit.main_overview.history1.h3"></a>
+<a name="math_toolkit.main_overview.history1.h4"></a>
         <span><a name="math_toolkit.main_overview.history1.boost_1_46_0"></a></span><a class="link" href="history1.html#math_toolkit.main_overview.history1.boost_1_46_0">Boost-1.46.0</a>
       </h5>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
@@ -119,7 +163,7 @@
           </li>
 </ul></div>
 <h5>
-<a name="math_toolkit.main_overview.history1.h4"></a>
+<a name="math_toolkit.main_overview.history1.h5"></a>
         <span><a name="math_toolkit.main_overview.history1.boost_1_45_0"></a></span><a class="link" href="history1.html#math_toolkit.main_overview.history1.boost_1_45_0">Boost-1.45.0</a>
       </h5>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
@@ -136,7 +180,7 @@
           </li>
 </ul></div>
 <h5>
-<a name="math_toolkit.main_overview.history1.h5"></a>
+<a name="math_toolkit.main_overview.history1.h6"></a>
         <span><a name="math_toolkit.main_overview.history1.boost_1_44_0"></a></span><a class="link" href="history1.html#math_toolkit.main_overview.history1.boost_1_44_0">Boost-1.44.0</a>
       </h5>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
@@ -150,7 +194,7 @@
           </li>
 </ul></div>
 <h5>
-<a name="math_toolkit.main_overview.history1.h6"></a>
+<a name="math_toolkit.main_overview.history1.h7"></a>
         <span><a name="math_toolkit.main_overview.history1.boost_1_41_0"></a></span><a class="link" href="history1.html#math_toolkit.main_overview.history1.boost_1_41_0">Boost-1.41.0</a>
       </h5>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
@@ -158,7 +202,7 @@
             and its inverse.
           </li></ul></div>
 <h5>
-<a name="math_toolkit.main_overview.history1.h7"></a>
+<a name="math_toolkit.main_overview.history1.h8"></a>
         <span><a name="math_toolkit.main_overview.history1.boost_1_40_0"></a></span><a class="link" href="history1.html#math_toolkit.main_overview.history1.boost_1_40_0">Boost-1.40.0</a>
       </h5>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
@@ -195,7 +239,7 @@
           </li>
 </ul></div>
 <h5>
-<a name="math_toolkit.main_overview.history1.h8"></a>
+<a name="math_toolkit.main_overview.history1.h9"></a>
         <span><a name="math_toolkit.main_overview.history1.boost_1_38_0"></a></span><a class="link" href="history1.html#math_toolkit.main_overview.history1.boost_1_38_0">Boost-1.38.0</a>
       </h5>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
@@ -207,14 +251,14 @@
           </li>
 </ul></div>
 <h5>
-<a name="math_toolkit.main_overview.history1.h9"></a>
+<a name="math_toolkit.main_overview.history1.h10"></a>
         <span><a name="math_toolkit.main_overview.history1.boost_1_37_0"></a></span><a class="link" href="history1.html#math_toolkit.main_overview.history1.boost_1_37_0">Boost-1.37.0</a>
       </h5>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
             Improved accuracy and testing of the inverse hypergeometric functions.
           </li></ul></div>
 <h5>
-<a name="math_toolkit.main_overview.history1.h10"></a>
+<a name="math_toolkit.main_overview.history1.h11"></a>
         <span><a name="math_toolkit.main_overview.history1.boost_1_36_0"></a></span><a class="link" href="history1.html#math_toolkit.main_overview.history1.boost_1_36_0">Boost-1.36.0</a>
       </h5>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
@@ -247,7 +291,7 @@
           </li>
 </ul></div>
 <h5>
-<a name="math_toolkit.main_overview.history1.h11"></a>
+<a name="math_toolkit.main_overview.history1.h12"></a>
         <span><a name="math_toolkit.main_overview.history1.boost_1_35_0__post_review_first_official_release"></a></span><a class="link" href="history1.html#math_toolkit.main_overview.history1.boost_1_35_0__post_review_first_official_release">Boost-1.35.0:
         Post Review First Official Release</a>
       </h5>
@@ -279,7 +323,7 @@
           </li>
 </ul></div>
 <h5>
-<a name="math_toolkit.main_overview.history1.h12"></a>
+<a name="math_toolkit.main_overview.history1.h13"></a>
         <span><a name="math_toolkit.main_overview.history1.milestone_4__second_review_candidate__1st_march_2007_"></a></span><a class="link" href="history1.html#math_toolkit.main_overview.history1.milestone_4__second_review_candidate__1st_march_2007_">Milestone
         4: Second Review Candidate (1st March 2007)</a>
       </h5>
@@ -293,7 +337,7 @@
           </li>
 </ul></div>
 <h5>
-<a name="math_toolkit.main_overview.history1.h13"></a>
+<a name="math_toolkit.main_overview.history1.h14"></a>
         <span><a name="math_toolkit.main_overview.history1.milestone_3__first_review_candidate__31st_dec_2006_"></a></span><a class="link" href="history1.html#math_toolkit.main_overview.history1.milestone_3__first_review_candidate__31st_dec_2006_">Milestone
         3: First Review Candidate (31st Dec 2006)</a>
       </h5>
@@ -321,7 +365,7 @@
           </li>
 </ul></div>
 <h5>
-<a name="math_toolkit.main_overview.history1.h14"></a>
+<a name="math_toolkit.main_overview.history1.h15"></a>
         <span><a name="math_toolkit.main_overview.history1.milestone_2__released_september_10th_2006"></a></span><a class="link" href="history1.html#math_toolkit.main_overview.history1.milestone_2__released_september_10th_2006">Milestone
         2: Released September 10th 2006</a>
       </h5>
@@ -357,7 +401,7 @@
           </li>
 </ul></div>
 <h5>
-<a name="math_toolkit.main_overview.history1.h15"></a>
+<a name="math_toolkit.main_overview.history1.h16"></a>
         <span><a name="math_toolkit.main_overview.history1.milestone_1__released_march_31st_2006"></a></span><a class="link" href="history1.html#math_toolkit.main_overview.history1.milestone_1__released_march_31st_2006">Milestone
         1: Released March 31st 2006</a>
       </h5>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/intro.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/intro.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/intro.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="../main_overview.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../main_overview.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="navigation.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_main_overview_intro">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="math_toolkit.main_overview.intro"></a><a class="link" href="intro.html" title="About the Math Toolkit">About the Math Toolkit</a>
 </h3></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/namespaces.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/namespaces.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/namespaces.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="directories.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../main_overview.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="result_type.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_main_overview_namespaces">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="math_toolkit.main_overview.namespaces"></a><a class="link" href="namespaces.html" title="Namespaces">Namespaces</a>
 </h3></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/navigation.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/navigation.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/navigation.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="intro.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../main_overview.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="directories.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_main_overview_navigation">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="math_toolkit.main_overview.navigation"></a><a class="link" href="navigation.html" title="Navigation">Navigation</a>
 </h3></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/perf_over.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/perf_over.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/perf_over.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="threads.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../main_overview.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="building.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_main_overview_perf_over">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="math_toolkit.main_overview.perf_over"></a><a class="link" href="perf_over.html" title="Performance">Performance</a>
 </h3></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/pol_overview.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/pol_overview.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/pol_overview.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="config_macros.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../main_overview.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="threads.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_main_overview_pol_overview">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="math_toolkit.main_overview.pol_overview"></a><a class="link" href="pol_overview.html" title="Policies">Policies</a>
 </h3></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/result_type.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/result_type.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/result_type.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="namespaces.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../main_overview.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="error_handling.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_main_overview_result_type">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="math_toolkit.main_overview.result_type"></a><a class="link" href="result_type.html" title="Calculation of the Type of the Result">Calculation of
       the Type of the Result</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/threads.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/threads.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/threads.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="pol_overview.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../main_overview.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="perf_over.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_main_overview_threads">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="math_toolkit.main_overview.threads"></a><a class="link" href="threads.html" title="Thread Safety">Thread Safety</a>
 </h3></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/tr1.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/tr1.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/main_overview/tr1.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="history1.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../main_overview.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="faq.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_main_overview_tr1">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="math_toolkit.main_overview.tr1"></a><a class="link" href="tr1.html" title="C99 and C++ TR1 C-style Functions">C99 and C++ TR1 C-style
       Functions</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/perf.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/perf.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/perf.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="policy/pol_ref/pol_ref_ref.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="perf/perf_over.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_perf">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
 <a name="math_toolkit.perf"></a><a class="link" href="perf.html" title="Performance">Performance</a>
 </h2></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/perf/comp_compilers.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/perf/comp_compilers.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/perf/comp_compilers.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="getting_best.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../perf.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="tuning.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_perf_comp_compilers">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="math_toolkit.perf.comp_compilers"></a><a class="link" href="comp_compilers.html" title="Comparing Compilers">Comparing Compilers</a>
 </h3></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/perf/comparisons.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/perf/comparisons.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/perf/comparisons.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="tuning.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../perf.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="perf_test_app.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_perf_comparisons">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="math_toolkit.perf.comparisons"></a><a class="link" href="comparisons.html" title="Comparisons to Other Open Source Libraries">Comparisons to Other Open
       Source Libraries</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/perf/getting_best.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/perf/getting_best.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/perf/getting_best.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="interp.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../perf.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="comp_compilers.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_perf_getting_best">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="math_toolkit.perf.getting_best"></a><a class="link" href="getting_best.html" title="Getting the Best Performance from this Library">Getting the Best Performance
       from this Library</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/perf/interp.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/perf/interp.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/perf/interp.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="perf_over.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../perf.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="getting_best.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_perf_interp">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="math_toolkit.perf.interp"></a><a class="link" href="interp.html" title="Interpreting these Results">Interpreting these Results</a>
 </h3></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/perf/perf_over.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/perf/perf_over.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/perf/perf_over.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="../perf.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../perf.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="interp.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_perf_perf_over">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="math_toolkit.perf.perf_over"></a><a class="link" href="perf_over.html" title="Performance Overview">Performance Overview</a>
 </h3></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/perf/perf_test_app.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/perf/perf_test_app.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/perf/perf_test_app.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="comparisons.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../perf.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../backgrounders.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_perf_perf_test_app">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="math_toolkit.perf.perf_test_app"></a><a class="link" href="perf_test_app.html" title="The Performance Test Application">The Performance Test
       Application</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/perf/tuning.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/perf/tuning.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/perf/tuning.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="comp_compilers.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../perf.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="comparisons.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_perf_tuning">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="math_toolkit.perf.tuning"></a><a class="link" href="tuning.html" title="Performance Tuning Macros">Performance Tuning Macros</a>
 </h3></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="using_udt/archetypes.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="policy/pol_overview.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_policy">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
 <a name="math_toolkit.policy"></a><a class="link" href="policy.html" title="Policies">Policies</a>
 </h2></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_overview.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_overview.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_overview.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="../policy.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../policy.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="pol_tutorial.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_policy_pol_overview">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="math_toolkit.policy.pol_overview"></a><a class="link" href="pol_overview.html" title="Policy Overview">Policy Overview</a>
 </h3></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="pol_tutorial/understand_dis_quant.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../policy.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="pol_ref/error_handling_policies.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_policy_pol_ref">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="math_toolkit.policy.pol_ref"></a><a class="link" href="pol_ref.html" title="Policy Reference">Policy Reference</a>
 </h3></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/assert_undefined.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/assert_undefined.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/assert_undefined.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="internal_promotion.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../pol_ref.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="discrete_quant_ref.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_policy_pol_ref_assert_undefined">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.policy.pol_ref.assert_undefined"></a><a class="link" href="assert_undefined.html" title="Mathematically Undefined Function Policies">Mathematically
         Undefined Function Policies</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/discrete_quant_ref.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/discrete_quant_ref.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/discrete_quant_ref.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="assert_undefined.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../pol_ref.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="precision_pol.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_policy_pol_ref_discrete_quant_ref">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.policy.pol_ref.discrete_quant_ref"></a><a class="link" href="discrete_quant_ref.html" title="Discrete Quantile Policies">Discrete
         Quantile Policies</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/error_handling_policies.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/error_handling_policies.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/error_handling_policies.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="../pol_ref.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../pol_ref.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="internal_promotion.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_policy_pol_ref_error_handling_policies">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.policy.pol_ref.error_handling_policies"></a><a class="link" href="error_handling_policies.html" title="Error Handling Policies">Error
         Handling Policies</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/internal_promotion.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/internal_promotion.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/internal_promotion.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="error_handling_policies.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../pol_ref.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="assert_undefined.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_policy_pol_ref_internal_promotion">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.policy.pol_ref.internal_promotion"></a><a class="link" href="internal_promotion.html" title="Internal Floating-point Promotion Policies">Internal
         Floating-point Promotion Policies</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/iteration_pol.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/iteration_pol.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/iteration_pol.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="precision_pol.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../pol_ref.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="policy_defaults.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_policy_pol_ref_iteration_pol">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.policy.pol_ref.iteration_pol"></a><a class="link" href="iteration_pol.html" title="Iteration Limits Policies">Iteration
         Limits Policies</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/namespace_pol.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/namespace_pol.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/namespace_pol.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="policy_defaults.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../pol_ref.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="pol_ref_ref.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_policy_pol_ref_namespace_pol">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.policy.pol_ref.namespace_pol"></a><a class="link" href="namespace_pol.html" title="Setting Polices at Namespace Scope">Setting
         Polices at Namespace Scope</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/pol_ref_ref.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/pol_ref_ref.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/pol_ref_ref.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="namespace_pol.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../pol_ref.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../perf.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_policy_pol_ref_pol_ref_ref">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.policy.pol_ref.pol_ref_ref"></a><a class="link" href="pol_ref_ref.html" title="Policy Class Reference">Policy Class
         Reference</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/policy_defaults.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/policy_defaults.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/policy_defaults.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="iteration_pol.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../pol_ref.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="namespace_pol.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_policy_pol_ref_policy_defaults">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.policy.pol_ref.policy_defaults"></a><a class="link" href="policy_defaults.html" title="Using Macros to Change the Policy Defaults">Using
         Macros to Change the Policy Defaults</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/precision_pol.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/precision_pol.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_ref/precision_pol.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="discrete_quant_ref.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../pol_ref.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="iteration_pol.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_policy_pol_ref_precision_pol">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.policy.pol_ref.precision_pol"></a><a class="link" href="precision_pol.html" title="Precision Policies">Precision
         Policies</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="pol_overview.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../policy.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="pol_tutorial/what_is_a_policy.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_policy_pol_tutorial">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="math_toolkit.policy.pol_tutorial"></a><a class="link" href="pol_tutorial.html" title="Policy Tutorial">Policy Tutorial</a>
 </h3></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/ad_hoc_dist_policies.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/ad_hoc_dist_policies.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/ad_hoc_dist_policies.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="changing_policy_defaults.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../pol_tutorial.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="ad_hoc_sf_policies.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_policy_pol_tutorial_ad_hoc_dist_policies">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.policy.pol_tutorial.ad_hoc_dist_policies"></a><a class="link" href="ad_hoc_dist_policies.html" title="Setting Policies for Distributions on an Ad Hoc Basis">Setting
         Policies for Distributions on an Ad Hoc Basis</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/ad_hoc_sf_policies.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/ad_hoc_sf_policies.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/ad_hoc_sf_policies.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="ad_hoc_dist_policies.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../pol_tutorial.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="namespace_policies.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_policy_pol_tutorial_ad_hoc_sf_policies">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.policy.pol_tutorial.ad_hoc_sf_policies"></a><a class="link" href="ad_hoc_sf_policies.html" title="Changing the Policy on an Ad Hoc Basis for the Special Functions">Changing
         the Policy on an Ad Hoc Basis for the Special Functions</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/changing_policy_defaults.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/changing_policy_defaults.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/changing_policy_defaults.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="policy_usage.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../pol_tutorial.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="ad_hoc_dist_policies.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_policy_pol_tutorial_changing_policy_defaults">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.policy.pol_tutorial.changing_policy_defaults"></a><a class="link" href="changing_policy_defaults.html" title="Changing the Policy Defaults">Changing
         the Policy Defaults</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/namespace_policies.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/namespace_policies.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/namespace_policies.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="ad_hoc_sf_policies.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../pol_tutorial.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="user_def_err_pol.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_policy_pol_tutorial_namespace_policies">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.policy.pol_tutorial.namespace_policies"></a><a class="link" href="namespace_policies.html" title="Setting Policies at Namespace or Translation Unit Scope">Setting
         Policies at Namespace or Translation Unit Scope</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/policy_tut_defaults.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/policy_tut_defaults.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/policy_tut_defaults.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="what_is_a_policy.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../pol_tutorial.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="policy_usage.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_policy_pol_tutorial_policy_tut_defaults">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.policy.pol_tutorial.policy_tut_defaults"></a><a class="link" href="policy_tut_defaults.html" title="Policies Have Sensible Defaults">Policies
         Have Sensible Defaults</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/policy_usage.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/policy_usage.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/policy_usage.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="policy_tut_defaults.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../pol_tutorial.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="changing_policy_defaults.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_policy_pol_tutorial_policy_usage">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.policy.pol_tutorial.policy_usage"></a><a class="link" href="policy_usage.html" title="So How are Policies Used Anyway?">So How
         are Policies Used Anyway?</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/understand_dis_quant.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/understand_dis_quant.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/understand_dis_quant.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="user_def_err_pol.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../pol_tutorial.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../pol_ref.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_policy_pol_tutorial_understand_dis_quant">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.policy.pol_tutorial.understand_dis_quant"></a><a class="link" href="understand_dis_quant.html" title="Understanding Quantiles of Discrete Distributions">Understanding
         Quantiles of Discrete Distributions</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/user_def_err_pol.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/user_def_err_pol.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/user_def_err_pol.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="namespace_policies.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../pol_tutorial.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="understand_dis_quant.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_policy_pol_tutorial_user_def_err_pol">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.policy.pol_tutorial.user_def_err_pol"></a><a class="link" href="user_def_err_pol.html" title="Calling User Defined Error Handlers">Calling
         User Defined Error Handlers</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/what_is_a_policy.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/what_is_a_policy.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/policy/pol_tutorial/what_is_a_policy.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="../pol_tutorial.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../pol_tutorial.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="policy_tut_defaults.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_policy_pol_tutorial_what_is_a_policy">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.policy.pol_tutorial.what_is_a_policy"></a><a class="link" href="what_is_a_policy.html" title="So Just What is a Policy Anyway?">So
         Just What is a Policy Anyway?</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="dist/future.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="special/sf_gamma.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_special">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
 <a name="math_toolkit.special"></a><a class="link" href="special.html" title="Special Functions">Special Functions</a>
 </h2></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/bessel.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/bessel.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/bessel.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="sf_poly/sph_harm.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../special.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="bessel/bessel_over.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_special_bessel">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="math_toolkit.special.bessel"></a><a class="link" href="bessel.html" title="Bessel Functions">Bessel Functions</a>
 </h3></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="bessel_over.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../bessel.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="mbessel.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_special_bessel_bessel">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.special.bessel.bessel"></a><a class="link" href="bessel.html" title="Bessel Functions of the First and Second Kinds">Bessel Functions
         of the First and Second Kinds</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel_over.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel_over.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/bessel/bessel_over.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="../bessel.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../bessel.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="bessel.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_special_bessel_bessel_over">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.special.bessel.bessel_over"></a><a class="link" href="bessel_over.html" title="Bessel Function Overview">Bessel Function
         Overview</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/bessel/mbessel.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/bessel/mbessel.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/bessel/mbessel.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="bessel.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../bessel.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="sph_bessel.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_special_bessel_mbessel">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.special.bessel.mbessel"></a><a class="link" href="mbessel.html" title="Modified Bessel Functions of the First and Second Kinds">Modified Bessel
         Functions of the First and Second Kinds</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/bessel/sph_bessel.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/bessel/sph_bessel.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/bessel/sph_bessel.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="mbessel.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../bessel.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../ellint.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_special_bessel_sph_bessel">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.special.bessel.sph_bessel"></a><a class="link" href="sph_bessel.html" title="Spherical Bessel Functions of the First and Second Kinds">Spherical Bessel
         Functions of the First and Second Kinds</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/ellint.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/ellint.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/ellint.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="bessel/sph_bessel.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../special.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="ellint/ellint_intro.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_special_ellint">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="math_toolkit.special.ellint"></a><a class="link" href="ellint.html" title="Elliptic Integrals">Elliptic Integrals</a>
 </h3></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_1.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_1.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_1.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="ellint_carlson.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../ellint.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="ellint_2.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_special_ellint_ellint_1">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.special.ellint.ellint_1"></a><a class="link" href="ellint_1.html" title="Elliptic Integrals of the First Kind - Legendre Form">Elliptic Integrals
         of the First Kind - Legendre Form</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_2.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_2.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_2.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="ellint_1.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../ellint.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="ellint_3.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_special_ellint_ellint_2">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.special.ellint.ellint_2"></a><a class="link" href="ellint_2.html" title="Elliptic Integrals of the Second Kind - Legendre Form">Elliptic Integrals
         of the Second Kind - Legendre Form</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_3.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_3.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_3.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="ellint_2.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../ellint.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../zetas.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_special_ellint_ellint_3">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.special.ellint.ellint_3"></a><a class="link" href="ellint_3.html" title="Elliptic Integrals of the Third Kind - Legendre Form">Elliptic Integrals
         of the Third Kind - Legendre Form</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_carlson.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_carlson.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_carlson.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="ellint_intro.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../ellint.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="ellint_1.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_special_ellint_ellint_carlson">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.special.ellint.ellint_carlson"></a><a class="link" href="ellint_carlson.html" title="Elliptic Integrals - Carlson Form">Elliptic
         Integrals - Carlson Form</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_intro.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_intro.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/ellint/ellint_intro.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="../ellint.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../ellint.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="ellint_carlson.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_special_ellint_ellint_intro">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.special.ellint.ellint_intro"></a><a class="link" href="ellint_intro.html" title="Elliptic Integral Overview">Elliptic
         Integral Overview</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/expint.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/expint.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/expint.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="zetas/zeta.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../special.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="expint/expint_n.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_special_expint">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="math_toolkit.special.expint"></a><a class="link" href="expint.html" title="Exponential Integrals">Exponential Integrals</a>
 </h3></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/expint/expint_i.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/expint/expint_i.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/expint/expint_i.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="expint_n.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../expint.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../powers.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_special_expint_expint_i">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.special.expint.expint_i"></a><a class="link" href="expint_i.html" title="Exponential Integral Ei">Exponential Integral
         Ei</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/expint/expint_n.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/expint/expint_n.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/expint/expint_n.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="../expint.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../expint.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="expint_i.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_special_expint_expint_n">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.special.expint.expint_n"></a><a class="link" href="expint_n.html" title="Exponential Integral En">Exponential Integral
         En</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/factorials.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/factorials.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/factorials.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="sf_gamma/gamma_derivatives.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../special.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="factorials/sf_factorial.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_special_factorials">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="math_toolkit.special.factorials"></a><a class="link" href="factorials.html" title="Factorials and Binomial Coefficients">Factorials and Binomial
       Coefficients</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_binomial.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_binomial.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_binomial.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="sf_falling_factorial.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../factorials.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../sf_beta.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_special_factorials_sf_binomial">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.special.factorials.sf_binomial"></a><a class="link" href="sf_binomial.html" title="Binomial Coefficients">Binomial
         Coefficients</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_double_factorial.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_double_factorial.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_double_factorial.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="sf_factorial.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../factorials.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="sf_rising_factorial.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_special_factorials_sf_double_factorial">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.special.factorials.sf_double_factorial"></a><a class="link" href="sf_double_factorial.html" title="Double Factorial">Double
         Factorial</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_factorial.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_factorial.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_factorial.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="../factorials.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../factorials.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="sf_double_factorial.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_special_factorials_sf_factorial">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.special.factorials.sf_factorial"></a><a class="link" href="sf_factorial.html" title="Factorial">Factorial</a>
 </h4></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_falling_factorial.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_falling_factorial.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_falling_factorial.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="sf_rising_factorial.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../factorials.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="sf_binomial.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_special_factorials_sf_falling_factorial">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.special.factorials.sf_falling_factorial"></a><a class="link" href="sf_falling_factorial.html" title="Falling Factorial">Falling
         Factorial</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_rising_factorial.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_rising_factorial.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/factorials/sf_rising_factorial.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="sf_double_factorial.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../factorials.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="sf_falling_factorial.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_special_factorials_sf_rising_factorial">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.special.factorials.sf_rising_factorial"></a><a class="link" href="sf_rising_factorial.html" title="Rising Factorial">Rising
         Factorial</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/inv_hyper.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/inv_hyper.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/inv_hyper.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="sinc/sinhc_pi.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../special.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="inv_hyper/inv_hyper_over.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_special_inv_hyper">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="math_toolkit.special.inv_hyper"></a><a class="link" href="inv_hyper.html" title="Inverse Hyperbolic Functions">Inverse Hyperbolic Functions</a>
 </h3></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/acosh.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/acosh.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/acosh.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="inv_hyper_over.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../inv_hyper.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="asinh.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_special_inv_hyper_acosh">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.special.inv_hyper.acosh"></a><a class="link" href="acosh.html" title="acosh">acosh</a>
 </h4></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/asinh.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/asinh.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/asinh.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="acosh.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../inv_hyper.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="atanh.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_special_inv_hyper_asinh">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.special.inv_hyper.asinh"></a><a class="link" href="asinh.html" title="asinh">asinh</a>
 </h4></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/atanh.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/atanh.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/atanh.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="asinh.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../inv_hyper.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../utils.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_special_inv_hyper_atanh">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.special.inv_hyper.atanh"></a><a class="link" href="atanh.html" title="atanh">atanh</a>
 </h4></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/inv_hyper_over.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/inv_hyper_over.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/inv_hyper/inv_hyper_over.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="../inv_hyper.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../inv_hyper.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="acosh.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_special_inv_hyper_inv_hyper_over">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.special.inv_hyper.inv_hyper_over"></a><a class="link" href="inv_hyper_over.html" title="Inverse Hyperbolic Functions Overview">Inverse
         Hyperbolic Functions Overview</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="expint/expint_i.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../special.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="powers/log1p.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_special_powers">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="math_toolkit.special.powers"></a><a class="link" href="powers.html" title="Logs, Powers, Roots and Exponentials">Logs, Powers, Roots and
       Exponentials</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers/cbrt.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers/cbrt.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers/cbrt.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="expm1.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../powers.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="sqrt1pm1.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_special_powers_cbrt">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.special.powers.cbrt"></a><a class="link" href="cbrt.html" title="cbrt">cbrt</a>
 </h4></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers/ct_pow.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers/ct_pow.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers/ct_pow.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="hypot.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../powers.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../sinc.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_special_powers_ct_pow">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.special.powers.ct_pow"></a><a class="link" href="ct_pow.html" title="Compile Time Power of a Runtime Base">Compile Time Power
         of a Runtime Base</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers/expm1.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers/expm1.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers/expm1.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="log1p.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../powers.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="cbrt.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_special_powers_expm1">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.special.powers.expm1"></a><a class="link" href="expm1.html" title="expm1">expm1</a>
 </h4></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers/hypot.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers/hypot.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers/hypot.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="powm1.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../powers.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="ct_pow.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_special_powers_hypot">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.special.powers.hypot"></a><a class="link" href="hypot.html" title="hypot">hypot</a>
 </h4></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers/log1p.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers/log1p.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers/log1p.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="../powers.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../powers.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="expm1.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_special_powers_log1p">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.special.powers.log1p"></a><a class="link" href="log1p.html" title="log1p">log1p</a>
 </h4></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers/powm1.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers/powm1.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers/powm1.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="sqrt1pm1.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../powers.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="hypot.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_special_powers_powm1">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.special.powers.powm1"></a><a class="link" href="powm1.html" title="powm1">powm1</a>
 </h4></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers/sqrt1pm1.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers/sqrt1pm1.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/powers/sqrt1pm1.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="cbrt.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../powers.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="powm1.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_special_powers_sqrt1pm1">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.special.powers.sqrt1pm1"></a><a class="link" href="sqrt1pm1.html" title="sqrt1pm1">sqrt1pm1</a>
 </h4></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_beta.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_beta.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_beta.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="factorials/sf_binomial.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../special.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="sf_beta/beta_function.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_special_sf_beta">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="math_toolkit.special.sf_beta"></a><a class="link" href="sf_beta.html" title="Beta Functions">Beta Functions</a>
 </h3></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_derivative.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_derivative.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_derivative.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="ibeta_inv_function.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../sf_beta.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../sf_erf.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_special_sf_beta_beta_derivative">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.special.sf_beta.beta_derivative"></a><a class="link" href="beta_derivative.html" title="Derivative of the Incomplete Beta Function">Derivative
         of the Incomplete Beta Function</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_function.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_function.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_beta/beta_function.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="../sf_beta.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../sf_beta.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="ibeta_function.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_special_sf_beta_beta_function">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.special.sf_beta.beta_function"></a><a class="link" href="beta_function.html" title="Beta">Beta</a>
 </h4></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_function.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_function.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_function.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="beta_function.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../sf_beta.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="ibeta_inv_function.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_special_sf_beta_ibeta_function">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.special.sf_beta.ibeta_function"></a><a class="link" href="ibeta_function.html" title="Incomplete Beta Functions">Incomplete
         Beta Functions</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_inv_function.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_inv_function.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_beta/ibeta_inv_function.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="ibeta_function.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../sf_beta.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="beta_derivative.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_special_sf_beta_ibeta_inv_function">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.special.sf_beta.ibeta_inv_function"></a><a class="link" href="ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">The
         Incomplete Beta Function Inverses</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_erf.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_erf.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_erf.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="sf_beta/beta_derivative.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../special.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="sf_erf/error_function.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_special_sf_erf">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="math_toolkit.special.sf_erf"></a><a class="link" href="sf_erf.html" title="Error Functions">Error Functions</a>
 </h3></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_function.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_function.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_function.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="../sf_erf.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../sf_erf.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="error_inv.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_special_sf_erf_error_function">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.special.sf_erf.error_function"></a><a class="link" href="error_function.html" title="Error Functions">Error Functions</a>
 </h4></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_inv.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_inv.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_erf/error_inv.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="error_function.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../sf_erf.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../sf_poly.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_special_sf_erf_error_inv">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.special.sf_erf.error_inv"></a><a class="link" href="error_inv.html" title="Error Function Inverses">Error Function
         Inverses</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="../special.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../special.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="sf_gamma/tgamma.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_special_sf_gamma">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="math_toolkit.special.sf_gamma"></a><a class="link" href="sf_gamma.html" title="Gamma Functions">Gamma Functions</a>
 </h3></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/digamma.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/digamma.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/digamma.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="lgamma.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../sf_gamma.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="gamma_ratios.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_special_sf_gamma_digamma">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.special.sf_gamma.digamma"></a><a class="link" href="digamma.html" title="Digamma">Digamma</a>
 </h4></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_derivatives.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_derivatives.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_derivatives.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="igamma_inv.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../sf_gamma.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../factorials.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_special_sf_gamma_gamma_derivatives">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.special.sf_gamma.gamma_derivatives"></a><a class="link" href="gamma_derivatives.html" title="Derivative of the Incomplete Gamma Function">Derivative
         of the Incomplete Gamma Function</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_ratios.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_ratios.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/gamma_ratios.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="digamma.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../sf_gamma.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="igamma.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_special_sf_gamma_gamma_ratios">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.special.sf_gamma.gamma_ratios"></a><a class="link" href="gamma_ratios.html" title="Ratios of Gamma Functions">Ratios
         of Gamma Functions</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="gamma_ratios.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../sf_gamma.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="igamma_inv.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_special_sf_gamma_igamma">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.special.sf_gamma.igamma"></a><a class="link" href="igamma.html" title="Incomplete Gamma Functions">Incomplete Gamma
         Functions</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma_inv.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma_inv.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/igamma_inv.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="igamma.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../sf_gamma.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="gamma_derivatives.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_special_sf_gamma_igamma_inv">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.special.sf_gamma.igamma_inv"></a><a class="link" href="igamma_inv.html" title="Incomplete Gamma Function Inverses">Incomplete
         Gamma Function Inverses</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/lgamma.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/lgamma.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/lgamma.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="tgamma.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../sf_gamma.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="digamma.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_special_sf_gamma_lgamma">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.special.sf_gamma.lgamma"></a><a class="link" href="lgamma.html" title="Log Gamma">Log Gamma</a>
 </h4></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/tgamma.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/tgamma.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_gamma/tgamma.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="../sf_gamma.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../sf_gamma.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="lgamma.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_special_sf_gamma_tgamma">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.special.sf_gamma.tgamma"></a><a class="link" href="tgamma.html" title="Gamma">Gamma</a>
 </h4></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_poly.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_poly.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_poly.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="sf_erf/error_inv.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../special.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="sf_poly/legendre.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_special_sf_poly">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="math_toolkit.special.sf_poly"></a><a class="link" href="sf_poly.html" title="Polynomials">Polynomials</a>
 </h3></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_poly/hermite.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_poly/hermite.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_poly/hermite.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="laguerre.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../sf_poly.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="sph_harm.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_special_sf_poly_hermite">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.special.sf_poly.hermite"></a><a class="link" href="hermite.html" title="Hermite Polynomials">Hermite Polynomials</a>
 </h4></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_poly/laguerre.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_poly/laguerre.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_poly/laguerre.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="legendre.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../sf_poly.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="hermite.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_special_sf_poly_laguerre">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.special.sf_poly.laguerre"></a><a class="link" href="laguerre.html" title="Laguerre (and Associated) Polynomials">Laguerre (and
         Associated) Polynomials</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_poly/legendre.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_poly/legendre.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_poly/legendre.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="../sf_poly.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../sf_poly.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="laguerre.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_special_sf_poly_legendre">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.special.sf_poly.legendre"></a><a class="link" href="legendre.html" title="Legendre (and Associated) Polynomials">Legendre (and
         Associated) Polynomials</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_poly/sph_harm.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_poly/sph_harm.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sf_poly/sph_harm.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="hermite.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../sf_poly.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../bessel.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_special_sf_poly_sph_harm">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.special.sf_poly.sph_harm"></a><a class="link" href="sph_harm.html" title="Spherical Harmonics">Spherical Harmonics</a>
 </h4></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sinc.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sinc.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sinc.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="powers/ct_pow.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../special.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="sinc/sinc_overview.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_special_sinc">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="math_toolkit.special.sinc"></a><a class="link" href="sinc.html" title="Sinus Cardinal and Hyperbolic Sinus Cardinal Functions">Sinus Cardinal and Hyperbolic
       Sinus Cardinal Functions</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sinc/sinc_overview.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sinc/sinc_overview.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sinc/sinc_overview.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="../sinc.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../sinc.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="sinc_pi.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_special_sinc_sinc_overview">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.special.sinc.sinc_overview"></a><a class="link" href="sinc_overview.html" title="Sinus Cardinal and Hyperbolic Sinus Cardinal Functions Overview">Sinus Cardinal
         and Hyperbolic Sinus Cardinal Functions Overview</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sinc/sinc_pi.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sinc/sinc_pi.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sinc/sinc_pi.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="sinc_overview.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../sinc.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="sinhc_pi.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_special_sinc_sinc_pi">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.special.sinc.sinc_pi"></a><a class="link" href="sinc_pi.html" title="sinc_pi">sinc_pi</a>
 </h4></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sinc/sinhc_pi.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sinc/sinhc_pi.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/sinc/sinhc_pi.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="sinc_pi.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../sinc.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../inv_hyper.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_special_sinc_sinhc_pi">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.special.sinc.sinhc_pi"></a><a class="link" href="sinhc_pi.html" title="sinhc_pi">sinhc_pi</a>
 </h4></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/zetas.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/zetas.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/zetas.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="ellint/ellint_3.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../special.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="zetas/zeta.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_special_zetas">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="math_toolkit.special.zetas"></a><a class="link" href="zetas.html" title="Zeta Functions">Zeta Functions</a>
 </h3></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/zetas/zeta.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/zetas/zeta.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/special/zetas/zeta.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="../zetas.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../zetas.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../expint.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_special_zetas_zeta">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.special.zetas.zeta"></a><a class="link" href="zeta.html" title="Riemann Zeta Function">Riemann Zeta Function</a>
 </h4></div></div></div>
@@ -260,15 +260,6 @@
           <span class="inlinemediaobject"><img src="../../../../equations/zeta6.png"></span>
         </p>
 <p>
- except when the argument is close to 1, where the globally convergent series:
- </p>
-<p>
- <span class="inlinemediaobject"><img src="../../../../equations/zeta2.png"></span>
- </p>
-<p>
- Is used.
- </p>
-<p>
           When the significand (mantissa) size is recognised (currently for 53, 64
           and 113-bit reals, plus single-precision 24-bit handled via promotion to
           double) then a series of rational approximations <a class="link" href="../../backgrounders/implementation.html#math_toolkit.backgrounders.implementation.rational_approximations_used">devised

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/status.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/status.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/status.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="backgrounders/refs.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="status/history1.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_status">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
 <a name="math_toolkit.status"></a><a class="link" href="status.html" title="Library Status">Library Status</a>
 </h2></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/status/credits.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/status/credits.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/status/credits.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="issues.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../status.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../index/s12.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_status_credits">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="math_toolkit.status.credits"></a><a class="link" href="credits.html" title="Credits and Acknowledgements">Credits and Acknowledgements</a>
 </h3></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/status/history1.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/status/history1.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/status/history1.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,12 +22,56 @@
 <div class="spirit-nav">
 <a accesskey="p" href="../status.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../status.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="issues.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_status_history1">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="math_toolkit.status.history1"></a><a class="link" href="history1.html" title="History and What's New">History and What's New</a>
 </h3></div></div></div>
 <h5>
 <a name="math_toolkit.status.history1.h0"></a>
+ <span><a name="math_toolkit.status.history1.boost_1_49"></a></span><a class="link" href="history1.html#math_toolkit.status.history1.boost_1_49">Boost-1.49</a>
+ </h5>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+ Deprecated wrongly named <code class="computeroutput"><span class="identifier">twothirds</span></code>
+ math constant in favour of <code class="computeroutput"><span class="identifier">two_thirds</span></code>
+ (with underscore separator). (issue #6199).
+ </li>
+<li class="listitem">
+ Refactored test data and some special function code to improve support
+ for arbitary precision and/or expression-template-enabled types.
+ </li>
+<li class="listitem">
+ Added new faster zeta function evaluation method.
+ </li>
+</ul></div>
+<p>
+ Fixed issues:
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+ Corrected CDF complement for Laplace distribution (issue #6151).
+ </li>
+<li class="listitem">
+ Corrected branch cuts on the complex inverse trig functions, to handle
+ signed zeros (issue #6171).
+ </li>
+<li class="listitem">
+ Fixed bug in <code class="computeroutput"><span class="identifier">bessel_yn</span></code>
+ which caused incorrect overflow errors to be raised for negative <span class="emphasis"><em>n</em></span>
+ (issue #6367).
+ </li>
+<li class="listitem">
+ Also fixed minor/cosmetic/configuration issues #6120,
+ #6191,
+ #5982,
+ #6130,
+ #6234,
+ #6307,
+ #6192.
+ </li>
+</ul></div>
+<h5>
+<a name="math_toolkit.status.history1.h1"></a>
         <span><a name="math_toolkit.status.history1.boost_1_48"></a></span><a class="link" href="history1.html#math_toolkit.status.history1.boost_1_48">Boost-1.48</a>
       </h5>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
@@ -78,7 +122,7 @@
           </li>
 </ul></div>
 <h5>
-<a name="math_toolkit.status.history1.h1"></a>
+<a name="math_toolkit.status.history1.h2"></a>
         <span><a name="math_toolkit.status.history1.boost_1_47"></a></span><a class="link" href="history1.html#math_toolkit.status.history1.boost_1_47">Boost-1.47</a>
       </h5>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
@@ -95,7 +139,7 @@
           </li>
 </ul></div>
 <h5>
-<a name="math_toolkit.status.history1.h2"></a>
+<a name="math_toolkit.status.history1.h3"></a>
         <span><a name="math_toolkit.status.history1.boost_1_46_1"></a></span><a class="link" href="history1.html#math_toolkit.status.history1.boost_1_46_1">Boost-1.46.1</a>
       </h5>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
@@ -103,7 +147,7 @@
             <a href="https://svn.boost.org/trac/boost/ticket/5095" target="_top">#5113</a>.
           </li></ul></div>
 <h5>
-<a name="math_toolkit.status.history1.h3"></a>
+<a name="math_toolkit.status.history1.h4"></a>
         <span><a name="math_toolkit.status.history1.boost_1_46_0"></a></span><a class="link" href="history1.html#math_toolkit.status.history1.boost_1_46_0">Boost-1.46.0</a>
       </h5>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
@@ -118,7 +162,7 @@
           </li>
 </ul></div>
 <h5>
-<a name="math_toolkit.status.history1.h4"></a>
+<a name="math_toolkit.status.history1.h5"></a>
         <span><a name="math_toolkit.status.history1.boost_1_45_0"></a></span><a class="link" href="history1.html#math_toolkit.status.history1.boost_1_45_0">Boost-1.45.0</a>
       </h5>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
@@ -135,7 +179,7 @@
           </li>
 </ul></div>
 <h5>
-<a name="math_toolkit.status.history1.h5"></a>
+<a name="math_toolkit.status.history1.h6"></a>
         <span><a name="math_toolkit.status.history1.boost_1_44_0"></a></span><a class="link" href="history1.html#math_toolkit.status.history1.boost_1_44_0">Boost-1.44.0</a>
       </h5>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
@@ -149,7 +193,7 @@
           </li>
 </ul></div>
 <h5>
-<a name="math_toolkit.status.history1.h6"></a>
+<a name="math_toolkit.status.history1.h7"></a>
         <span><a name="math_toolkit.status.history1.boost_1_41_0"></a></span><a class="link" href="history1.html#math_toolkit.status.history1.boost_1_41_0">Boost-1.41.0</a>
       </h5>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
@@ -157,7 +201,7 @@
             and its inverse.
           </li></ul></div>
 <h5>
-<a name="math_toolkit.status.history1.h7"></a>
+<a name="math_toolkit.status.history1.h8"></a>
         <span><a name="math_toolkit.status.history1.boost_1_40_0"></a></span><a class="link" href="history1.html#math_toolkit.status.history1.boost_1_40_0">Boost-1.40.0</a>
       </h5>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
@@ -194,7 +238,7 @@
           </li>
 </ul></div>
 <h5>
-<a name="math_toolkit.status.history1.h8"></a>
+<a name="math_toolkit.status.history1.h9"></a>
         <span><a name="math_toolkit.status.history1.boost_1_38_0"></a></span><a class="link" href="history1.html#math_toolkit.status.history1.boost_1_38_0">Boost-1.38.0</a>
       </h5>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
@@ -206,14 +250,14 @@
           </li>
 </ul></div>
 <h5>
-<a name="math_toolkit.status.history1.h9"></a>
+<a name="math_toolkit.status.history1.h10"></a>
         <span><a name="math_toolkit.status.history1.boost_1_37_0"></a></span><a class="link" href="history1.html#math_toolkit.status.history1.boost_1_37_0">Boost-1.37.0</a>
       </h5>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
             Improved accuracy and testing of the inverse hypergeometric functions.
           </li></ul></div>
 <h5>
-<a name="math_toolkit.status.history1.h10"></a>
+<a name="math_toolkit.status.history1.h11"></a>
         <span><a name="math_toolkit.status.history1.boost_1_36_0"></a></span><a class="link" href="history1.html#math_toolkit.status.history1.boost_1_36_0">Boost-1.36.0</a>
       </h5>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
@@ -246,7 +290,7 @@
           </li>
 </ul></div>
 <h5>
-<a name="math_toolkit.status.history1.h11"></a>
+<a name="math_toolkit.status.history1.h12"></a>
         <span><a name="math_toolkit.status.history1.boost_1_35_0__post_review_first_official_release"></a></span><a class="link" href="history1.html#math_toolkit.status.history1.boost_1_35_0__post_review_first_official_release">Boost-1.35.0:
         Post Review First Official Release</a>
       </h5>
@@ -278,7 +322,7 @@
           </li>
 </ul></div>
 <h5>
-<a name="math_toolkit.status.history1.h12"></a>
+<a name="math_toolkit.status.history1.h13"></a>
         <span><a name="math_toolkit.status.history1.milestone_4__second_review_candidate__1st_march_2007_"></a></span><a class="link" href="history1.html#math_toolkit.status.history1.milestone_4__second_review_candidate__1st_march_2007_">Milestone
         4: Second Review Candidate (1st March 2007)</a>
       </h5>
@@ -292,7 +336,7 @@
           </li>
 </ul></div>
 <h5>
-<a name="math_toolkit.status.history1.h13"></a>
+<a name="math_toolkit.status.history1.h14"></a>
         <span><a name="math_toolkit.status.history1.milestone_3__first_review_candidate__31st_dec_2006_"></a></span><a class="link" href="history1.html#math_toolkit.status.history1.milestone_3__first_review_candidate__31st_dec_2006_">Milestone
         3: First Review Candidate (31st Dec 2006)</a>
       </h5>
@@ -320,7 +364,7 @@
           </li>
 </ul></div>
 <h5>
-<a name="math_toolkit.status.history1.h14"></a>
+<a name="math_toolkit.status.history1.h15"></a>
         <span><a name="math_toolkit.status.history1.milestone_2__released_september_10th_2006"></a></span><a class="link" href="history1.html#math_toolkit.status.history1.milestone_2__released_september_10th_2006">Milestone
         2: Released September 10th 2006</a>
       </h5>
@@ -356,7 +400,7 @@
           </li>
 </ul></div>
 <h5>
-<a name="math_toolkit.status.history1.h15"></a>
+<a name="math_toolkit.status.history1.h16"></a>
         <span><a name="math_toolkit.status.history1.milestone_1__released_march_31st_2006"></a></span><a class="link" href="history1.html#math_toolkit.status.history1.milestone_1__released_march_31st_2006">Milestone
         1: Released March 31st 2006</a>
       </h5>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/status/issues.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/status/issues.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/status/issues.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="history1.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../status.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="credits.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_status_issues">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="math_toolkit.status.issues"></a><a class="link" href="issues.html" title="Known Issues, and TODO List">Known Issues, and TODO List</a>
 </h3></div></div></div>
@@ -130,14 +130,16 @@
 </ul></div>
 <h5>
 <a name="math_toolkit.status.issues.h5"></a>
- <span><a name="math_toolkit.status.issues.inverse_hyperbolic_functions"></a></span><a class="link" href="issues.html#math_toolkit.status.issues.inverse_hyperbolic_functions">Inverse
- Hyperbolic Functions</a>
+ <span><a name="math_toolkit.status.issues.bessel_functions"></a></span><a class="link" href="issues.html#math_toolkit.status.issues.bessel_functions">Bessel
+ Functions</a>
       </h5>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
- These functions are inherited from previous Boost versions, before <a class="link" href="../special/powers/log1p.html" title="log1p">log1p</a> became widely
- available. Would they be better expressed in terms of this function?
- This is probably only an issue for very high precision types (Low Priority).
- </li></ul></div>
+<p>
+ We should implement the Hankel H1 and H2 functions as linear combinations
+ of Bessel functions. Requires refactoring the internals so we can reliably
+ calculate pairs of Bessel functions at the same time. We may also be able
+ to improve performance of the Bessel series evaluation by accelerating the
+ alternating series. This may also increase the scope of the series form.
+ </p>
 <h5>
 <a name="math_toolkit.status.issues.h6"></a>
         <span><a name="math_toolkit.status.issues.jocobi_elliptic_functions"></a></span><a class="link" href="issues.html#math_toolkit.status.issues.jocobi_elliptic_functions">Jocobi elliptic

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="extern_c/tr1_ref.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="toolkit/internals_overview.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_toolkit">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
 <a name="math_toolkit.toolkit"></a><a class="link" href="toolkit.html" title="Tools, Constants and Internal Details">Tools, Constants and Internal Details</a>
 </h2></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals1.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals1.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals1.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="internals_overview.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../toolkit.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="internals1/constants.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_toolkit_internals1">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="math_toolkit.toolkit.internals1"></a><a class="link" href="internals1.html" title="Utilities - Constants &amp; Tools">Utilities - Constants
       &amp; Tools</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/cf.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/cf.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/cf.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="series_evaluation.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../internals1.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="rational.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_toolkit_internals1_cf">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.toolkit.internals1.cf"></a><a class="link" href="cf.html" title="Continued Fraction Evaluation">Continued Fraction
         Evaluation</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/constants.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/constants.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/constants.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="../internals1.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../internals1.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="series_evaluation.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_toolkit_internals1_constants">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.toolkit.internals1.constants"></a><a class="link" href="constants.html" title="Numeric Constants">Numeric
         Constants</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/minima.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/minima.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/minima.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="roots2.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../internals1.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="tuples.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_toolkit_internals1_minima">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.toolkit.internals1.minima"></a><a class="link" href="minima.html" title="Locating Function Minima: Brent's algorithm">Locating Function
         Minima: Brent's algorithm</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/rational.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/rational.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/rational.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="cf.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../internals1.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="roots.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_toolkit_internals1_rational">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.toolkit.internals1.rational"></a><a class="link" href="rational.html" title="Polynomial and Rational Function Evaluation">Polynomial
         and Rational Function Evaluation</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="rational.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../internals1.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="roots2.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_toolkit_internals1_roots">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.toolkit.internals1.roots"></a><a class="link" href="roots.html" title="Root Finding With Derivatives: Newton-Raphson, Halley &amp; Schroeder">Root Finding
         With Derivatives: Newton-Raphson, Halley &amp; Schroeder</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots2.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots2.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/roots2.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="roots.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../internals1.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="minima.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_toolkit_internals1_roots2">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.toolkit.internals1.roots2"></a><a class="link" href="roots2.html" title="Root Finding Without Derivatives: Bisection, Bracket and TOMS748">Root Finding
         Without Derivatives: Bisection, Bracket and TOMS748</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/series_evaluation.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/series_evaluation.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/series_evaluation.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="constants.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../internals1.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="cf.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_toolkit_internals1_series_evaluation">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.toolkit.internals1.series_evaluation"></a><a class="link" href="series_evaluation.html" title="Series Evaluation">Series
         Evaluation</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/tuples.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/tuples.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals1/tuples.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="minima.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../internals1.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../internals2.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_toolkit_internals1_tuples">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.toolkit.internals1.tuples"></a><a class="link" href="tuples.html" title="Tuples">Tuples</a>
 </h4></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals2.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals2.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals2.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="internals1/tuples.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../toolkit.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="internals2/polynomials.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_toolkit_internals2">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="math_toolkit.toolkit.internals2"></a><a class="link" href="internals2.html" title="Testing and Development">Testing and Development</a>
 </h3></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/error_test.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/error_test.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/error_test.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="minimax.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../internals2.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="test_data.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_toolkit_internals2_error_test">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.toolkit.internals2.error_test"></a><a class="link" href="error_test.html" title="Relative Error and Testing">Relative
         Error and Testing</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/minimax.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/minimax.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/minimax.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="polynomials.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../internals2.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="error_test.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_toolkit_internals2_minimax">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.toolkit.internals2.minimax"></a><a class="link" href="minimax.html" title="Minimax Approximations and the Remez Algorithm">Minimax Approximations
         and the Remez Algorithm</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/polynomials.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/polynomials.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/polynomials.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="../internals2.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../internals2.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="minimax.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_toolkit_internals2_polynomials">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.toolkit.internals2.polynomials"></a><a class="link" href="polynomials.html" title="Polynomials">Polynomials</a>
 </h4></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/test_data.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/test_data.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals2/test_data.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="error_test.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../internals2.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../using_udt.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_toolkit_internals2_test_data">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.toolkit.internals2.test_data"></a><a class="link" href="test_data.html" title="Graphing, Profiling, and Generating Test Data for Special Functions">Graphing,
         Profiling, and Generating Test Data for Special Functions</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals_overview.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals_overview.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/toolkit/internals_overview.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="../toolkit.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../toolkit.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="internals1.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_toolkit_internals_overview">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="math_toolkit.toolkit.internals_overview"></a><a class="link" href="internals_overview.html" title="Overview">Overview</a>
 </h3></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="toolkit/internals2/test_data.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="using_udt/use_ntl.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_using_udt">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
 <a name="math_toolkit.using_udt"></a><a class="link" href="using_udt.html" title="Use with User-Defined Floating-Point Types">Use with User-Defined Floating-Point
     Types</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt/archetypes.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt/archetypes.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt/archetypes.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="dist_concept.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../using_udt.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../policy.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_using_udt_archetypes">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="math_toolkit.using_udt.archetypes"></a><a class="link" href="archetypes.html" title="Conceptual Archetypes for Reals and Distributions">Conceptual Archetypes
       for Reals and Distributions</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt/concepts.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt/concepts.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt/concepts.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="e_float.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../using_udt.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="dist_concept.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_using_udt_concepts">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="math_toolkit.using_udt.concepts"></a><a class="link" href="concepts.html" title="Conceptual Requirements for Real Number Types">Conceptual Requirements
       for Real Number Types</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt/dist_concept.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt/dist_concept.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt/dist_concept.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="concepts.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../using_udt.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="archetypes.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_using_udt_dist_concept">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="math_toolkit.using_udt.dist_concept"></a><a class="link" href="dist_concept.html" title="Conceptual Requirements for Distribution Types">Conceptual Requirements
       for Distribution Types</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt/e_float.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt/e_float.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt/e_float.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="use_mpfr.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../using_udt.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="concepts.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_using_udt_e_float">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="math_toolkit.using_udt.e_float"></a><a class="link" href="e_float.html" title="e_float Support">e_float Support</a>
 </h3></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt/use_mpfr.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt/use_mpfr.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt/use_mpfr.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="use_ntl.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../using_udt.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="e_float.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_using_udt_use_mpfr">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="math_toolkit.using_udt.use_mpfr"></a><a class="link" href="use_mpfr.html" title="Using With MPFR / GMP - a High-Precision Floating-Point Library">Using With MPFR / GMP
       - a High-Precision Floating-Point Library</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt/use_ntl.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt/use_ntl.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/using_udt/use_ntl.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="../using_udt.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../using_udt.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="use_mpfr.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_using_udt_use_ntl">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="math_toolkit.using_udt.use_ntl"></a><a class="link" href="use_ntl.html" title="Using With NTL - a High-Precision Floating-Point Library">Using With NTL - a High-Precision
       Floating-Point Library</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/utils.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/utils.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/utils.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="special/inv_hyper/atanh.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="utils/rounding.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_utils">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
 <a name="math_toolkit.utils"></a><a class="link" href="utils.html" title="Floating Point Utilities">Floating Point Utilities</a>
 </h2></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/utils/fp_facets.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/utils/fp_facets.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/utils/fp_facets.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="sign_functions.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../utils.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="fp_facets/intro.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_utils_fp_facets">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="math_toolkit.utils.fp_facets"></a><a class="link" href="fp_facets.html" title="Facets for Floating-Point Infinities and NaNs">Facets for Floating-Point
       Infinities and NaNs</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/examples.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/examples.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/examples.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="reference.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../fp_facets.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="portability.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_utils_fp_facets_examples">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.utils.fp_facets.examples"></a><a class="link" href="examples.html" title="Examples">Examples</a>
 </h4></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/intro.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/intro.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/intro.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="../fp_facets.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../fp_facets.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="reference.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_utils_fp_facets_intro">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.utils.fp_facets.intro"></a><a class="link" href="intro.html" title="Introduction">Introduction</a>
 </h4></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/portability.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/portability.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/portability.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="examples.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../fp_facets.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="rationale.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_utils_fp_facets_portability">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.utils.fp_facets.portability"></a><a class="link" href="portability.html" title="Portability">Portability</a>
 </h4></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/rationale.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/rationale.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/rationale.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="portability.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../fp_facets.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../next_float.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_utils_fp_facets_rationale">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.utils.fp_facets.rationale"></a><a class="link" href="rationale.html" title="Design Rationale">Design Rationale</a>
 </h4></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/reference.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/reference.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/utils/fp_facets/reference.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="intro.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../fp_facets.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="examples.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_utils_fp_facets_reference">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.utils.fp_facets.reference"></a><a class="link" href="reference.html" title="Reference">Reference</a>
 </h4></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/utils/fpclass.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/utils/fpclass.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/utils/fpclass.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="rounding/modf.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../utils.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="sign_functions.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_utils_fpclass">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="math_toolkit.utils.fpclass"></a><a class="link" href="fpclass.html" title="Floating-Point Classification: Infinities and NaNs">Floating-Point Classification:
       Infinities and NaNs</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/utils/next_float.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/utils/next_float.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/utils/next_float.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="fp_facets/rationale.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../utils.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="next_float/nextafter.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_utils_next_float">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="math_toolkit.utils.next_float"></a><a class="link" href="next_float.html" title="Floating-Point Representation Distance (ULP), and Finding Adjacent Floating-Point Values">Floating-Point Representation
       Distance (ULP), and Finding Adjacent Floating-Point Values</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_advance.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_advance.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_advance.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="float_distance.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../next_float.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../extern_c.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_utils_next_float_float_advance">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.utils.next_float.float_advance"></a><a class="link" href="float_advance.html" title="Advancing a Floating Point Value by a Specific Representation Distance (ULP) float_advance">Advancing
         a Floating Point Value by a Specific Representation Distance (ULP) float_advance</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_distance.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_distance.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_distance.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="float_prior.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../next_float.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="float_advance.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_utils_next_float_float_distance">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.utils.next_float.float_distance"></a><a class="link" href="float_distance.html" title="Calculating the Representation Distance Between Two Floating Point Values (ULP) float_distance">Calculating
         the Representation Distance Between Two Floating Point Values (ULP) float_distance</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_next.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_next.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_next.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="nextafter.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../next_float.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="float_prior.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_utils_next_float_float_next">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.utils.next_float.float_next"></a><a class="link" href="float_next.html" title="Finding the Next Greater Representable Value (float_next)">Finding the
         Next Greater Representable Value (float_next)</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_prior.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_prior.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_prior.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="float_next.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../next_float.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="float_distance.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_utils_next_float_float_prior">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.utils.next_float.float_prior"></a><a class="link" href="float_prior.html" title="Finding the Next Smaller Representable Value (float_prior)">Finding
         the Next Smaller Representable Value (float_prior)</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/utils/next_float/nextafter.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/utils/next_float/nextafter.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/utils/next_float/nextafter.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="../next_float.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../next_float.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="float_next.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_utils_next_float_nextafter">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.utils.next_float.nextafter"></a><a class="link" href="nextafter.html" title="Finding the Next Representable Value in a Specific Direction (nextafter)">Finding the
         Next Representable Value in a Specific Direction (nextafter)</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/utils/rounding.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/utils/rounding.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/utils/rounding.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="../utils.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../utils.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="rounding/round.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_utils_rounding">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="math_toolkit.utils.rounding"></a><a class="link" href="rounding.html" title="Rounding Truncation and Integer Conversion">Rounding Truncation and
       Integer Conversion</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/utils/rounding/modf.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/utils/rounding/modf.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/utils/rounding/modf.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="trunc.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../rounding.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../fpclass.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_utils_rounding_modf">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.utils.rounding.modf"></a><a class="link" href="modf.html" title="Integer and Fractional Part Splitting (modf)">Integer and Fractional
         Part Splitting (modf)</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/utils/rounding/round.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/utils/rounding/round.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/utils/rounding/round.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="../rounding.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../rounding.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="trunc.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_utils_rounding_round">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.utils.rounding.round"></a><a class="link" href="round.html" title="Rounding Functions">Rounding Functions</a>
 </h4></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/utils/rounding/trunc.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/utils/rounding/trunc.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/utils/rounding/trunc.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="round.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../rounding.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="modf.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_utils_rounding_trunc">
 <div class="titlepage"><div><div><h4 class="title">
 <a name="math_toolkit.utils.rounding.trunc"></a><a class="link" href="trunc.html" title="Truncation Functions">Truncation Functions</a>
 </h4></div></div></div>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/utils/sign_functions.html
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/utils/sign_functions.html (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/html/math_toolkit/utils/sign_functions.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,7 +22,7 @@
 <div class="spirit-nav">
 <a accesskey="p" href="fpclass.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../utils.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="fp_facets.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
 </div>
-<div class="section">
+<div class="section math_toolkit_utils_sign_functions">
 <div class="titlepage"><div><div><h3 class="title">
 <a name="math_toolkit.utils.sign_functions"></a><a class="link" href="sign_functions.html" title="Sign Manipulation Functions">Sign Manipulation
       Functions</a>

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/issues.qbk
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/issues.qbk (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/issues.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -67,12 +67,12 @@
 to be an real problem in practice - especially as most other implementations
 don't support this domain either (Medium Priority).
 
-[h4 Inverse Hyperbolic Functions]
+[h4 Bessel Functions]
 
-* These functions are inherited from previous Boost versions,
-before __log1p became widely available. Would they be better expressed
-in terms of this function? This is probably only an issue
-for very high precision types (Low Priority).
+We should implement the Hankel H1 and H2 functions as linear combinations of Bessel functions.
+Requires refactoring the internals so we can reliably calculate pairs of Bessel functions at the same time.
+We may also be able to improve performance of the Bessel series evaluation by accelerating the alternating
+series. This may also increase the scope of the series form.
 
 [h4 Jocobi elliptic functions]
 

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/roadmap.qbk
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/roadmap.qbk (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/roadmap.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -4,10 +4,18 @@
 
 * Deprecated wrongly named `twothirds` math constant in favour of `two_thirds` (with underscore separator).
 (issue [@https://svn.boost.org/trac/boost/ticket/6199 #6199]).
+* Refactored test data and some special function code to improve support for arbitary precision and/or expression-template-enabled types.
+* Added new faster zeta function evaluation method.
 
-Fixed issues
+Fixed issues:
 
 * Corrected CDF complement for Laplace distribution (issue [@https://svn.boost.org/trac/boost/ticket/6151 #6151]).
+* Corrected branch cuts on the complex inverse trig functions, to handle signed zeros (issue [@https://svn.boost.org/trac/boost/ticket/6171 #6171]).
+* Fixed bug in `bessel_yn` which caused incorrect overflow errors to be raised for negative ['n] (issue [@https://svn.boost.org/trac/boost/ticket/6367 #6367]).
+* Also fixed minor/cosmetic/configuration issues [@https://svn.boost.org/trac/boost/ticket/6120 #6120], [@https://svn.boost.org/trac/boost/ticket/6191 #6191],
+ [@https://svn.boost.org/trac/boost/ticket/5982 #5982], [@https://svn.boost.org/trac/boost/ticket/6130 #6130],
+ [@https://svn.boost.org/trac/boost/ticket/6234 #6234], [@https://svn.boost.org/trac/boost/ticket/6307 #6307],
+ [@https://svn.boost.org/trac/boost/ticket/6192 #6192].
 
 [h4 Boost-1.48]
 

Modified: branches/quickbook-dev/libs/math/doc/sf_and_dist/zeta.qbk
==============================================================================
--- branches/quickbook-dev/libs/math/doc/sf_and_dist/zeta.qbk (original)
+++ branches/quickbook-dev/libs/math/doc/sf_and_dist/zeta.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -87,12 +87,6 @@
 
 [equation zeta6]
 
-except when the argument is close to 1, where the globally convergent series:
-
-[equation zeta2]
-
-Is used.
-
 When the significand (mantissa) size is recognised
 (currently for 53, 64 and 113-bit reals, plus single-precision 24-bit handled via promotion to double)
 then a series of rational approximations [jm_rationals] are used.

Modified: branches/quickbook-dev/libs/math/test/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/math/test/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/math/test/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -57,22 +57,23 @@
     ;
 
 cpp-pch pch : pch.hpp : <use>../../test/build//boost_test_exec_monitor ;
+cpp-pch pch_light : pch_light.hpp : <use>../../test/build//boost_test_exec_monitor ;
 
 lib test_instances : float_test_instances.cpp double_test_instances.cpp ldouble_test_instances.cpp real_concept_test_instances.cpp pch
                    : <link>static ;
 
-run hypot_test.cpp pch ../../test/build//boost_test_exec_monitor ;
+run hypot_test.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor ;
 run pow_test.cpp ../../test/build//boost_test_exec_monitor ;
-run log1p_expm1_test.cpp pch ../../test/build//boost_test_exec_monitor ;
-run powm1_sqrtp1m1_test.cpp pch ../../test/build//boost_test_exec_monitor ;
+run log1p_expm1_test.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor ;
+run powm1_sqrtp1m1_test.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor ;
 run special_functions_test.cpp ../../test/build//boost_unit_test_framework/<link>static ;
 run test_bernoulli.cpp ../../test/build//boost_test_exec_monitor ;
 run test_constants.cpp pch ../../test/build//boost_test_exec_monitor ;
-run test_bessel_j.cpp pch ../../test/build//boost_test_exec_monitor ;
-run test_bessel_y.cpp pch ../../test/build//boost_test_exec_monitor ;
-run test_bessel_i.cpp pch ../../test/build//boost_test_exec_monitor ;
-run test_bessel_k.cpp pch ../../test/build//boost_test_exec_monitor ;
-run test_beta.cpp pch ../../test/build//boost_test_exec_monitor ;
+run test_bessel_j.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor ;
+run test_bessel_y.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor ;
+run test_bessel_i.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor ;
+run test_bessel_k.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor ;
+run test_beta.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor ;
 run test_beta_dist.cpp ../../test/build//boost_test_exec_monitor ;
 run test_binomial.cpp ../../test/build//boost_test_exec_monitor
         : # command line
@@ -152,29 +153,29 @@
               <toolset>intel:<pch>off
         : test_binomial_real_concept6 ;
 run test_binomial_coeff.cpp pch ../../test/build//boost_test_exec_monitor ;
-run test_carlson.cpp pch ../../test/build//boost_test_exec_monitor ;
+run test_carlson.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor ;
 run test_cauchy.cpp ../../test/build//boost_test_exec_monitor ;
-run test_cbrt.cpp pch ../../test/build//boost_test_exec_monitor ;
+run test_cbrt.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor ;
 run test_chi_squared.cpp ../../test/build//boost_test_exec_monitor ;
 run test_classify.cpp pch ../../test/build//boost_test_exec_monitor ;
-run test_digamma.cpp pch ../../test/build//boost_test_exec_monitor ;
+run test_digamma.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor ;
 run test_dist_overloads.cpp ../../test/build//boost_test_exec_monitor ;
-run test_ellint_1.cpp pch ../../test/build//boost_test_exec_monitor ;
-run test_ellint_2.cpp pch ../../test/build//boost_test_exec_monitor ;
-run test_ellint_3.cpp pch ../../test/build//boost_test_exec_monitor ;
-run test_erf.cpp pch ../../test/build//boost_test_exec_monitor ;
+run test_ellint_1.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor ;
+run test_ellint_2.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor ;
+run test_ellint_3.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor ;
+run test_erf.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor ;
 run test_error_handling.cpp ../../test/build//boost_test_exec_monitor ;
-run test_expint.cpp pch ../../test/build//boost_test_exec_monitor ;
+run test_expint.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor ;
 run test_exponential_dist.cpp ../../test/build//boost_test_exec_monitor ;
 run test_extreme_value.cpp ../../test/build//boost_test_exec_monitor ;
 run test_factorials.cpp pch ../../test/build//boost_test_exec_monitor ;
 run test_find_location.cpp pch ../../test/build//boost_test_exec_monitor ;
 run test_find_scale.cpp pch ../../test/build//boost_test_exec_monitor ;
 run test_fisher_f.cpp ../../test/build//boost_test_exec_monitor ;
-run test_gamma.cpp pch ../../test/build//boost_test_exec_monitor ;
+run test_gamma.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor ;
 run test_gamma_dist.cpp pch ../../test/build//boost_test_exec_monitor ;
 run test_geometric.cpp ../../test/build//boost_test_exec_monitor ;
-run test_hermite.cpp pch ../../test/build//boost_test_exec_monitor ;
+run test_hermite.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor ;
 run test_hypergeometric_dist.cpp ../../test/build//boost_test_exec_monitor
         : # command line
         : # input files
@@ -217,28 +218,28 @@
               <define>TEST_QUANT=5
               <toolset>intel:<pch>off
         : test_hypergeometric_dist5 ;
-run test_ibeta.cpp pch ../../test/build//boost_test_exec_monitor
+run test_ibeta.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor
         : # command line
         : # input files
         : # requirements
               <define>TEST_FLOAT
               <toolset>intel:<pch>off
         : test_ibeta_float ;
-run test_ibeta.cpp pch ../../test/build//boost_test_exec_monitor
+run test_ibeta.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor
         : # command line
         : # input files
         : # requirements
               <define>TEST_DOUBLE
               <toolset>intel:<pch>off
         : test_ibeta_double ;
-run test_ibeta.cpp pch ../../test/build//boost_test_exec_monitor
+run test_ibeta.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor
         : # command line
         : # input files
         : # requirements
               <define>TEST_LDOUBLE
               <toolset>intel:<pch>off
         : test_ibeta_long_double ;
-run test_ibeta.cpp pch ../../test/build//boost_test_exec_monitor
+run test_ibeta.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor
         : # command line
         : # input files
         : # requirements
@@ -246,7 +247,7 @@
               <define>TEST_DATA=1
               <toolset>intel:<pch>off
         : test_ibeta_real_concept1 ;
-run test_ibeta.cpp pch ../../test/build//boost_test_exec_monitor
+run test_ibeta.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor
         : # command line
         : # input files
         : # requirements
@@ -254,7 +255,7 @@
               <define>TEST_DATA=2
               <toolset>intel:<pch>off
         : test_ibeta_real_concept2 ;
-run test_ibeta.cpp pch ../../test/build//boost_test_exec_monitor
+run test_ibeta.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor
         : # command line
         : # input files
         : # requirements
@@ -262,7 +263,7 @@
               <define>TEST_DATA=3
               <toolset>intel:<pch>off
         : test_ibeta_real_concept3 ;
-run test_ibeta.cpp pch ../../test/build//boost_test_exec_monitor
+run test_ibeta.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor
         : # command line
         : # input files
         : # requirements
@@ -270,28 +271,28 @@
               <define>TEST_DATA=4
               <toolset>intel:<pch>off
         : test_ibeta_real_concept4 ;
-run test_ibeta_inv.cpp pch ../../test/build//boost_test_exec_monitor
+run test_ibeta_inv.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor
         : # command line
         : # input files
         : # requirements
               <define>TEST_FLOAT
               <toolset>intel:<pch>off
         : test_ibeta_inv_float ;
-run test_ibeta_inv.cpp pch ../../test/build//boost_test_exec_monitor
+run test_ibeta_inv.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor
         : # command line
         : # input files
         : # requirements
               <define>TEST_DOUBLE
               <toolset>intel:<pch>off
         : test_ibeta_inv_double ;
-run test_ibeta_inv.cpp pch ../../test/build//boost_test_exec_monitor
+run test_ibeta_inv.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor
         : # command line
         : # input files
         : # requirements
               <define>TEST_LDOUBLE
               <toolset>intel:<pch>off
         : test_ibeta_inv_long_double ;
-run test_ibeta_inv.cpp pch ../../test/build//boost_test_exec_monitor
+run test_ibeta_inv.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor
         : # command line
         : # input files
         : # requirements
@@ -299,7 +300,7 @@
               <define>TEST_DATA=1
               <toolset>intel:<pch>off
         : test_ibeta_inv_real_concept1 ;
-run test_ibeta_inv.cpp ../../test/build//boost_test_exec_monitor
+run test_ibeta_inv.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor
         : # command line
         : # input files
         : # requirements
@@ -307,7 +308,7 @@
               <define>TEST_DATA=2
               <toolset>intel:<pch>off
         : test_ibeta_inv_real_concept2 ;
-run test_ibeta_inv.cpp ../../test/build//boost_test_exec_monitor
+run test_ibeta_inv.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor
         : # command line
         : # input files
         : # requirements
@@ -315,7 +316,7 @@
               <define>TEST_DATA=3
               <toolset>intel:<pch>off
         : test_ibeta_inv_real_concept3 ;
-run test_ibeta_inv.cpp ../../test/build//boost_test_exec_monitor
+run test_ibeta_inv.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor
         : # command line
         : # input files
         : # requirements
@@ -323,28 +324,28 @@
               <define>TEST_DATA=4
               <toolset>intel:<pch>off
         : test_ibeta_inv_real_concept4 ;
-run test_ibeta_inv_ab.cpp pch ../../test/build//boost_test_exec_monitor
+run test_ibeta_inv_ab.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor
         : # command line
         : # input files
         : # requirements
               <define>TEST_FLOAT
               <toolset>intel:<pch>off
         : test_ibeta_inv_ab_float ;
-run test_ibeta_inv_ab.cpp pch ../../test/build//boost_test_exec_monitor
+run test_ibeta_inv_ab.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor
         : # command line
         : # input files
         : # requirements
               <define>TEST_DOUBLE
               <toolset>intel:<pch>off
         : test_ibeta_inv_ab_double ;
-run test_ibeta_inv_ab.cpp pch ../../test/build//boost_test_exec_monitor
+run test_ibeta_inv_ab.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor
         : # command line
         : # input files
         : # requirements
               <define>TEST_LDOUBLE
               <toolset>intel:<pch>off
         : test_ibeta_inv_ab_long_double ;
-run test_ibeta_inv_ab.cpp pch ../../test/build//boost_test_exec_monitor
+run test_ibeta_inv_ab.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor
         : # command line
         : # input files
         : # requirements
@@ -352,7 +353,7 @@
               <define>TEST_DATA=1
               <toolset>intel:<pch>off
         : test_ibeta_inv_ab_real_concept1 ;
-run test_ibeta_inv_ab.cpp ../../test/build//boost_test_exec_monitor
+run test_ibeta_inv_ab.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor
         : # command line
         : # input files
         : # requirements
@@ -360,7 +361,7 @@
               <define>TEST_DATA=2
               <toolset>intel:<pch>off
         : test_ibeta_inv_ab_real_concept2 ;
-run test_ibeta_inv_ab.cpp ../../test/build//boost_test_exec_monitor
+run test_ibeta_inv_ab.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor
         : # command line
         : # input files
         : # requirements
@@ -368,57 +369,57 @@
               <define>TEST_DATA=3
               <toolset>intel:<pch>off
         : test_ibeta_inv_ab_real_concept3 ;
-run test_igamma.cpp pch ../../test/build//boost_test_exec_monitor ;
-run test_igamma_inv.cpp pch ../../test/build//boost_test_exec_monitor
+run test_igamma.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor ;
+run test_igamma_inv.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor
         : # command line
         : # input files
         : # requirements
               <define>TEST_FLOAT
               <toolset>intel:<pch>off
         : test_igamma_inv_float ;
-run test_igamma_inv.cpp pch ../../test/build//boost_test_exec_monitor
+run test_igamma_inv.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor
         : # command line
         : # input files
         : # requirements
               <define>TEST_DOUBLE
               <toolset>intel:<pch>off
         : test_igamma_inv_double ;
-run test_igamma_inv.cpp pch ../../test/build//boost_test_exec_monitor
+run test_igamma_inv.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor
         : # command line
         : # input files
         : # requirements
               <define>TEST_LDOUBLE
               <toolset>intel:<pch>off
         : test_igamma_inv_long_double ;
-run test_igamma_inv.cpp pch ../../test/build//boost_test_exec_monitor
+run test_igamma_inv.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor
         : # command line
         : # input files
         : # requirements
               <define>TEST_REAL_CONCEPT
               <toolset>intel:<pch>off
         : test_igamma_inv_real_concept ;
-run test_igamma_inva.cpp pch ../../test/build//boost_test_exec_monitor
+run test_igamma_inva.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor
         : # command line
         : # input files
         : # requirements
               <define>TEST_FLOAT
               <toolset>intel:<pch>off
         : test_igamma_inva_float ;
-run test_igamma_inva.cpp pch ../../test/build//boost_test_exec_monitor
+run test_igamma_inva.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor
         : # command line
         : # input files
         : # requirements
               <define>TEST_DOUBLE
               <toolset>intel:<pch>off
         : test_igamma_inva_double ;
-run test_igamma_inva.cpp pch ../../test/build//boost_test_exec_monitor
+run test_igamma_inva.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor
         : # command line
         : # input files
         : # requirements
               <define>TEST_LDOUBLE
               <toolset>intel:<pch>off
         : test_igamma_inva_long_double ;
-run test_igamma_inva.cpp pch ../../test/build//boost_test_exec_monitor
+run test_igamma_inva.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor
         : # command line
         : # input files
         : # requirements
@@ -433,8 +434,8 @@
 
 run test_laplace.cpp ../../test/build//boost_unit_test_framework/<link>static ;
 run test_inv_hyp.cpp pch ../../test/build//boost_test_exec_monitor ;
-run test_laguerre.cpp pch ../../test/build//boost_test_exec_monitor ;
-run test_legendre.cpp pch ../../test/build//boost_test_exec_monitor ;
+run test_laguerre.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor ;
+run test_legendre.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor ;
 run test_logistic_dist.cpp ../../test/build//boost_test_exec_monitor ;
 run test_lognormal.cpp ../../test/build//boost_test_exec_monitor ;
 run test_minima.cpp pch ../../test/build//boost_test_exec_monitor ;
@@ -619,7 +620,7 @@
 run test_remez.cpp pch ../../test/build//boost_test_exec_monitor ;
 run test_roots.cpp pch ../../test/build//boost_test_exec_monitor ;
 run test_round.cpp pch ../../test/build//boost_test_exec_monitor ;
-run test_spherical_harmonic.cpp pch ../../test/build//boost_test_exec_monitor ;
+run test_spherical_harmonic.cpp test_instances pch_light ../../test/build//boost_test_exec_monitor ;
 run test_students_t.cpp ../../test/build//boost_test_exec_monitor ;
 run test_sign.cpp ../../test/build//boost_test_exec_monitor ;
 run test_tgamma_ratio.cpp pch ../../test/build//boost_test_exec_monitor ;
@@ -627,7 +628,7 @@
 run test_triangular.cpp pch ../../test/build//boost_test_exec_monitor ;
 run test_uniform.cpp pch ../../test/build//boost_test_exec_monitor ;
 run test_weibull.cpp ../../test/build//boost_test_exec_monitor ;
-run test_zeta.cpp test_instances ../../test/build//boost_test_exec_monitor ;
+run test_zeta.cpp test_instances ../../test/build//boost_test_exec_monitor pch_light ;
 
 run test_policy.cpp ../../test/build//boost_test_exec_monitor ;
 run test_policy_2.cpp ../../test/build//boost_test_exec_monitor ;

Modified: branches/quickbook-dev/libs/math/test/acosh_data.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/acosh_data.ipp (original)
+++ branches/quickbook-dev/libs/math/test/acosh_data.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -5,8 +5,8 @@
 // (See accompanying file LICENSE_1_0.txt
 // or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#define SC_(x) static_cast<T>(BOOST_JOIN(x, L))
- static const boost::array<boost::array<T, 2>, 261> acosh_data = {{
+#define SC_(x) static_cast<typename table_type<T>::type>(BOOST_JOIN(x, L))
+ static const boost::array<boost::array<typename table_type<T>::type, 2>, 261> acosh_data = {{
       {{ SC_(1.000001430511474609375), SC_(0.001691455665129294448190238354291760044433) }},
       {{ SC_(1.0000019073486328125), SC_(0.001953124689559275021527821917817027620963) }},
       {{ SC_(1.000007152557373046875), SC_(0.003782208044661295168504799813496158490314) }},

Modified: branches/quickbook-dev/libs/math/test/asinh_data.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/asinh_data.ipp (original)
+++ branches/quickbook-dev/libs/math/test/asinh_data.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -5,8 +5,8 @@
 // (See accompanying file LICENSE_1_0.txt
 // or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#define SC_(x) static_cast<T>(BOOST_JOIN(x, L))
- static const boost::array<boost::array<T, 2>, 281> asinh_data = {{
+#define SC_(x) static_cast<typename table_type<T>::type>(BOOST_JOIN(x, L))
+ static const boost::array<boost::array<typename table_type<T>::type, 2>, 281> asinh_data = {{
       {{ SC_(-497.181640625), SC_(-6.902103625349694816896128061929344488774) }},
       {{ SC_(-495.216552734375), SC_(-6.898143347143858285101511567975488446084) }},
       {{ SC_(-488.0980224609375), SC_(-6.883664481302669222996695409880306523751) }},

Modified: branches/quickbook-dev/libs/math/test/assoc_legendre_p.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/assoc_legendre_p.ipp (original)
+++ branches/quickbook-dev/libs/math/test/assoc_legendre_p.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
- static const boost::array<boost::array<T, 4>, 400> assoc_legendre_p = {{
+ static const boost::array<boost::array<typename table_type<T>::type, 4>, 400> assoc_legendre_p = {{
       {{ SC_(3.755727291107177734375), SC_(-3), SC_(0.264718532562255859375), SC_(0.018682285998021253444483874168352748715136623066073) }},
       {{ SC_(3.755727291107177734375), SC_(-3), SC_(0.67001712322235107421875), SC_(0.0085227010576716344744906184676725516467064196759033) }},
       {{ SC_(3.755727291107177734375), SC_(-3), SC_(0.91501367092132568359375), SC_(0.0013678553914178941694232605088191864494205442141689) }},

Modified: branches/quickbook-dev/libs/math/test/atanh_data.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/atanh_data.ipp (original)
+++ branches/quickbook-dev/libs/math/test/atanh_data.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -5,8 +5,8 @@
 // (See accompanying file LICENSE_1_0.txt
 // or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#define SC_(x) static_cast<T>(BOOST_JOIN(x, L))
- static const boost::array<boost::array<T, 2>, 260> atanh_data = {{
+#define SC_(x) static_cast<typename table_type<T>::type>(BOOST_JOIN(x, L))
+ static const boost::array<boost::array<typename table_type<T>::type, 2>, 260> atanh_data = {{
       {{ SC_(-0.9999983310699462890625), SC_(-6.998237084679026894944012639589359039154) }},
       {{ SC_(-0.9999978542327880859375), SC_(-6.872579751329170618373487147465365112113) }},
       {{ SC_(-0.999992847442626953125), SC_(-6.270592097465752658938563627507298840894) }},

Modified: branches/quickbook-dev/libs/math/test/bessel_i_data.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/bessel_i_data.ipp (original)
+++ branches/quickbook-dev/libs/math/test/bessel_i_data.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
- static const boost::array<boost::array<T, 3>, 225> bessel_i_data = {{
+ static const boost::array<boost::array<typename table_type<T>::type, 3>, 225> bessel_i_data = {{
       {{ SC_(-0.8049192047119140625e2), SC_(0.24750102996826171875e2), SC_(0.4186983670927603951456761016615805321694e29) }},
       {{ SC_(-0.8049192047119140625e2), SC_(0.637722015380859375e2), SC_(0.2032477564839492547710163141114983376107e7) }},
       {{ SC_(-0.7460263824462890625e2), SC_(0.24750102996826171875e2), SC_(0.7209773983625557491285409746913864781653e24) }},

Modified: branches/quickbook-dev/libs/math/test/bessel_i_int_data.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/bessel_i_int_data.ipp (original)
+++ branches/quickbook-dev/libs/math/test/bessel_i_int_data.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
- static const boost::array<boost::array<T, 3>, 495> bessel_i_int_data = {{
+ static const boost::array<boost::array<typename table_type<T>::type, 3>, 495> bessel_i_int_data = {{
       {{ SC_(0), SC_(0.177219114266335964202880859375e-2), SC_(0.1000000785165515654790765567976560128368e1) }},
       {{ SC_(0), SC_(0.22177286446094512939453125e-2), SC_(0.1000001229580463247166647265657459686513e1) }},
       {{ SC_(0), SC_(0.7444499991834163665771484375e-2), SC_(0.1000013855193023439561602999309818071557e1) }},

Modified: branches/quickbook-dev/libs/math/test/bessel_j_data.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/bessel_j_data.ipp (original)
+++ branches/quickbook-dev/libs/math/test/bessel_j_data.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
- static const boost::array<boost::array<T, 3>, 360> bessel_j_data = {{
+ static const boost::array<boost::array<typename table_type<T>::type, 3>, 360> bessel_j_data = {{
       {{ SC_(0.4430477856658399105072021484375e-3), SC_(0.553809732082299888134002685546875e-4), SC_(0.9956156809860747445801192500664050062602e0) }},
       {{ SC_(0.4430477856658399105072021484375e-3), SC_(0.69304020144045352935791015625e-4), SC_(0.9957146107589140226790508756099801328105e0) }},
       {{ SC_(0.4430477856658399105072021484375e-3), SC_(0.23264062474481761455535888671875e-3), SC_(0.9962489699005580621378590557841736186861e0) }},

Modified: branches/quickbook-dev/libs/math/test/bessel_j_int_data.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/bessel_j_int_data.ipp (original)
+++ branches/quickbook-dev/libs/math/test/bessel_j_int_data.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
- static const boost::array<boost::array<T, 3>, 224> bessel_j_int_data = {{
+ static const boost::array<boost::array<typename table_type<T>::type, 3>, 224> bessel_j_int_data = {{
       {{ SC_(0), SC_(0.1730655412757187150418758392333984375e-5), SC_(0.999999999999251207960573702716351702855e0) }},
       {{ SC_(0), SC_(0.216575062950141727924346923828125e-5), SC_(0.9999999999988273810527038974545295287162e0) }},
       {{ SC_(0), SC_(0.72700195232755504548549652099609375e-5), SC_(0.9999999999867867040328417323221266089012e0) }},

Modified: branches/quickbook-dev/libs/math/test/bessel_j_large_data.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/bessel_j_large_data.ipp (original)
+++ branches/quickbook-dev/libs/math/test/bessel_j_large_data.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
- static const boost::array<boost::array<T, 3>, 70> bessel_j_large_data = {{
+ static const boost::array<boost::array<typename table_type<T>::type, 3>, 70> bessel_j_large_data = {{
       {{ SC_(0.725889492034912109375e1), SC_(0.725889492034912109375e1), SC_(0.2307850131230964328215158373258970201933e0) }},
       {{ SC_(0.725889492034912109375e1), SC_(0.90838165283203125e1), SC_(0.331270090805281544869225081474258975783e0) }},
       {{ SC_(0.725889492034912109375e1), SC_(0.30492671966552734375e2), SC_(0.1392044369140870127137144436194280008198e0) }},

Modified: branches/quickbook-dev/libs/math/test/bessel_k_data.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/bessel_k_data.ipp (original)
+++ branches/quickbook-dev/libs/math/test/bessel_k_data.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
- static const boost::array<boost::array<T, 3>, 263> bessel_k_data = {{
+ static const boost::array<boost::array<typename table_type<T>::type, 3>, 263> bessel_k_data = {{
       {{ SC_(-0.8049192047119140625e2), SC_(0.24750102996826171875e2), SC_(0.6579017807810652710369517871806355927214e29) }},
       {{ SC_(-0.8049192047119140625e2), SC_(0.637722015380859375e2), SC_(0.2395518238062557960566710371847643552469e-8) }},
       {{ SC_(-0.8049192047119140625e2), SC_(0.1252804412841796875e3), SC_(0.3069043255911758700865294859650240330974e-44) }},

Modified: branches/quickbook-dev/libs/math/test/bessel_k_int_data.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/bessel_k_int_data.ipp (original)
+++ branches/quickbook-dev/libs/math/test/bessel_k_int_data.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -2,7 +2,7 @@
 // Use, modification and distribution are subject to the
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
- static const boost::array<boost::array<T, 3>, 481> bessel_k_int_data = {{
+ static const boost::array<boost::array<typename table_type<T>::type, 3>, 481> bessel_k_int_data = {{
       {{ SC_(0), SC_(0.177219114266335964202880859375e-2), SC_(0.6451475930592273598846015135698055330078e1) }},
       {{ SC_(0), SC_(0.22177286446094512939453125e-2), SC_(0.6227212142001190939808570915268231760654e1) }},
       {{ SC_(0), SC_(0.7444499991834163665771484375e-2), SC_(0.5016294646816679195434588077252051358532e1) }},

Modified: branches/quickbook-dev/libs/math/test/bessel_y01_data.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/bessel_y01_data.ipp (original)
+++ branches/quickbook-dev/libs/math/test/bessel_y01_data.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
- static const boost::array<boost::array<T, 3>, 100> bessel_y01_data = {{
+ static const boost::array<boost::array<typename table_type<T>::type, 3>, 100> bessel_y01_data = {{
       {{ SC_(0), SC_(0.23917420208454132080078125e0), SC_(-0.96144387845032600014206252125473909797e0) }},
       {{ SC_(0), SC_(0.1785583972930908203125e1), SC_(0.4741447443427281185149710186267060231689e0) }},
       {{ SC_(0), SC_(0.48770198822021484375e1), SC_(-0.2878028614684715596290259912770720755831e0) }},

Modified: branches/quickbook-dev/libs/math/test/bessel_yn_data.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/bessel_yn_data.ipp (original)
+++ branches/quickbook-dev/libs/math/test/bessel_yn_data.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
- static const boost::array<boost::array<T, 3>, 300> bessel_yn_data = {{
+ static const boost::array<boost::array<typename table_type<T>::type, 3>, 300> bessel_yn_data = {{
       {{ SC_(0.3e1), SC_(0.48770198822021484375e1), SC_(0.110763167474753768460862899966350902213e0) }},
       {{ SC_(0.3e1), SC_(0.6349340915679931640625e1), SC_(0.3354120577583840086404698897976135110485e0) }},
       {{ SC_(0.3e1), SC_(0.677385044097900390625e1), SC_(0.3025179709577162581120705977708622170952e0) }},

Modified: branches/quickbook-dev/libs/math/test/bessel_yv_data.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/bessel_yv_data.ipp (original)
+++ branches/quickbook-dev/libs/math/test/bessel_yv_data.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
- static const boost::array<boost::array<T, 3>, 432> bessel_yv_data = {{
+ static const boost::array<boost::array<typename table_type<T>::type, 3>, 432> bessel_yv_data = {{
       {{ SC_(0.177219114266335964202880859375e-2), SC_(0.177219114266335964202880859375e-2), SC_(-0.4109981080896677237358777348659577384814e1) }},
       {{ SC_(0.177219114266335964202880859375e-2), SC_(0.22177286446094512939453125e-2), SC_(-0.3967198166482792888587309535339999462266e1) }},
       {{ SC_(0.177219114266335964202880859375e-2), SC_(0.7444499991834163665771484375e-2), SC_(-0.3196174808457488271204616814902805588745e1) }},

Modified: branches/quickbook-dev/libs/math/test/beta_exp_data.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/beta_exp_data.ipp (original)
+++ branches/quickbook-dev/libs/math/test/beta_exp_data.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
- static const boost::array<boost::array<T, 3>, 351> beta_exp_data = { {
+ static const boost::array<boost::array<typename table_type<T>::type, 3>, 351> beta_exp_data = { {
       {{ SC_(0.1730655412757187150418758392333984375e-5), SC_(0.1730655412757187150418758392333984375e-5), SC_(1155631.551635027016649268884796909927277) }},
       {{ SC_(0.216575062950141727924346923828125e-5), SC_(0.1730655412757187150418758392333984375e-5), SC_(1039549.452063747329381617654200841254652) }},
       {{ SC_(0.216575062950141727924346923828125e-5), SC_(0.216575062950141727924346923828125e-5), SC_(923467.3524924676425690820378921903570447) }},

Modified: branches/quickbook-dev/libs/math/test/beta_med_data.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/beta_med_data.ipp (original)
+++ branches/quickbook-dev/libs/math/test/beta_med_data.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
- static const boost::array<boost::array<T, 3>, 1830> beta_med_data = { {
+ static const boost::array<boost::array<typename table_type<T>::type, 3>, 1830> beta_med_data = { {
       {{ SC_(0.4883005917072296142578125), SC_(0.4883005917072296142578125), SC_(3.245912809500479157065104747353807392371) }},
       {{ SC_(3.5808107852935791015625), SC_(0.4883005917072296142578125), SC_(1.007653173802923954909901438393379243537) }},
       {{ SC_(3.5808107852935791015625), SC_(3.5808107852935791015625), SC_(0.01354763979296020361276499134253466025558) }},

Modified: branches/quickbook-dev/libs/math/test/beta_small_data.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/beta_small_data.ipp (original)
+++ branches/quickbook-dev/libs/math/test/beta_small_data.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
- static const boost::array<boost::array<T, 3>, 21> beta_small_data = { {
+ static const boost::array<boost::array<typename table_type<T>::type, 3>, 21> beta_small_data = { {
       {{ SC_(0.1730655412757187150418758392333984375e-5), SC_(0.1730655412757187150418758392333984375e-5), SC_(1155631.551635027016649268884796909927277) }},
       {{ SC_(0.216575062950141727924346923828125e-5), SC_(0.1730655412757187150418758392333984375e-5), SC_(1039549.452063747329381617654200841254652) }},
       {{ SC_(0.216575062950141727924346923828125e-5), SC_(0.216575062950141727924346923828125e-5), SC_(923467.3524924676425690820378921903570447) }},

Modified: branches/quickbook-dev/libs/math/test/binomial_data.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/binomial_data.ipp (original)
+++ branches/quickbook-dev/libs/math/test/binomial_data.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
- static const boost::array<boost::array<T, 3>, 159> binomial_data = { {
+ static const boost::array<boost::array<typename table_type<T>::type, 3>, 159> binomial_data = { {
       {{ SC_(0.15e2), SC_(0.15e2), SC_(0.1e1) }},
       {{ SC_(0.19e2), SC_(0.15e2), SC_(0.3876e4) }},
       {{ SC_(0.19e2), SC_(0.19e2), SC_(0.1e1) }},

Modified: branches/quickbook-dev/libs/math/test/binomial_large_data.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/binomial_large_data.ipp (original)
+++ branches/quickbook-dev/libs/math/test/binomial_large_data.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
- static const boost::array<boost::array<T, 3>, 230> binomial_large_data = { {
+ static const boost::array<boost::array<typename table_type<T>::type, 3>, 230> binomial_large_data = { {
       {{ SC_(0.174e3), SC_(0.4e1), SC_(0.36890001e8) }},
       {{ SC_(0.174e3), SC_(0.5e1), SC_(0.1254260034e10) }},
       {{ SC_(0.174e3), SC_(0.6e1), SC_(0.35328324291e11) }},

Modified: branches/quickbook-dev/libs/math/test/binomial_quantile.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/binomial_quantile.ipp (original)
+++ branches/quickbook-dev/libs/math/test/binomial_quantile.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#define SC_(x) static_cast<T>(BOOST_JOIN(x, L))
+#define SC_(x) static_cast<typename table_type<T>::type>(BOOST_JOIN(x, L))
    static const boost::array<boost::array<T, 5>, 4032> binomial_quantile_data = {{
       {{ SC_(2), SC_(0.12698681652545928955078125), SC_(0.12698681652545928955078125), SC_(0), SC_(0.28467385230321224203411154382440248724380832183117) }},
       {{ SC_(2), SC_(0.12698681652545928955078125), SC_(0.135477006435394287109375), SC_(0), SC_(0.25727865882740919932840773421531232758964168093055) }},

Modified: branches/quickbook-dev/libs/math/test/cbrt_data.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/cbrt_data.ipp (original)
+++ branches/quickbook-dev/libs/math/test/cbrt_data.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
- static const boost::array<boost::array<T, 2>, 85> cbrt_data = { {
+ static const boost::array<boost::array<typename table_type<T>::type, 2>, 85> cbrt_data = { {
       {{ SC_(0.266297021326439287136622624529991298914e-12), SC_(0.1888421455001568264216782004847867296461e-37) }},
       {{ SC_(0.5920415525016708979677559909760020673275e-12), SC_(0.2075183790343685754527643464587844863336e-36) }},
       {{ SC_(0.155163989296047688526414276566356420517e-11), SC_(0.3735707037930203997047439019589434984292e-35) }},

Modified: branches/quickbook-dev/libs/math/test/digamma_data.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/digamma_data.ipp (original)
+++ branches/quickbook-dev/libs/math/test/digamma_data.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
- static const boost::array<boost::array<T, 2>, 500> digamma_data = { {
+ static const boost::array<boost::array<typename table_type<T>::type, 2>, 500> digamma_data = { {
       {{ SC_(2.818432331085205078125), SC_(0.8484115700906551606307984398000472347785) }},
       {{ SC_(4.6342258453369140625), SC_(1.421713669467331557347601964119226105014) }},
       {{ SC_(4.783483982086181640625), SC_(1.457016504476551729585831562031964212238) }},

Modified: branches/quickbook-dev/libs/math/test/digamma_neg_data.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/digamma_neg_data.ipp (original)
+++ branches/quickbook-dev/libs/math/test/digamma_neg_data.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
- static const boost::array<boost::array<T, 2>, 200> digamma_neg_data = { {
+ static const boost::array<boost::array<typename table_type<T>::type, 2>, 200> digamma_neg_data = { {
       {{ SC_(-99.7181549072265625), SC_(2.03892909952497242038694056382195623059) }},
       {{ SC_(-99.5216522216796875), SC_(4.3913617771941913117971009646096341326) }},
       {{ SC_(-98.80979156494140625), SC_(-0.01795976054399933340057713377738267488686) }},

Modified: branches/quickbook-dev/libs/math/test/digamma_root_data.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/digamma_root_data.ipp (original)
+++ branches/quickbook-dev/libs/math/test/digamma_root_data.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
- static const boost::array<boost::array<T, 2>, 200> digamma_root_data = { {
+ static const boost::array<boost::array<typename table_type<T>::type, 2>, 200> digamma_root_data = { {
       {{ SC_(1.39999997615814208984375), SC_(-0.06138456903152256550686860248931989075643) }},
       {{ SC_(1.4005000591278076171875), SC_(-0.06087192929516339380130503872301167293378) }},
       {{ SC_(1.40100002288818359375), SC_(-0.06035965880979232302674791723368356347747) }},

Modified: branches/quickbook-dev/libs/math/test/digamma_small_data.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/digamma_small_data.ipp (original)
+++ branches/quickbook-dev/libs/math/test/digamma_small_data.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
- static const boost::array<boost::array<T, 2>, 33> digamma_small_data = { {
+ static const boost::array<boost::array<typename table_type<T>::type, 2>, 33> digamma_small_data = { {
       {{ SC_(0.1690093176520690576580818742513656616211e-8), SC_(-591683355.0172646248558707395909205014789) }},
       {{ SC_(0.2114990849122477811761200428009033203125e-8), SC_(-472815285.0570071002693788265718597340393) }},
       {{ SC_(0.7099628440698779741069301962852478027344e-8), SC_(-140852442.1314070676912450420112690472767) }},

Modified: branches/quickbook-dev/libs/math/test/ellint_e2_data.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/ellint_e2_data.ipp (original)
+++ branches/quickbook-dev/libs/math/test/ellint_e2_data.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -7,7 +7,7 @@
 //
 // k, phi, E(k, phi)
 //
- static const boost::array<boost::array<T, 3>, 520> ellint_e2_data = {{
+ static const boost::array<boost::array<typename table_type<T>::type, 3>, 520> ellint_e2_data = {{
       {{ SC_(0.177219114266335964202880859375e-2), SC_(-0.804919183254241943359375e0), SC_(0.17721905416489978459933452744691987573693030723399e-2) }},
       {{ SC_(0.177219114266335964202880859375e-2), SC_(-0.74602639675140380859375e0), SC_(0.17721906263793616232304803862551613935165980878975e-2) }},
       {{ SC_(0.177219114266335964202880859375e-2), SC_(-0.72904598712921142578125e0), SC_(0.17721906496143189532808590572077500756745196250994e-2) }},

Modified: branches/quickbook-dev/libs/math/test/ellint_e_data.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/ellint_e_data.ipp (original)
+++ branches/quickbook-dev/libs/math/test/ellint_e_data.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -7,7 +7,7 @@
 //
 // k, E(k)
 //
- static const boost::array<boost::array<T, 2>, 100> ellint_e_data = {{
+ static const boost::array<boost::array<typename table_type<T>::type, 2>, 100> ellint_e_data = {{
       {{ SC_(-0.990433037281036376953125e0), SC_(0.10274527688571687030049782227296053357094496206279e1) }},
       {{ SC_(-0.936334311962127685546875e0), SC_(0.11232874555917022066938321555637623562213676975972e1) }},
       {{ SC_(-0.931107819080352783203125e0), SC_(0.1130760221755419903369153157619439589360779303926e1) }},

Modified: branches/quickbook-dev/libs/math/test/ellint_f_data.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/ellint_f_data.ipp (original)
+++ branches/quickbook-dev/libs/math/test/ellint_f_data.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -8,7 +8,7 @@
 //
 // phi, k, ellint_1(k, phi)
 //
- static const boost::array<boost::array<T, 3>, 610> ellint_f_data = {{
+ static const boost::array<boost::array<typename table_type<T>::type, 3>, 610> ellint_f_data = {{
       {{ SC_(0.177219114266335964202880859375e-2), SC_(0.12698681652545928955078125e0), SC_(0.17721911576221833285284471505772299979929420100157e-2) }},
       {{ SC_(0.177219114266335964202880859375e-2), SC_(0.135477006435394287109375e0), SC_(0.17721911596893097495385621130075639520810631802367e-2) }},
       {{ SC_(0.177219114266335964202880859375e-2), SC_(0.22103404998779296875e0), SC_(0.17721911879842626333735727252300568988042608181058e-2) }},

Modified: branches/quickbook-dev/libs/math/test/ellint_k_data.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/ellint_k_data.ipp (original)
+++ branches/quickbook-dev/libs/math/test/ellint_k_data.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
- static const boost::array<boost::array<T, 2>, 100> ellint_k_data = {{
+ static const boost::array<boost::array<typename table_type<T>::type, 2>, 100> ellint_k_data = {{
       {{ SC_(-0.99042308330535888671875e0), SC_(0.3377711175347896212115917173531827081735908096628e1) }},
       {{ SC_(-0.936324596405029296875e0), SC_(0.24799928378892127263868582279024816073017669022263e1) }},
       {{ SC_(-0.931098163127899169921875e0), SC_(0.24445366497109921574142184681825951967450363552834e1) }},

Modified: branches/quickbook-dev/libs/math/test/ellint_pi2_data.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/ellint_pi2_data.ipp (original)
+++ branches/quickbook-dev/libs/math/test/ellint_pi2_data.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -7,7 +7,7 @@
 //
 // n, k, PI(n, k)
 //
- static const boost::array<boost::array<T, 3>, 500> ellint_pi2_data = {{
+ static const boost::array<boost::array<typename table_type<T>::type, 3>, 500> ellint_pi2_data = {{
       {{ SC_(-0.871743316650390625e2), SC_(0.12698681652545928955078125e0), SC_(0.1674125184786922275852201144520277497358358213892e0) }},
       {{ SC_(-0.871743316650390625e2), SC_(0.135477006435394287109375e0), SC_(0.16743071541243053183466547814319460702264753849723e0) }},
       {{ SC_(-0.871743316650390625e2), SC_(0.22103404998779296875e0), SC_(0.16768328087467940131221559947745677007068360020936e0) }},

Modified: branches/quickbook-dev/libs/math/test/ellint_pi3_data.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/ellint_pi3_data.ipp (original)
+++ branches/quickbook-dev/libs/math/test/ellint_pi3_data.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -7,7 +7,7 @@
 //
 // n, phi, k, PI(n, phi, k)
 //
- static const boost::array<boost::array<T, 4>, 400> ellint_pi3_data = {{
+ static const boost::array<boost::array<typename table_type<T>::type, 4>, 400> ellint_pi3_data = {{
       {{ SC_(0.97540400922298431396484375e-1), SC_(0.15321610867977142333984375e0), SC_(0.814723670482635498046875e0), SC_(0.15373203842748125370338546651780574888816846402842e0) }},
       {{ SC_(0.97540400922298431396484375e-1), SC_(0.1994704306125640869140625e0), SC_(0.135477006435394287109375e0), SC_(0.19975117232566753482238350513231879856319046077755e0) }},
       {{ SC_(0.97540400922298431396484375e-1), SC_(0.2128067910671234130859375e0), SC_(0.905791938304901123046875e0), SC_(0.21444962146028791552496083456124507126701014421723e0) }},

Modified: branches/quickbook-dev/libs/math/test/ellint_pi3_large_data.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/ellint_pi3_large_data.ipp (original)
+++ branches/quickbook-dev/libs/math/test/ellint_pi3_large_data.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -7,7 +7,7 @@
 //
 // n, phi, k, PI(n, phi, k)
 //
- static const boost::array<boost::array<T, 4>, 380> ellint_pi3_large_data = {{
+ static const boost::array<boost::array<typename table_type<T>::type, 4>, 380> ellint_pi3_large_data = {{
       {{ SC_(-0.882951507568359375e2), SC_(-0.80491924285888671875e1), SC_(0.814723670482635498046875e0), SC_(-0.87472421400728425336727040442604900083192977041785e0) }},
       {{ SC_(-0.882951507568359375e2), SC_(-0.7460263729095458984375e1), SC_(0.135477006435394287109375e0), SC_(-0.82718880423302271609361236805097048706326618138613e0) }},
       {{ SC_(-0.882951507568359375e2), SC_(-0.729045963287353515625e1), SC_(0.905791938304901123046875e0), SC_(-0.87747551276758882959544200152954525505618423971659e0) }},

Modified: branches/quickbook-dev/libs/math/test/ellint_rc_data.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/ellint_rc_data.ipp (original)
+++ branches/quickbook-dev/libs/math/test/ellint_rc_data.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -7,7 +7,7 @@
 //
 // x, y, RC(x, y)
 //
- static const boost::array<boost::array<T, 3>, 201> ellint_rc_data = {{
+ static const boost::array<boost::array<typename table_type<T>::type, 3>, 201> ellint_rc_data = {{
       {{ SC_(0.11698430441812742785454260394458960094979845402414e-30), SC_(0.1429457475085533184e20), SC_(0.41546482167023371731518451342517736095263780557582e-9) }},
       {{ SC_(0.60682196926171104626767727515008970841312337712241e-30), SC_(0.20031258624e11), SC_(0.11098537606275153066313383027431717728910787699004e-4) }},
       {{ SC_(0.75974287571611502022633594876763844865744160884209e-30), SC_(0.20657736771171195551744e23), SC_(0.10928951720653730370271800759007590309935803177545e-10) }},

Modified: branches/quickbook-dev/libs/math/test/ellint_rd_data.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/ellint_rd_data.ipp (original)
+++ branches/quickbook-dev/libs/math/test/ellint_rd_data.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -7,7 +7,7 @@
 //
 // x, y, z, RD(x, y, z)
 //
- static const boost::array<boost::array<T, 4>, 201> ellint_rd_data = {{
+ static const boost::array<boost::array<typename table_type<T>::type, 4>, 201> ellint_rd_data = {{
       {{ SC_(0.60682196926171104626767727515008970841312337712241e-30), SC_(0.20031258624e11), SC_(0.10313978271484375e4), SC_(0.20551372495384815463856604017047221545095240191057e-7) }},
       {{ SC_(0.13810928266794127506964991575307193802925529863273e-29), SC_(0.2529551275074481964111328125e-3), SC_(0.7030536597341097149183042347431182861328125e-8), SC_(0.26827491422802771467722943731540343461246213838861e11) }},
       {{ SC_(0.44767214645416419053919245787147718165594030426536e-29), SC_(0.26553176031232e14), SC_(0.2085586588137791946752e23), SC_(0.10585138723496739834534066073267118675522211779171e-31) }},

Modified: branches/quickbook-dev/libs/math/test/ellint_rf_data.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/ellint_rf_data.ipp (original)
+++ branches/quickbook-dev/libs/math/test/ellint_rf_data.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -7,7 +7,7 @@
 //
 // x, y, z, RF(x, y, z)
 //
- static const boost::array<boost::array<T, 4>, 401> ellint_rf_data = {{
+ static const boost::array<boost::array<typename table_type<T>::type, 4>, 401> ellint_rf_data = {{
       {{ SC_(0.60682196926171104626767727515008970841312337712241e-30), SC_(0.20031258624e11), SC_(0.10313978271484375e4), SC_(0.69081557947567857896297308369623231790841946303168e-4) }},
       {{ SC_(0.13810928266794127506964991575307193802925529863273e-29), SC_(0.2529551275074481964111328125e-3), SC_(0.7030536597341097149183042347431182861328125e-8), SC_(0.41696748464385961137940994051143282877208328256968e3) }},
       {{ SC_(0.14532352659780781796355564562931230420316401288775e-29), SC_(0.62687453931329231730011467674071804187172354186889e-30), SC_(0.26256847716031594952568184453411959111690521240234e-12), SC_(0.40492940437281068910143789937423107620726714449588e8) }},

Modified: branches/quickbook-dev/libs/math/test/ellint_rj_data.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/ellint_rj_data.ipp (original)
+++ branches/quickbook-dev/libs/math/test/ellint_rj_data.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -7,7 +7,7 @@
 //
 // x, y, z, p, RF(x, y, z, p)
 //
- static const boost::array<boost::array<T, 5>, 801> ellint_rj_data = {{
+ static const boost::array<boost::array<typename table_type<T>::type, 5>, 801> ellint_rj_data = {{
       {{ SC_(0.17778719640226356167347852945229440308832650104108e-30), SC_(0.140657017848070144e19), SC_(0.1004598712921142578125e2), SC_(-0.482979822802320768460049293935298919677734375e-9), SC_(-0.25179478604244669733973586875090503552089558764187e-9) }},
       {{ SC_(0.17971096343704528451751984491965084147481741634467e-30), SC_(0.89101844176293009628514463216220065078232437372208e-17), SC_(0.83764338663550372334498751058362691151424505491344e-28), SC_(0.25525904358368192101317869568e29), SC_(0.55264196567924337745014728862252651162552511364961e-18) }},
       {{ SC_(0.3374483874642825322028299383742755000492569610633e-30), SC_(0.46577155087788907954176e23), SC_(0.46983051300048828125e0), SC_(-0.4337557424349824941600672900676727294921875e-8), SC_(-0.29586494691174345632763961304004697052773087913144e-10) }},

Modified: branches/quickbook-dev/libs/math/test/erf_data.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/erf_data.ipp (original)
+++ branches/quickbook-dev/libs/math/test/erf_data.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
- static const boost::array<boost::array<T, 3>, 500> erf_data = { {
+ static const boost::array<boost::array<typename table_type<T>::type, 3>, 500> erf_data = { {
       {{ SC_(-7.954905033111572265625), SC_(-0.9999999999999999999999999999768236114552), SC_(1.999999999999999999999999999976823611455) }},
       {{ SC_(-7.925852298736572265625), SC_(-0.9999999999999999999999999999631035087875), SC_(1.999999999999999999999999999963103508787) }},
       {{ SC_(-7.923464298248291015625), SC_(-0.9999999999999999999999999999616689085769), SC_(1.999999999999999999999999999961668908577) }},

Modified: branches/quickbook-dev/libs/math/test/erf_inv_data.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/erf_inv_data.ipp (original)
+++ branches/quickbook-dev/libs/math/test/erf_inv_data.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
- static const boost::array<boost::array<T, 2>, 100> erf_inv_data = { {
+ static const boost::array<boost::array<typename table_type<T>::type, 2>, 100> erf_inv_data = { {
       {{ SC_(-0.990433037281036376953125), SC_(-1.832184533179510927322805923563700329767) }},
       {{ SC_(-0.936334311962127685546875), SC_(-1.311339282092737086640055105484822812599) }},
       {{ SC_(-0.931107819080352783203125), SC_(-1.286316461685184857889337272829270644576) }},

Modified: branches/quickbook-dev/libs/math/test/erf_large_data.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/erf_large_data.ipp (original)
+++ branches/quickbook-dev/libs/math/test/erf_large_data.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
- static const boost::array<boost::array<T, 3>, 300> erf_large_data = { {
+ static const boost::array<boost::array<typename table_type<T>::type, 3>, 300> erf_large_data = { {
       {{ SC_(8.2311115264892578125), SC_(0.9999999999999999999999999999997436415644), SC_(0.2563584356432915693836191701249115171878e-30) }},
       {{ SC_(8.3800067901611328125), SC_(0.9999999999999999999999999999999787664373), SC_(0.212335626810981756102114466368867764939e-31) }},
       {{ SC_(8.39224529266357421875), SC_(0.9999999999999999999999999999999827316301), SC_(0.1726836993826464997300336080711750877816e-31) }},

Modified: branches/quickbook-dev/libs/math/test/erf_small_data.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/erf_small_data.ipp (original)
+++ branches/quickbook-dev/libs/math/test/erf_small_data.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
- static const boost::array<boost::array<T, 3>, 150> erf_small_data = { {
+ static const boost::array<boost::array<typename table_type<T>::type, 3>, 150> erf_small_data = { {
       {{ SC_(0), SC_(0), SC_(1) }},
       {{ SC_(0.140129846432481707092372958328991613128e-44), SC_(0.1581195994027057927040695988659415347357e-44), SC_(1) }},
       {{ SC_(0.2802596928649634141847459166579832262561e-44), SC_(0.3162391988054115854081391977318830694715e-44), SC_(1) }},

Modified: branches/quickbook-dev/libs/math/test/erfc_inv_big_data.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/erfc_inv_big_data.ipp (original)
+++ branches/quickbook-dev/libs/math/test/erfc_inv_big_data.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
- static const boost::array<boost::array<T, 2>, 200> erfc_inv_big_data = { {
+ static const boost::array<boost::array<typename table_type<T>::type, 2>, 200> erfc_inv_big_data = { {
       {{ SC_(0.5460825444184401149953083908674803067585e-4312), SC_(99.62016927389407649911084501709563799849) }},
       {{ SC_(0.2645475979732877501542006305722535728925e-4291), SC_(99.38083815930157675670279543643240126733) }},
       {{ SC_(0.4647218972549971591905525747707221131215e-4281), SC_(99.26209205835381203650501813598769577392) }},

Modified: branches/quickbook-dev/libs/math/test/erfc_inv_data.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/erfc_inv_data.ipp (original)
+++ branches/quickbook-dev/libs/math/test/erfc_inv_data.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
- static const boost::array<boost::array<T, 2>, 100> erfc_inv_data = { {
+ static const boost::array<boost::array<typename table_type<T>::type, 2>, 100> erfc_inv_data = { {
       {{ SC_(0.00956696830689907073974609375), SC_(1.832184391051582711731256541599359331735) }},
       {{ SC_(0.063665688037872314453125), SC_(1.311339282092737086640055105484822812599) }},
       {{ SC_(0.068892158567905426025390625), SC_(1.286316565305373898738127895195338854718) }},

Modified: branches/quickbook-dev/libs/math/test/expint_1_data.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/expint_1_data.ipp (original)
+++ branches/quickbook-dev/libs/math/test/expint_1_data.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
- static const boost::array<boost::array<T, 3>, 79> expint_1_data = {{
+ static const boost::array<boost::array<typename table_type<T>::type, 3>, 79> expint_1_data = {{
       {{ SC_(1), SC_(0.1690093176520690576580818742513656616211e-8), SC_(19.62126651228390287899433646349668926594) }},
       {{ SC_(1), SC_(0.2114990849122477811761200428009033203125e-8), SC_(19.39699968832702671432639506875262488287) }},
       {{ SC_(1), SC_(0.7099628440698779741069301962852478027344e-8), SC_(18.18600772876256587669156181753338435097) }},

Modified: branches/quickbook-dev/libs/math/test/expint_data.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/expint_data.ipp (original)
+++ branches/quickbook-dev/libs/math/test/expint_data.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
- static const boost::array<boost::array<T, 3>, 600> expint_data = {{
+ static const boost::array<boost::array<typename table_type<T>::type, 3>, 600> expint_data = {{
       {{ SC_(0), SC_(4.8770198822021484375), SC_(0.001562365538135970995717852896857631808327) }},
       {{ SC_(0), SC_(5.4930877685546875), SC_(0.0007491447757702025944722131745633334937684) }},
       {{ SC_(0), SC_(6.349340915679931640625), SC_(0.0002752882216582873387067996572122917865872) }},

Modified: branches/quickbook-dev/libs/math/test/expint_small_data.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/expint_small_data.ipp (original)
+++ branches/quickbook-dev/libs/math/test/expint_small_data.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
- static const boost::array<boost::array<T, 3>, 380> expint_small_data = {{
+ static const boost::array<boost::array<typename table_type<T>::type, 3>, 380> expint_small_data = {{
       {{ SC_(0), SC_(0.1730655412757187150418758392333984375e-5), SC_(577814.7758212256423775256378551874856003) }},
       {{ SC_(0), SC_(0.216575062950141727924346923828125e-5), SC_(461732.6762508792015318981937822200350918) }},
       {{ SC_(0), SC_(0.72700195232755504548549652099609375e-5), SC_(137550.2124589000541443257494936989244997) }},

Modified: branches/quickbook-dev/libs/math/test/expinti_data.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/expinti_data.ipp (original)
+++ branches/quickbook-dev/libs/math/test/expinti_data.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
- static const boost::array<boost::array<T, 2>, 336> expinti_data = {{
+ static const boost::array<boost::array<typename table_type<T>::type, 2>, 336> expinti_data = {{
       {{ SC_(-49.689971923828125), SC_(-0.5189914452467706181911213069148082266893e-23) }},
       {{ SC_(-49.490234375), SC_(-0.6362401135264284153452455085506782750647e-23) }},
       {{ SC_(-49.47381591796875), SC_(-0.6469829627301154800340680350229540167762e-23) }},

Modified: branches/quickbook-dev/libs/math/test/expinti_data_double.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/expinti_data_double.ipp (original)
+++ branches/quickbook-dev/libs/math/test/expinti_data_double.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
- static const boost::array<boost::array<T, 2>, 100> expinti_data_double = {{
+ static const boost::array<boost::array<typename table_type<T>::type, 2>, 100> expinti_data_double = {{
       {{ SC_(102.87009429931640625), SC_(4654899469800805764672952463660041015404000.0) }},
       {{ SC_(119.09970855712890625), SC_(0.4488787864805080932333174640972770490538e50) }},
       {{ SC_(120.6676483154296875), SC_(0.2124946028694675872596376925084081671409e51) }},

Modified: branches/quickbook-dev/libs/math/test/expinti_data_long.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/expinti_data_long.ipp (original)
+++ branches/quickbook-dev/libs/math/test/expinti_data_long.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
- static const boost::array<boost::array<T, 2>, 100> expinti_data_long = {{
+ static const boost::array<boost::array<typename table_type<T>::type, 2>, 100> expinti_data_long = {{
       {{ SC_(850.51361083984375), SC_(0.27809823533792637952061836944224670902e367) }},
       {{ SC_(1136.15478515625), SC_(0.2348005093803919554840423708437417479629e491) }},
       {{ SC_(1163.7506103515625), SC_(0.2213003663371766101124862788858798209669e503) }},

Modified: branches/quickbook-dev/libs/math/test/functor.hpp
==============================================================================
--- branches/quickbook-dev/libs/math/test/functor.hpp (original)
+++ branches/quickbook-dev/libs/math/test/functor.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -9,12 +9,13 @@
 #ifndef BOOST_MATH_TEST_FUNCTOR_HPP
 #define BOOST_MATH_TEST_FUNCTOR_HPP
 
+template <class Real>
 struct extract_result_type
 {
    extract_result_type(unsigned i) : m_location(i){}
 
    template <class S>
- typename S::value_type operator()(const S& row)
+ Real operator()(const S& row)
    {
       return row[m_location];
    }
@@ -22,18 +23,19 @@
    unsigned m_location;
 };
 
-inline extract_result_type extract_result(unsigned i)
+template <class Real>
+inline extract_result_type<Real> extract_result(unsigned i)
 {
- return extract_result_type(i);
+ return extract_result_type<Real>(i);
 }
 
-template <class F>
+template <class Real, class F>
 struct row_binder1
 {
    row_binder1(F _f, unsigned i) : f(_f), m_i(i) {}
 
    template <class S>
- typename S::value_type operator()(const S& row)
+ Real operator()(const S& row)
    {
       return f(row[m_i]);
    }
@@ -43,19 +45,19 @@
    unsigned m_i;
 };
 
-template<class F>
-inline row_binder1<F> bind_func(F f, unsigned i)
+template<class Real, class F>
+inline row_binder1<Real, F> bind_func(F f, unsigned i)
 {
- return row_binder1<F>(f, i);
+ return row_binder1<Real, F>(f, i);
 }
 
-template <class F>
+template <class Real, class F>
 struct row_binder2
 {
    row_binder2(F _f, unsigned i, unsigned j) : f(_f), m_i(i), m_j(j) {}
 
    template <class S>
- typename S::value_type operator()(const S& row)
+ Real operator()(const S& row)
    {
       return f(row[m_i], row[m_j]);
    }
@@ -65,19 +67,19 @@
    unsigned m_i, m_j;
 };
 
-template<class F>
-inline row_binder2<F> bind_func(F f, unsigned i, unsigned j)
+template<class Real, class F>
+inline row_binder2<Real, F> bind_func(F f, unsigned i, unsigned j)
 {
- return row_binder2<F>(f, i, j);
+ return row_binder2<Real, F>(f, i, j);
 }
 
-template <class F>
+template <class Real, class F>
 struct row_binder3
 {
    row_binder3(F _f, unsigned i, unsigned j, unsigned k) : f(_f), m_i(i), m_j(j), m_k(k) {}
 
    template <class S>
- typename S::value_type operator()(const S& row)
+ Real operator()(const S& row)
    {
       return f(row[m_i], row[m_j], row[m_k]);
    }
@@ -87,19 +89,19 @@
    unsigned m_i, m_j, m_k;
 };
 
-template<class F>
-inline row_binder3<F> bind_func(F f, unsigned i, unsigned j, unsigned k)
+template<class Real, class F>
+inline row_binder3<Real, F> bind_func(F f, unsigned i, unsigned j, unsigned k)
 {
- return row_binder3<F>(f, i, j, k);
+ return row_binder3<Real, F>(f, i, j, k);
 }
 
-template <class F>
+template <class Real, class F>
 struct row_binder4
 {
    row_binder4(F _f, unsigned i, unsigned j, unsigned k, unsigned l) : f(_f), m_i(i), m_j(j), m_k(k), m_l(l) {}
 
    template <class S>
- typename S::value_type operator()(const S& row)
+ Real operator()(const S& row)
    {
       return f(row[m_i], row[m_j], row[m_k], row[m_l]);
    }
@@ -109,21 +111,21 @@
    unsigned m_i, m_j, m_k, m_l;
 };
 
-template<class F>
-inline row_binder4<F> bind_func(F f, unsigned i, unsigned j, unsigned k, unsigned l)
+template<class Real, class F>
+inline row_binder4<Real, F> bind_func(F f, unsigned i, unsigned j, unsigned k, unsigned l)
 {
- return row_binder4<F>(f, i, j, k, l);
+ return row_binder4<Real, F>(f, i, j, k, l);
 }
 
-template <class F>
+template <class Real, class F>
 struct row_binder2_i1
 {
    row_binder2_i1(F _f, unsigned i, unsigned j) : f(_f), m_i(i), m_j(j) {}
 
    template <class S>
- typename S::value_type operator()(const S& row)
+ Real operator()(const S& row)
    {
- return f(boost::math::itrunc(row[m_i]), row[m_j]);
+ return f(boost::math::itrunc(Real(row[m_i])), row[m_j]);
    }
 
 private:
@@ -131,23 +133,23 @@
    unsigned m_i, m_j;
 };
 
-template<class F>
-inline row_binder2_i1<F> bind_func_int1(F f, unsigned i, unsigned j)
+template<class Real, class F>
+inline row_binder2_i1<Real, F> bind_func_int1(F f, unsigned i, unsigned j)
 {
- return row_binder2_i1<F>(f, i, j);
+ return row_binder2_i1<Real, F>(f, i, j);
 }
 
-template <class F>
+template <class Real, class F>
 struct row_binder3_i2
 {
    row_binder3_i2(F _f, unsigned i, unsigned j, unsigned k) : f(_f), m_i(i), m_j(j), m_k(k) {}
 
    template <class S>
- typename S::value_type operator()(const S& row)
+ Real operator()(const S& row)
    {
       return f(
- boost::math::itrunc(row[m_i]),
- boost::math::itrunc(row[m_j]),
+ boost::math::itrunc(Real(row[m_i])),
+ boost::math::itrunc(Real(row[m_j])),
          row[m_k]);
    }
 
@@ -156,23 +158,23 @@
    unsigned m_i, m_j, m_k;
 };
 
-template<class F>
-inline row_binder3_i2<F> bind_func_int2(F f, unsigned i, unsigned j, unsigned k)
+template<class Real, class F>
+inline row_binder3_i2<Real, F> bind_func_int2(F f, unsigned i, unsigned j, unsigned k)
 {
- return row_binder3_i2<F>(f, i, j, k);
+ return row_binder3_i2<Real, F>(f, i, j, k);
 }
 
-template <class F>
+template <class Real, class F>
 struct row_binder4_i2
 {
    row_binder4_i2(F _f, unsigned i, unsigned j, unsigned k, unsigned l) : f(_f), m_i(i), m_j(j), m_k(k), m_l(l) {}
 
    template <class S>
- typename S::value_type operator()(const S& row)
+ Real operator()(const S& row)
    {
       return f(
- boost::math::itrunc(row[m_i]),
- boost::math::itrunc(row[m_j]),
+ boost::math::itrunc(Real(row[m_i])),
+ boost::math::itrunc(Real(row[m_j])),
          row[m_k],
          row[m_l]);
    }
@@ -182,30 +184,30 @@
    unsigned m_i, m_j, m_k, m_l;
 };
 
-template<class F>
-inline row_binder4_i2<F> bind_func_int2(F f, unsigned i, unsigned j, unsigned k, unsigned l)
+template<class Real, class F>
+inline row_binder4_i2<Real, F> bind_func_int2(F f, unsigned i, unsigned j, unsigned k, unsigned l)
 {
- return row_binder4_i2<F>(f, i, j, k, l);
+ return row_binder4_i2<Real, F>(f, i, j, k, l);
 }
 
-template <class F>
+template <class Real, class F>
 struct negate_type
 {
    negate_type(F f) : m_f(f){}
 
    template <class S>
- typename S::value_type operator()(const S& row)
+ Real operator()(const S& row)
    {
- return -m_f(row);
+ return -Real(m_f(row));
    }
 private:
    F m_f;
 };
 
-template <class F>
-inline negate_type<F> negate(F f)
+template <class Real, class F>
+inline negate_type<Real, F> negate(F f)
 {
- return negate_type<F>(f);
+ return negate_type<Real, F>(f);
 }
 
 #endif

Modified: branches/quickbook-dev/libs/math/test/gamma_inv_big_data.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/gamma_inv_big_data.ipp (original)
+++ branches/quickbook-dev/libs/math/test/gamma_inv_big_data.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
- static const boost::array<boost::array<T, 4>, 130> gamma_inv_big_data = { {
+ static const boost::array<boost::array<typename table_type<T>::type, 4>, 130> gamma_inv_big_data = { {
       {{ SC_(464.56927490234375), SC_(0.12698681652545928955078125), SC_(440.0905015614498663381793089656310373835539712118699915057655756381750702144551901256933419148259778), SC_(489.2489328115381710888005650788332818303123263238882523231037266766796974176786885492715539575179927) }},
       {{ SC_(464.56927490234375), SC_(0.135477006435394287109375), SC_(440.9201626373476098986751145295281211597851207555116002836559277456581502883881279408150408804624974), SC_(488.3596775997958518494466317847702951287228545295142304855338082929544530999908165788368449119633373) }},
       {{ SC_(464.56927490234375), SC_(0.22103404998779296875), SC_(447.8707097559117500373730010123474103179731538915785876172851019700931527209673015311979439047788638), SC_(480.9951697728710868281134950146803822897647194680614404153327850687509247330919989892805468881282719) }},

Modified: branches/quickbook-dev/libs/math/test/gamma_inv_data.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/gamma_inv_data.ipp (original)
+++ branches/quickbook-dev/libs/math/test/gamma_inv_data.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
- static const boost::array<boost::array<T, 4>, 200> gamma_inv_data = { {
+ static const boost::array<boost::array<typename table_type<T>::type, 4>, 200> gamma_inv_data = { {
       {{ SC_(9.754039764404296875), SC_(0.12698681652545928955078125), SC_(6.349849983781954486964960115093039567468747967664820851534065876063014180392060424555352423162443804), SC_(13.35954665556050630769710564071384909890705633863167415813992116806093647564994418684947673739937248) }},
       {{ SC_(9.754039764404296875), SC_(0.135477006435394287109375), SC_(6.443655518427200469944002789678415067225918847146256390238048987798948404483563975737891105237977816), SC_(13.20648307403762788665455912344161337928185855631083250140430065533748994841668643195553261756810763) }},
       {{ SC_(9.754039764404296875), SC_(0.22103404998779296875), SC_(7.262299107203547511919478506673940833772294421637239641242141768466064388735007729524335022945474356), SC_(11.97587613793353953360795933135034836336725275703898828955465276118339699687746564051854946108002967) }},

Modified: branches/quickbook-dev/libs/math/test/gamma_inv_small_data.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/gamma_inv_small_data.ipp (original)
+++ branches/quickbook-dev/libs/math/test/gamma_inv_small_data.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
- static const boost::array<boost::array<T, 4>, 229> gamma_inv_small_data = { {
+ static const boost::array<boost::array<typename table_type<T>::type, 4>, 229> gamma_inv_small_data = { {
       {{ SC_(0.1730655412757187150418758392333984375e-5), SC_(0.12698681652545928955078125), SC_(BOOST_MATH_SMALL_CONSTANT(0.2239623606222809074122747811596115646210220735131141509259977248899758059576948436798908594057794725e-517862)), SC_(BOOST_MATH_SMALL_CONSTANT(0.4348301951174619607003912855228982264838968134589390827069898370149065135278987288014463439625604227e-34079)) }},
       {{ SC_(0.1730655412757187150418758392333984375e-5), SC_(0.135477006435394287109375), SC_(BOOST_MATH_SMALL_CONSTANT(0.9832661142546970309065948494116195914044751609094617663675341704778529043412686011701793912754530322e-501622)), SC_(BOOST_MATH_SMALL_CONSTANT(0.174464879621346471044494182889773112103066192989857880445657763562407515813032064473382568887549155e-36531)) }},
       {{ SC_(0.1730655412757187150418758392333984375e-5), SC_(0.22103404998779296875), SC_(BOOST_MATH_SMALL_CONSTANT(0.8367188988033804556441828789142666841098768711906267440588049611090664598162301930590308375972597743e-378782)), SC_(BOOST_MATH_SMALL_CONSTANT(0.258455732678645501224573885451125893770282157149004436646252270592694652815341234774299743101856032e-62682)) }},

Modified: branches/quickbook-dev/libs/math/test/hermite.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/hermite.ipp (original)
+++ branches/quickbook-dev/libs/math/test/hermite.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
- static const boost::array<boost::array<T, 3>, 420> hermite = {{
+ static const boost::array<boost::array<typename table_type<T>::type, 3>, 420> hermite = {{
       {{ SC_(0.8e1), SC_(-0.804919189453125e3), SC_(0.45107507538695517471998224862706929168983312035236e26) }},
       {{ SC_(0.8e1), SC_(-0.7460263671875e3), SC_(0.24561928260207418635049717146784087504133748838575e26) }},
       {{ SC_(0.8e1), SC_(-0.72904595947265625e3), SC_(0.20429972623973894937590136235800300689033201111301e26) }},

Modified: branches/quickbook-dev/libs/math/test/hypergeometric_dist_data2.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/hypergeometric_dist_data2.ipp (original)
+++ branches/quickbook-dev/libs/math/test/hypergeometric_dist_data2.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -8,7 +8,7 @@
 // (5) are commented out as they are too close to numeric_limits<double>::min(), to expect
 // our implementation to cope :-(
 //
-#define SC_(x) static_cast<T>(BOOST_JOIN(x, L))
+#define SC_(x) static_cast<typename table_type<T>::type>(BOOST_JOIN(x, L))
    static const boost::array<boost::array<T, 7>, 1542-5> hypergeometric_dist_data2 = {{
       {{ SC_(3), SC_(3), SC_(4), SC_(3), SC_(0.25), SC_(1), SC_(0) }},
       {{ SC_(3), SC_(3), SC_(15), SC_(1), SC_(0.4351648351648351648351648351648351648351648351648351648351648351648351648351648351648351648351648352), SC_(0.9186813186813186813186813186813186813186813186813186813186813186813186813186813186813186813186813187), SC_(0.08131868131868131868131868131868131868131868131868131868131868131868131868131868131868131868131868132) }},

Modified: branches/quickbook-dev/libs/math/test/hypergeometric_test_data.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/hypergeometric_test_data.ipp (original)
+++ branches/quickbook-dev/libs/math/test/hypergeometric_test_data.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -7,7 +7,7 @@
 // Test data generated by Mathematica, 104 values are commented out because they have only a low
 // absolute error, not a low relative error.
 //
-#define SC_(x) static_cast<T>(BOOST_JOIN(x, L))
+#define SC_(x) static_cast<typename table_type<T>::type>(BOOST_JOIN(x, L))
   static const boost::array<boost::array<T, 8>, 398-105> hypergeometric_test_data = {{
      //{{SC_(1),SC_(1),SC_(2),SC_(1),SC_(0.5),SC_(1),SC_(0.e-40)}},
      {{SC_(5),SC_(4),SC_(6),SC_(3),SC_(0.6666666666666666666666666666666666666667),SC_(0.6666666666666666666666666666666666666667),SC_(0.3333333333333333333333333333333333333333)}},

Modified: branches/quickbook-dev/libs/math/test/hypot_test.cpp
==============================================================================
--- branches/quickbook-dev/libs/math/test/hypot_test.cpp (original)
+++ branches/quickbook-dev/libs/math/test/hypot_test.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,12 +3,12 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#include <pch.hpp>
+#include <pch_light.hpp>
 
 #define BOOST_MATH_OVERFLOW_ERROR_POLICY ignore_error
 #include <boost/test/test_exec_monitor.hpp>
 #include <boost/test/floating_point_comparison.hpp>
-#include <boost/math/special_functions/hypot.hpp>
+#include <boost/math/special_functions/math_fwd.hpp>
 
 #include <cmath>
 

Modified: branches/quickbook-dev/libs/math/test/ibeta_data.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/ibeta_data.ipp (original)
+++ branches/quickbook-dev/libs/math/test/ibeta_data.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
- static const boost::array<boost::array<T, 7>, 500> ibeta_data = { {
+ static const boost::array<boost::array<typename table_type<T>::type, 7>, 500> ibeta_data = { {
       {{ SC_(0.115105740725994110107421875), SC_(27.2666988372802734375), SC_(0.913345992565155029296875), SC_(5.624704191155661855917495760118550518449), SC_(0.4314397017151442751805333868688125395477e-30), SC_(0.9999999999999999999999999999999232955748), SC_(0.7670442516666816870156810539487652961219e-31) }},
       {{ SC_(0.4634225666522979736328125), SC_(3.4317314624786376953125), SC_(0.24176712334156036376953125), SC_(0.9303555938707241359170267278058957882937), SC_(0.1886421251845313169553337074104181129545), SC_(0.8314186687138222136543152962911694480678), SC_(0.1685813312861777863456847037088305519322) }},
       {{ SC_(0.671531736850738525390625), SC_(23.0631923675537109375), SC_(0.908442795276641845703125), SC_(0.1643292146089890181565750406388380802073), SC_(0.5052411887003343404176234528376913340103e-25), SC_(0.9999999999999999999999996925432949323565), SC_(0.3074567050676435237921994231096931905187e-24) }},

Modified: branches/quickbook-dev/libs/math/test/ibeta_int_data.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/ibeta_int_data.ipp (original)
+++ branches/quickbook-dev/libs/math/test/ibeta_int_data.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
- static const boost::array<boost::array<T, 7>, 1000> ibeta_int_data = { {
+ static const boost::array<boost::array<typename table_type<T>::type, 7>, 1000> ibeta_int_data = { {
       {{ SC_(1), SC_(1), SC_(0.12707412242889404296875), SC_(0.12707412242889404296875), SC_(0.87292587757110595703125), SC_(0.12707412242889404296875), SC_(0.87292587757110595703125) }},
       {{ SC_(1), SC_(1), SC_(0.1355634629726409912109375), SC_(0.1355634629726409912109375), SC_(0.8644365370273590087890625), SC_(0.1355634629726409912109375), SC_(0.8644365370273590087890625) }},
       {{ SC_(1), SC_(1), SC_(0.221111953258514404296875), SC_(0.221111953258514404296875), SC_(0.778888046741485595703125), SC_(0.221111953258514404296875), SC_(0.778888046741485595703125) }},

Modified: branches/quickbook-dev/libs/math/test/ibeta_inv_data.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/ibeta_inv_data.ipp (original)
+++ branches/quickbook-dev/libs/math/test/ibeta_inv_data.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
- static const boost::array<boost::array<T, 5>, 1210> ibeta_inv_data = { {
+ static const boost::array<boost::array<typename table_type<T>::type, 5>, 1210> ibeta_inv_data = { {
       {{ SC_(0.104760829344741068780422210693359375e-4), SC_(39078.1875), SC_(0.913384497165679931640625), SC_(0.2135769916611873809373928693612157637794870746322109915739746618652569766882593624385400901395922558e-3760), SC_(BOOST_MATH_SMALL_CONSTANT(0.6169146818683135737866366973021696361959736535710675458813428774517757535576031054239811928697394346e-101417)) }},
       {{ SC_(0.1127331415773369371891021728515625e-4), SC_(0.0226620174944400787353515625), SC_(0.1355634629726409912109375), SC_(BOOST_MATH_SMALL_CONSTANT(0.6398069040886718270700942839013650119743974939592699138527850527236181568779785317811717302449254101e-76964)), SC_(BOOST_MATH_SMALL_CONSTANT(0.1123304116325227195797533167182832111272986902383876280357481893374380043283848201429836361152904889e-5592)) }},
       {{ SC_(0.113778432933031581342220306396484375e-4), SC_(0.03654421865940093994140625), SC_(0.9688708782196044921875), SC_(0.5825356514402150924555439351704966386176716144780670249830283141506929468296452211723778443894234951e-1195), SC_(BOOST_MATH_SMALL_CONSTANT(0.1299246431009640780314778465681510321819328250560790012308930348335051591055920757982605267188242976e-132423)) }},

Modified: branches/quickbook-dev/libs/math/test/ibeta_inva_data.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/ibeta_inva_data.ipp (original)
+++ branches/quickbook-dev/libs/math/test/ibeta_inva_data.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
- static const boost::array<boost::array<T, 7>, 1100> ibeta_inva_data = { {
+ static const boost::array<boost::array<typename table_type<T>::type, 7>, 1100> ibeta_inva_data = { {
       {{ SC_(0.101913392427377402782440185546875e-4), SC_(0.3082362115383148193359375), SC_(0.1355634629726409912109375), SC_(0.6498233713152427462579302903941895526823485861809005407005756658138299437345439685916818979079350952e-4), SC_(0.1598220360006443400909761969445329244603859759388130816641624923434214075962489978723834186220509792e-5), SC_(0.1598250823507423266003361933591577902014719110010440833489018043541995851576985396009647692344594598e-5), SC_(0.6499023539055942142435327607856798948132754954188633069136984730655318067141056849740949064680308213e-4) }},
       {{ SC_(0.1127331415773369371891021728515625e-4), SC_(0.8350250720977783203125), SC_(0.221111953258514404296875), SC_(0.3971461302443922423613753292972913694448775540766244520233346130148330830638824141461619735572445997e-4), SC_(0.3200361118082439458200937030865347915510238320387461167764804252841304593011303390960681217527273982e-5), SC_(0.3200210889570744035937464686925692217326089474042347373846591880760057034684133216576634448402269381e-5), SC_(0.3970804661143976120973144952058224085647966940391220340079248912116191892887943249201895859632245494e-4) }},
       {{ SC_(0.113778432933031581342220306396484375e-4), SC_(0.905801355838775634765625), SC_(0.913384497165679931640625), SC_(0.1078981970343159393325856300516135956140969598440175633458632674725240047510167692675710778553847126e-5), SC_(0.0001200181935703441995121934466228033111754654801609287621930678605774967528649020200620769888673021826), SC_(0.0001199468547533371496891932800417754246696194915133685876058567801242730706768275318621189458708399548), SC_(0.1078921129179782267266584693661729948023960221141040813461658037144034851960955828005953048025067861e-5) }},

Modified: branches/quickbook-dev/libs/math/test/ibeta_large_data.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/ibeta_large_data.ipp (original)
+++ branches/quickbook-dev/libs/math/test/ibeta_large_data.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
- static const boost::array<boost::array<T, 7>, 1210> ibeta_large_data = { {
+ static const boost::array<boost::array<typename table_type<T>::type, 7>, 1210> ibeta_large_data = { {
       {{ SC_(0.104760829344741068780422210693359375e-4), SC_(39078.1875), SC_(0.913384497165679931640625), SC_(95444.37547576888548779405522478045372688), SC_(BOOST_MATH_SMALL_CONSTANT(0.4076397251031275963346153642645211144346e-41521)), SC_(1), SC_(BOOST_MATH_SMALL_CONSTANT(0.4270966445860582673748568606264586002504e-41526)) }},
       {{ SC_(0.1127331415773369371891021728515625e-4), SC_(0.0226620174944400787353515625), SC_(0.1355634629726409912109375), SC_(88703.20318198098901713372585734808194292), SC_(45.9460483635769831377505786833842050448), SC_(0.9994822930837981780736860587426162687504), SC_(0.0005177069162018219263139412573837312496096) }},
       {{ SC_(0.113778432933031581342220306396484375e-4), SC_(0.03654421865940093994140625), SC_(0.9688708782196044921875), SC_(87893.29210911967129223056449206866305889), SC_(24.13233514927218107101077084629346084654), SC_(0.999725511349976252733137998478545702411), SC_(0.0002744886500237472668620015214542975889712) }},

Modified: branches/quickbook-dev/libs/math/test/ibeta_small_data.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/ibeta_small_data.ipp (original)
+++ branches/quickbook-dev/libs/math/test/ibeta_small_data.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
- static const boost::array<boost::array<T, 7>, 500> ibeta_small_data = { {
+ static const boost::array<boost::array<typename table_type<T>::type, 7>, 500> ibeta_small_data = { {
       {{ SC_(0.011510574258863925933837890625), SC_(2.726669788360595703125), SC_(0.913345992565155029296875), SC_(85.50804647765112454526520766832090120908), SC_(0.0004969774007283958673037601318581948437309), SC_(0.9999941879795790272650838125485136788379), SC_(0.5812020420972734916187451486321162137375e-5) }},
       {{ SC_(0.0463422574102878570556640625), SC_(0.34317314624786376953125), SC_(0.24176712334156036376953125), SC_(20.36367089471426800179696837574809289039), SC_(3.630773740238788693031723031598949317136), SC_(0.8486827348798151491124959025982318049325), SC_(0.1513172651201848508875040974017681950675) }},
       {{ SC_(0.06715317070484161376953125), SC_(2.30631923675537109375), SC_(0.908442795276641845703125), SC_(13.78727207173260438424514878253152024011), SC_(0.001859217475218142037637565734833320618317), SC_(0.9998651679038930266805148691555636600556), SC_(0.0001348320961069733194851308444363399443688) }},

Modified: branches/quickbook-dev/libs/math/test/igamma_big_data.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/igamma_big_data.ipp (original)
+++ branches/quickbook-dev/libs/math/test/igamma_big_data.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
- static const boost::array<boost::array<T, 6>, 287> igamma_big_data = { {
+ static const boost::array<boost::array<typename table_type<T>::type, 6>, 287> igamma_big_data = { {
       {{ SC_(0.1730655412757187150418758392333984375e-5), SC_(0.1730655441178896580822765827178955078125e-7), SC_(-1), SC_(0.2993117912029903240422582053899047098779533956541385552546168739467202263345519375546082579259835689e-4), SC_(577797.90391619920649973095027584836128926282155274216943338008435801586707772349755359609709258809), SC_(0.9999700688208797009675957741794610095290122046604345861444745383126053279773665448062442806862583006) }},
       {{ SC_(0.1730655412757187150418758392333984375e-5), SC_(0.8653277063785935752093791961669921875e-6), SC_(13.38277582367555562294055416847373915500263659346494217875993623821221196887112446988546507684731302), SC_(0.2316099655383339755405731669847576162961123204586203558223557251327214945205980959748823352959805302e-4), SC_(577801.8158305834504756449335090514614341009677858339594077124115869397920785194231187741120056354752), SC_(0.9999768390034461666024459426833015242383703887679541379644177644274867278505479401904023114002150846) }},
       {{ SC_(0.1730655412757187150418758392333984375e-5), SC_(0.15575898260067333467304706573486328125e-5), SC_(12.79500378214091254793715786456975103024623413471734292810881005720669047076428987935745392946724363), SC_(0.2214376467251173939070843604623148303831679646741287024258011317172427658231597089388494422353631048e-4), SC_(577802.4036026249851187199369053553654222257241882927070069630627131207976000175299533646400167828553), SC_(0.9999778562353274882606092915639537685169616832035325871297574198868282757234176840291059234224082336) }},

Modified: branches/quickbook-dev/libs/math/test/igamma_int_data.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/igamma_int_data.ipp (original)
+++ branches/quickbook-dev/libs/math/test/igamma_int_data.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
- static const boost::array<boost::array<T, 6>, 140> igamma_int_data = { {
+ static const boost::array<boost::array<typename table_type<T>::type, 6>, 140> igamma_int_data = { {
       {{ SC_(0.5), SC_(0.004999999888241291046142578125), SC_(1.631267845368323485191815380032984903074365412587098308286220239190324188420710121791871591309590004), SC_(0.9203443263332001265162236927545643793578786527087679769237787431564844748135321134774112708209554194), SC_(0.1411860055371925421063521033081602797231840435352888199275875506625870961703220596656577919527041757), SC_(0.07965567366679987348377630724543562064212134729123202307622125684351552518646788652258872917904458057) }},
       {{ SC_(0.5), SC_(0.25), SC_(0.8498918380799311297867616098602389766300312781938048348528626579829435160004444680322048858624092311), SC_(0.479500122186953462317253346108035471263548424242036299941194274352806478283146429109461900411394659), SC_(0.9225620128255848975114058734809062061675181779285822933609451318699677685905877134253244973998849491), SC_(0.520499877813046537682746653891964528736451575757963700058805725647193521716853570890538099588605341) }},
       {{ SC_(0.5), SC_(0.449999988079071044921875), SC_(0.6075647752751784703583581789426278456752564880945645704809989500539948786183333019925969429005007538), SC_(0.3427817175407890768272360273834711985342418909050114189064883223090985450970247707985828865357086527), SC_(1.164889075630337556939809304398517337122292968027822557732808839798916405972698879464932440361793426), SC_(0.6572182824592109231727639726165288014657581090949885810935116776909014549029752292014171134642913473) }},

Modified: branches/quickbook-dev/libs/math/test/igamma_med_data.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/igamma_med_data.ipp (original)
+++ branches/quickbook-dev/libs/math/test/igamma_med_data.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
- static const boost::array<boost::array<T, 6>, 700> igamma_med_data = { {
+ static const boost::array<boost::array<typename table_type<T>::type, 6>, 700> igamma_med_data = { {
       {{ SC_(0.9759566783905029296875), SC_(0.009759566746652126312255859375), SC_(1.003339192007827076679495082852814844336347745360235976200689788561799007730110137330271807878843422), SC_(0.9890348932311204142405476428315735322132825375129739181325170152149560168983641202727073881868421137), SC_(0.01112369385656880593053787042266942213006008594885039559843996330162391632861423778173725952365124566), SC_(0.01096510676887958575945235716842646778671746248702608186748298478504398310163587972729261181315788632) }},
       {{ SC_(0.9759566783905029296875), SC_(0.48797833919525146484375), SC_(0.6107075742899761923771199703161020169732161418698525715736270035568544567698769445946517198087313906), SC_(0.60200090392622800556746880021527940973985765617427715855663599678855269649431562996389062378697249), SC_(0.4037553115744196902329129829593822494931916894392338002255027483065684672888474305173573475937632775), SC_(0.39799909607377199443253119978472059026014234382572284144336400321144730350568437003610937621302751) }},
       {{ SC_(0.9759566783905029296875), SC_(0.8783609867095947265625), SC_(0.4103188243195825736649265764483608742565650301514019080978258727846258380934756822777647401521337079), SC_(0.4044690348331089562847173039266064850324957624072768224521011340506874965505832795400716939018472498), SC_(0.6041440615448133089451063768271233922098428011576844637013038790787970859652486928342443272503609601), SC_(0.5955309651668910437152826960733935149675042375927231775478988659493125034494167204599283060981527502) }},

Modified: branches/quickbook-dev/libs/math/test/igamma_small_data.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/igamma_small_data.ipp (original)
+++ branches/quickbook-dev/libs/math/test/igamma_small_data.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
- static const boost::array<boost::array<T, 6>, 252> igamma_small_data = { {
+ static const boost::array<boost::array<typename table_type<T>::type, 6>, 252> igamma_small_data = { {
       {{ SC_(0.165048161769598689119220580323599278926849365234375e-11), SC_(0.165048164480104120332981665342231281101703643798828125e-13), SC_(31.15790848492937617968754572910879626038987427321665501824062445965678033809696860327421033588997389), SC_(0.5142555520027874508595595722328287870710653491133268223717400674935981376413784737279829921742056631e-10), SC_(605883754914.8750136902267543620760601500284208480879474455026885251060577270869941538181411625849707), SC_(0.9999999999485744447997212549140440427767171212928934650886673177628259932506401862358621522444918976) }},
       {{ SC_(0.165048161769598689119220580323599278926849365234375e-11), SC_(0.825240808847993445596102901617996394634246826171875e-12), SC_(27.24588549611682625963801859326817650865189920983978484217386169027034380426371292313397641222047523), SC_(0.4496883316923336685099678252541612612557662391990416220973173325702496188138998642060577791819560088e-10), SC_(605883754918.7870366790393042821255872858690405998259225088795587011728204964734306876513968427252046), SC_(0.9999999999550311668307666331490032174745838738744233760800958377902682667429750381186100131967398492) }},
       {{ SC_(0.165048161769598689119220580323599278926849365234375e-11), SC_(0.1485433412558301302652807862614281475543975830078125e-11), SC_(26.65809886043765184861833815671322602877461879268583897860494287446522932950747972178867249013415618), SC_(0.4399870213191659715445515622143744278264487110204265430288897607131180016977120873571283497579633446e-10), SC_(605883754919.3748233147184786931452677224239910797032029260335045647417393122785451624076300440705085), SC_(0.9999999999560012978680834028455448437785625572173551288979573456971110239286881998302287908816411206) }},

Modified: branches/quickbook-dev/libs/math/test/laguerre2.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/laguerre2.ipp (original)
+++ branches/quickbook-dev/libs/math/test/laguerre2.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
- static const boost::array<boost::array<T, 3>, 280> laguerre2 = {{
+ static const boost::array<boost::array<typename table_type<T>::type, 3>, 280> laguerre2 = {{
       {{ SC_(0.5e1), SC_(0.9754039764404296875e2), SC_(-0.56218428868911115998451316426215010600803852349048e8) }},
       {{ SC_(0.5e1), SC_(0.12698681640625e3), SC_(-0.2243354877625806499089339248835065869040287604245e9) }},
       {{ SC_(0.5e1), SC_(0.1354770050048828125e3), SC_(-0.31418973293934559300911242611564538290439848722478e9) }},

Modified: branches/quickbook-dev/libs/math/test/laguerre3.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/laguerre3.ipp (original)
+++ branches/quickbook-dev/libs/math/test/laguerre3.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
- static const boost::array<boost::array<T, 4>, 2240> laguerre3 = {{
+ static const boost::array<boost::array<typename table_type<T>::type, 4>, 2240> laguerre3 = {{
       {{ SC_(0.6e1), SC_(0.4e1), SC_(0.9754039764404296875e2), SC_(0.61248773400035441372705568899743424188675775638604e9) }},
       {{ SC_(0.6e1), SC_(0.4e1), SC_(0.12698681640625e3), SC_(0.35204789737752362425049635886299775785128782532338e10) }},
       {{ SC_(0.6e1), SC_(0.4e1), SC_(0.1354770050048828125e3), SC_(0.53680020529340456542399945558001901900007952546989e10) }},

Modified: branches/quickbook-dev/libs/math/test/legendre_p.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/legendre_p.ipp (original)
+++ branches/quickbook-dev/libs/math/test/legendre_p.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
- static const boost::array<boost::array<T, 4>, 140> legendre_p = {{
+ static const boost::array<boost::array<typename table_type<T>::type, 4>, 140> legendre_p = {{
       {{ SC_(3), SC_(-0.804919183254241943359375), SC_(-0.09637879251279735399302410605920296560178428535437), SC_(-0.84585603807674271376114723023136351467791030262194) }},
       {{ SC_(3), SC_(-0.74602639675140380859375), SC_(0.081027074619746344180737168075984167003866787126753), SC_(-0.80282652754865351221792807765781454966620965987346) }},
       {{ SC_(3), SC_(-0.72904598712921142578125), SC_(0.12483445078630286253952851342405305778981983166886), SC_(-0.77778604740049228448138273219369426999256253154477) }},

Modified: branches/quickbook-dev/libs/math/test/legendre_p_large.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/legendre_p_large.ipp (original)
+++ branches/quickbook-dev/libs/math/test/legendre_p_large.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
- static const boost::array<boost::array<T, 4>, 160> legendre_p_large = {{
+ static const boost::array<boost::array<typename table_type<T>::type, 4>, 160> legendre_p_large = {{
       {{ SC_(29), SC_(-0.74602639675140380859375), SC_(0.050915219643735786802064817454102557266509665552523), SC_(-0.27118035040452065163236941090242943684321195237749) }},
       {{ SC_(29), SC_(-0.72904598712921142578125), SC_(0.15209960929167220423613043592541930303920942697128), SC_(-0.1438359066051312703697159687668902900032679225431) }},
       {{ SC_(29), SC_(-0.5579319000244140625), SC_(0.15849246733249484229246386045081847903407720368835), SC_(-0.046562152771403674797644638451970346262085750814402) }},

Modified: branches/quickbook-dev/libs/math/test/log1p_expm1_data.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/log1p_expm1_data.ipp (original)
+++ branches/quickbook-dev/libs/math/test/log1p_expm1_data.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,9 +3,9 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 #ifndef SC_
-#define SC_(x) static_cast<T>(BOOST_JOIN(x, L))
+#define SC_(x) static_cast<typename table_type<T>::type>(BOOST_JOIN(x, L))
 #endif
- static const boost::array<boost::array<T, 3>, 80> log1p_expm1_data = { {
+ static const boost::array<boost::array<typename table_type<T>::type, 3>, 80> log1p_expm1_data = { {
       {{ SC_(-0.69330310821533203125e0), SC_(-0.1181895342296499380302723361817935835636e1), SC_(-0.5000779577496508480606742934033661111325e0) }},
       {{ SC_(-0.650003612041473388671875e0), SC_(-0.1049832444670425873798449427248829256278e1), SC_(-0.477956108886575099597621504254337139212e0) }},
       {{ SC_(-0.5634434223175048828125e0), SC_(-0.8288372954181591063099417140530721209296e0), SC_(-0.4307544676154126107123951950891833745657e0) }},

Modified: branches/quickbook-dev/libs/math/test/log1p_expm1_test.cpp
==============================================================================
--- branches/quickbook-dev/libs/math/test/log1p_expm1_test.cpp (original)
+++ branches/quickbook-dev/libs/math/test/log1p_expm1_test.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -4,7 +4,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#include <pch.hpp>
+#include <pch_light.hpp>
 
 // Requires MS extensions permitted or fails to link.
 
@@ -14,8 +14,7 @@
 #include <boost/math/concepts/real_concept.hpp>
 #include <boost/test/test_exec_monitor.hpp>
 #include <boost/test/floating_point_comparison.hpp>
-#include <boost/math/special_functions/log1p.hpp>
-#include <boost/math/special_functions/expm1.hpp>
+#include <boost/math/special_functions/math_fwd.hpp>
 #include "log1p_expm1_test.hpp"
 
 //

Modified: branches/quickbook-dev/libs/math/test/log1p_expm1_test.hpp
==============================================================================
--- branches/quickbook-dev/libs/math/test/log1p_expm1_test.hpp (original)
+++ branches/quickbook-dev/libs/math/test/log1p_expm1_test.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -8,13 +8,14 @@
 #include "functor.hpp"
 
 #include "handle_test_result.hpp"
+#include "table_type.hpp"
 
 
-template <class T>
+template <class Real, class T>
 void do_test(const T& data, const char* type_name, const char* test_name)
 {
    typedef typename T::value_type row_type;
- typedef typename row_type::value_type value_type;
+ typedef Real value_type;
 
    typedef value_type (*pg)(value_type);
 #if defined(BOOST_MATH_NO_DEDUCED_FUNCTION_POINTERS)
@@ -34,10 +35,10 @@
 #else
    funcp = &boost::math::log1p;
 #endif
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func(funcp, 0),
- extract_result(1));
+ bind_func<Real>(funcp, 0),
+ extract_result<Real>(1));
    handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::log1p", "log1p and expm1");
    std::cout << std::endl;
    //
@@ -48,10 +49,10 @@
 #else
    funcp = boost::math::expm1;
 #endif
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func(funcp, 0),
- extract_result(2));
+ bind_func<Real>(funcp, 0),
+ extract_result<Real>(2));
    handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::expm1", "log1p and expm1");
    std::cout << std::endl;
 }
@@ -61,7 +62,7 @@
 {
 # include "log1p_expm1_data.ipp"
 
- do_test(log1p_expm1_data, type_name, "expm1 and log1p");
+ do_test<T>(log1p_expm1_data, type_name, "expm1 and log1p");
 
    //
    // C99 Appendix F special cases:

Modified: branches/quickbook-dev/libs/math/test/ncbeta.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/ncbeta.ipp (original)
+++ branches/quickbook-dev/libs/math/test/ncbeta.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,8 +3,8 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#define SC_(x) static_cast<T>(BOOST_JOIN(x, L))
- static const boost::array<boost::array<T, 6>, 3000> ncbeta = {{
+#define SC_(x) static_cast<typename table_type<T>::type>(BOOST_JOIN(x, L))
+ static const boost::array<boost::array<typename table_type<T>::type, 6>, 3000> ncbeta = {{
       {{ SC_(1.454305052757263183593750000000000000000), SC_(1.454305052757263183593750000000000000000e-1), SC_(5.940588760375976562500000000000000000000e1), SC_(9.976066350936889648437500000000000000000e-1), SC_(2.759834870217354705236013708534509068967e-1), SC_(7.240165129782645294763986291465490931033e-1) }},
       {{ SC_(1.454305052757263183593750000000000000000), SC_(1.454305052757263183593750000000000000000e-1), SC_(1.451677856445312500000000000000000000000e2), SC_(9.990068674087524414062500000000000000000e-1), SC_(2.757975665000284929998400439182434398680e-1), SC_(7.242024334999715070001599560817565601320e-1) }},
       {{ SC_(1.454305052757263183593750000000000000000), SC_(1.454305052757263183593750000000000000000e-1), SC_(1.929777069091796875000000000000000000000e2), SC_(9.992512464523315429687500000000000000000e-1), SC_(2.757802819095769722518059796277858159202e-1), SC_(7.242197180904230277481940203722141840798e-1) }},

Modified: branches/quickbook-dev/libs/math/test/ncbeta_big.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/ncbeta_big.ipp (original)
+++ branches/quickbook-dev/libs/math/test/ncbeta_big.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,8 +3,8 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#define SC_(x) static_cast<T>(BOOST_JOIN(x, L))
- static const boost::array<boost::array<T, 6>, 72> ncbeta_big = {{
+#define SC_(x) static_cast<typename table_type<T>::type>(BOOST_JOIN(x, L))
+ static const boost::array<boost::array<typename table_type<T>::type, 6>, 72> ncbeta_big = {{
       {{ SC_(2.322846374511718750000000000000000000000e2), SC_(2.090561676025390625000000000000000000000e2), SC_(2.322846374511718750000000000000000000000e2), SC_(6.248598918318748474121093750000000000000e-2), SC_(5.822794103663371475941613559141512048716e-200), SC_(1.000000000000000000000000000000000000000) }},
       {{ SC_(2.322846374511718750000000000000000000000e2), SC_(2.299617919921875000000000000000000000000e2), SC_(2.906821289062500000000000000000000000000e2), SC_(1.553418934345245361328125000000000000000e-1), SC_(2.376427035888773394585864365564861664654e-112), SC_(1.000000000000000000000000000000000000000) }},
       {{ SC_(2.322846374511718750000000000000000000000e2), SC_(2.320523529052734375000000000000000000000e2), SC_(9.757655029296875000000000000000000000000e2), SC_(3.780863285064697265625000000000000000000e-1), SC_(9.534309971409020993977308030456117404144e-89), SC_(1.000000000000000000000000000000000000000) }},

Modified: branches/quickbook-dev/libs/math/test/nccs.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/nccs.ipp (original)
+++ branches/quickbook-dev/libs/math/test/nccs.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,8 +3,8 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#define SC_(x) static_cast<T>(BOOST_JOIN(x, L))
- static const boost::array<boost::array<T, 5>, 3200> nccs = {{
+#define SC_(x) static_cast<typename table_type<T>::type>(BOOST_JOIN(x, L))
+ static const boost::array<boost::array<typename table_type<T>::type, 5>, 3200> nccs = {{
       {{ SC_(1.951913356781005859375000000000000000000), SC_(9.566968083381652832031250000000000000000e-1), SC_(2.908610105514526367187500000000000000000e-1), SC_(9.191713210042786241188236234883914114395e-2), SC_(9.080828678995721375881176376511608588560e-1) }},
       {{ SC_(1.951913356781005859375000000000000000000), SC_(6.366568565368652343750000000000000000000), SC_(2.079620361328125000000000000000000000000), SC_(8.979177306921986952474050864260945461537e-2), SC_(9.102082269307801304752594913573905453846e-1) }},
       {{ SC_(1.951913356781005859375000000000000000000), SC_(6.889215946197509765625000000000000000000), SC_(4.420564651489257812500000000000000000000), SC_(2.322522640917811378036214577533389504074e-1), SC_(7.677477359082188621963785422466610495926e-1) }},

Modified: branches/quickbook-dev/libs/math/test/nccs_big.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/nccs_big.ipp (original)
+++ branches/quickbook-dev/libs/math/test/nccs_big.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -8,8 +8,8 @@
 // the current algorithm may underflow to zero
 // prematurely in these cases.
 //
-#define SC_(x) static_cast<T>(BOOST_JOIN(x, L))
- static const boost::array<boost::array<T, 5>, 216> nccs_big = {{
+#define SC_(x) static_cast<typename table_type<T>::type>(BOOST_JOIN(x, L))
+ static const boost::array<boost::array<typename table_type<T>::type, 5>, 216> nccs_big = {{
       {{ SC_(1.018147201538085937500000000000000000000e2), SC_(1.814723730087280273437500000000000000000), SC_(1.036294460296630859375000000000000000000e1), SC_(6.015496565199092654771842521716269252752e-33), SC_(9.999999999999999999999999999999939845034e-1) }},
       {{ SC_(1.018147201538085937500000000000000000000e2), SC_(2.270954132080078125000000000000000000000), SC_(2.602141952514648437500000000000000000000e1), SC_(6.271325708033427466636203558887430713942e-16), SC_(9.999999999999993728674291966572533363796e-1) }},
       {{ SC_(1.018147201538085937500000000000000000000e2), SC_(7.623167991638183593750000000000000000000), SC_(5.471894454956054687500000000000000000000e1), SC_(5.592130493491734836774684682197361443348e-6), SC_(9.999944078695065082651632253153178026386e-1) }},

Modified: branches/quickbook-dev/libs/math/test/nct.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/nct.ipp (original)
+++ branches/quickbook-dev/libs/math/test/nct.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -4,9 +4,10 @@
 // Boost Software License, Version 1.0.
 // (See accompanying file LICENSE_1_0.txt
 // or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#define SC_(x) static_cast<T>(BOOST_JOIN(x, L))
- static const boost::array<boost::array<T, 5>, 209-7> nct = {{
+#ifndef SC_
+#define SC_(x) static_cast<typename table_type<T>::type>(BOOST_JOIN(x, L))
+#endif
+ static const boost::array<boost::array<typename table_type<T>::type, 5>, 209-7> nct = {{
       {{ SC_(5.637862086296081542968750000000000000000e-1), SC_(-5.074075460433959960937500000000000000000e-1), SC_(-3.162277862429618835449218750000000000000e-2), SC_(6.862274577179818450132372470056769938949e-1), SC_(3.137725422820181549867627529943230061051e-1) }},
       {{ SC_(9.567963480949401855468750000000000000000e-1), SC_(-9.472283720970153808593750000000000000000e-1), SC_(-7.905694097280502319335937500000000000000e-2), SC_(8.115615601997266002916301508229723403909e-1), SC_(1.884384398002733997083698491770276596091e-1) }},
       {{ SC_(2.380512714385986328125000000000000000000), SC_(-2.378132343292236328125000000000000000000), SC_(-6.344355583190917968750000000000000000000), SC_(1.181983559218041139443788725932712768639e-1), SC_(8.818016440781958860556211274067287231361e-1) }},

Modified: branches/quickbook-dev/libs/math/test/negative_binomial_quantile.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/negative_binomial_quantile.ipp (original)
+++ branches/quickbook-dev/libs/math/test/negative_binomial_quantile.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,8 +3,8 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#define SC_(x) static_cast<T>(BOOST_JOIN(x, L))
- static const boost::array<boost::array<T, 5>, 792> negative_binomial_quantile_data = {{
+#define SC_(x) static_cast<typename table_type<T>::type>(BOOST_JOIN(x, L))
+ static const boost::array<boost::array<typename table_type<T>::type, 5>, 792> negative_binomial_quantile_data = {{
       {{ SC_(4.285762786865234375), SC_(0.12698681652545928955078125), SC_(0.097540400922298431396484375), SC_(11.568381290037563253305975817351444024377036234904), SC_(49.67581419477884086070549390307050513757197652133) }},
       {{ SC_(4.285762786865234375), SC_(0.12698681652545928955078125), SC_(0.12698681652545928955078125), SC_(12.977136041273636067294825573363051160267257422387), SC_(46.43808301937089644496373095130068129633820080023) }},
       {{ SC_(4.285762786865234375), SC_(0.12698681652545928955078125), SC_(0.135477006435394287109375), SC_(13.355446548799362499196093574014767375702882517351), SC_(45.626103029359612367556766004407934151298781150048) }},

Modified: branches/quickbook-dev/libs/math/test/poisson_quantile.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/poisson_quantile.ipp (original)
+++ branches/quickbook-dev/libs/math/test/poisson_quantile.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,8 +3,8 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#define SC_(x) static_cast<T>(BOOST_JOIN(x, L))
- static const boost::array<boost::array<T, 4>, 619> poisson_quantile_data = {{
+#define SC_(x) static_cast<typename table_type<T>::type>(BOOST_JOIN(x, L))
+ static const boost::array<boost::array<typename table_type<T>::type, 4>, 619> poisson_quantile_data = {{
       {{ SC_(2.539736270904541015625), SC_(0.097540400922298431396484375), SC_(0.1236392659323415267286721455855935332272165776019), SC_(4.1794244675777288954971650240102219690023733491107) }},
       {{ SC_(2.539736270904541015625), SC_(0.12698681652545928955078125), SC_(0.29692152360861802647109703200927257466043783201072), SC_(3.8759279753758017243263560996428606489658831749751) }},
       {{ SC_(2.539736270904541015625), SC_(0.135477006435394287109375), SC_(0.34320650665410472759846385302850183249926507900385), SC_(3.7989374337321363992500232228194835442428384328783) }},

Modified: branches/quickbook-dev/libs/math/test/powm1_sqrtp1m1_test.cpp
==============================================================================
--- branches/quickbook-dev/libs/math/test/powm1_sqrtp1m1_test.cpp (original)
+++ branches/quickbook-dev/libs/math/test/powm1_sqrtp1m1_test.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,13 +3,12 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#include <pch.hpp>
+#include <pch_light.hpp>
 
 #include <boost/math/concepts/real_concept.hpp>
 #include <boost/test/test_exec_monitor.hpp>
 #include <boost/test/floating_point_comparison.hpp>
-#include <boost/math/special_functions/sqrt1pm1.hpp>
-#include <boost/math/special_functions/powm1.hpp>
+#include <boost/math/special_functions/math_fwd.hpp>
 #include <boost/math/tools/test.hpp>
 #include "powm1_sqrtp1m1_test.hpp"
 

Modified: branches/quickbook-dev/libs/math/test/powm1_sqrtp1m1_test.hpp
==============================================================================
--- branches/quickbook-dev/libs/math/test/powm1_sqrtp1m1_test.hpp (original)
+++ branches/quickbook-dev/libs/math/test/powm1_sqrtp1m1_test.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -7,15 +7,16 @@
 #include "functor.hpp"
 
 #include "handle_test_result.hpp"
+#include "table_type.hpp"
 
 #ifndef SC_
-#define SC_(x) static_cast<T>(BOOST_JOIN(x, L))
+#define SC_(x) static_cast<typename table_type<T>::type>(BOOST_JOIN(x, L))
 #endif
 
 template <class T>
 void test_powm1_sqrtp1m1(T, const char* type_name)
 {
- static const boost::array<boost::array<T, 2>, 141> sqrtp1m1_data = {{
+ static const boost::array<boost::array<typename table_type<T>::type, 2>, 141> sqrtp1m1_data = {{
       {{ SC_(-0.990433037281036376953125), SC_(-0.902189148255607021082179865003660033379) }},
       {{ SC_(-0.928576648235321044921875), SC_(-0.7327485233629588435419837213946140663952) }},
       {{ SC_(-0.804919183254241943359375), SC_(-0.5583204592175928547330219789723812512248) }},
@@ -159,7 +160,7 @@
       {{ SC_(0.99292266368865966796875), SC_(0.4117091285702801135545007937655927942821) }},
    }};
 
- static const boost::array<boost::array<T, 3>, 1400> powm1_data = {{
+ static const boost::array<boost::array<typename table_type<T>::type, 3>, 1400> powm1_data = {{
       {{ SC_(0.161179845478123719842988847972264920827e-14), SC_(0.1431564604442703013402649929484277542953e-29), SC_(-0.4876113153308343652049349438365788782568e-28) }},
       {{ SC_(0.161179845478123719842988847972264920827e-14), SC_(0.1791466932348087634896446282571611213266e-29), SC_(-0.6101991796549119337733033929476086235147e-28) }},
       {{ SC_(0.161179845478123719842988847972264920827e-14), SC_(0.6013619202535540063110633226832922483532e-29), SC_(-0.2048324441766037485142714404837079817647e-27) }},
@@ -1569,10 +1570,10 @@
    typedef T (*func_t)(const T&);
    func_t f = &boost::math::sqrt1pm1<T>;
 
- boost::math::tools::test_result<T> result = boost::math::tools::test(
+ boost::math::tools::test_result<T> result = boost::math::tools::test_hetero<T>(
       sqrtp1m1_data,
- bind_func(f, 0),
- extract_result(1));
+ bind_func<T>(f, 0),
+ extract_result<T>(1));
 
    std::cout << "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"
       "Test results for type " << type_name << std::endl << std::endl;
@@ -1580,10 +1581,10 @@
 
    typedef T (*func2_t)(T const, T const);
    func2_t f2 = &boost::math::powm1<T,T>;
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<T>(
       powm1_data,
- bind_func(f2, 0, 1),
- extract_result(2));
+ bind_func<T>(f2, 0, 1),
+ extract_result<T>(2));
    handle_test_result(result, powm1_data[result.worst()], result.worst(), type_name, "boost::math::powm1", "powm1");
 }
 

Modified: branches/quickbook-dev/libs/math/test/sph_bessel_data.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/sph_bessel_data.ipp (original)
+++ branches/quickbook-dev/libs/math/test/sph_bessel_data.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
- static const boost::array<boost::array<T, 3>, 483> sph_bessel_data = {{
+ static const boost::array<boost::array<typename table_type<T>::type, 3>, 483> sph_bessel_data = {{
       {{ SC_(0), SC_(0.177219114266335964202880859375e-2), SC_(0.999999476556507842202459130864323898236e0) }},
       {{ SC_(0), SC_(0.22177286446094512939453125e-2), SC_(0.9999991802801447287222232346958222796612e0) }},
       {{ SC_(0), SC_(0.7444499991834163665771484375e-2), SC_(0.9999907632622405689302860688925139982587e0) }},

Modified: branches/quickbook-dev/libs/math/test/sph_neumann_data.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/sph_neumann_data.ipp (original)
+++ branches/quickbook-dev/libs/math/test/sph_neumann_data.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
- static const boost::array<boost::array<T, 3>, 284> sph_neumann_data = {{
+ static const boost::array<boost::array<typename table_type<T>::type, 3>, 284> sph_neumann_data = {{
       {{ SC_(0), SC_(0.177219114266335964202880859375e-2), SC_(-0.5642723324792311990959765396871018960216e3) }},
       {{ SC_(0), SC_(0.22177286446094512939453125e-2), SC_(-0.4509106843488238999473616173421364998283e3) }},
       {{ SC_(0), SC_(0.7444499991834163665771484375e-2), SC_(-0.1343236336805396008478682587573788632696e3) }},

Modified: branches/quickbook-dev/libs/math/test/spherical_harmonic.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/spherical_harmonic.ipp (original)
+++ branches/quickbook-dev/libs/math/test/spherical_harmonic.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,8 +3,8 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#define SC_(x) static_cast<T>(BOOST_JOIN(x, L))
- static const boost::array<boost::array<T, 6>, 1000> spherical_harmonic = {{
+#define SC_(x) static_cast<typename table_type<T>::type>(BOOST_JOIN(x, L))
+ static const boost::array<boost::array<typename table_type<T>::type, 6>, 1000> spherical_harmonic = {{
       {{ SC_(0.2e1), SC_(0), SC_(-0.6223074436187744140625e1), SC_(-0.983176708221435546875e0), SC_(0.62736841735769885881246893757736785347239567286304e0), SC_(0) }},
       {{ SC_(0.2e1), SC_(0), SC_(-0.5057456493377685546875e1), SC_(0.59339153766632080078125e0), SC_(-0.20713028443163886820218719974386053923059852163073e0), SC_(0) }},
       {{ SC_(0.2e1), SC_(0), SC_(-0.4687422275543212890625e1), SC_(0.5891966342926025390625e1), SC_(-0.31480190270523966739513025513763623833894947272512e0), SC_(0) }},

Modified: branches/quickbook-dev/libs/math/test/test_bessel_i.cpp
==============================================================================
--- branches/quickbook-dev/libs/math/test/test_bessel_i.cpp (original)
+++ branches/quickbook-dev/libs/math/test/test_bessel_i.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#include <pch.hpp>
+#include <pch_light.hpp>
 #include "test_bessel_i.hpp"
 
 //

Modified: branches/quickbook-dev/libs/math/test/test_bessel_i.hpp
==============================================================================
--- branches/quickbook-dev/libs/math/test/test_bessel_i.hpp (original)
+++ branches/quickbook-dev/libs/math/test/test_bessel_i.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -7,17 +7,17 @@
 #include <boost/math/concepts/real_concept.hpp>
 #include <boost/test/test_exec_monitor.hpp>
 #include <boost/test/floating_point_comparison.hpp>
-#include <boost/math/special_functions/bessel.hpp>
-#include <boost/math/special_functions/trunc.hpp>
+#include <boost/math/special_functions/math_fwd.hpp>
 #include <boost/type_traits/is_floating_point.hpp>
 #include <boost/array.hpp>
 #include "functor.hpp"
 
 #include "handle_test_result.hpp"
 #include "test_bessel_hooks.hpp"
+#include "table_type.hpp"
 
 #ifndef SC_
-# define SC_(x) static_cast<T>(BOOST_JOIN(x, L))
+# define SC_(x) static_cast<typename table_type<T>::type>(BOOST_JOIN(x, L))
 #endif
 
 template <class T>
@@ -28,11 +28,11 @@
       boost::math::itrunc(v), x));
 }
 
-template <class T>
+template <class Real, class T>
 void do_test_cyl_bessel_i(const T& data, const char* type_name, const char* test_name)
 {
    typedef typename T::value_type row_type;
- typedef typename row_type::value_type value_type;
+ typedef Real value_type;
 
    typedef value_type (*pg)(value_type, value_type);
 #if defined(BOOST_MATH_NO_DEDUCED_FUNCTION_POINTERS)
@@ -49,10 +49,10 @@
    //
    // test cyl_bessel_i against data:
    //
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func(funcp, 0, 1),
- extract_result(2));
+ bind_func<Real>(funcp, 0, 1),
+ extract_result<Real>(2));
    handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::cyl_bessel_i", test_name);
    std::cout << std::endl;
 
@@ -76,11 +76,11 @@
 #endif
 }
 
-template <class T>
+template <class Real, class T>
 void do_test_cyl_bessel_i_int(const T& data, const char* type_name, const char* test_name)
 {
    typedef typename T::value_type row_type;
- typedef typename row_type::value_type value_type;
+ typedef Real value_type;
 
    typedef value_type (*pg)(value_type, value_type);
 #if defined(BOOST_MATH_NO_DEDUCED_FUNCTION_POINTERS)
@@ -97,10 +97,10 @@
    //
    // test cyl_bessel_i against data:
    //
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func(funcp, 0, 1),
- extract_result(2));
+ bind_func<Real>(funcp, 0, 1),
+ extract_result<Real>(2));
    handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::cyl_bessel_i", test_name);
    std::cout << std::endl;
 }
@@ -115,8 +115,8 @@
         {{ SC_(0), SC_(-2), SC_(2.27958530233606726743720444081153335328584110278545905407084) }},
         {{ SC_(0), SC_(4), SC_(11.3019219521363304963562701832171024974126165944353377060065) }},
         {{ SC_(0), SC_(-7), SC_(168.593908510289698857326627187500840376522679234531714193194) }},
- {{ SC_(0), SC_(1) / 1024, SC_(1.00000023841859331241759166109699567801556273303717896447683) }},
- {{ SC_(0), SC_(1) / (1024*1024), SC_(1.00000000000022737367544324498417583090700894607432256476338) }},
+ {{ SC_(0), T(1) / 1024, SC_(1.00000023841859331241759166109699567801556273303717896447683) }},
+ {{ SC_(0), T(SC_(1)) / (1024*1024), SC_(1.00000000000022737367544324498417583090700894607432256476338) }},
         {{ SC_(0), SC_(-1), SC_(1.26606587775200833559824462521471753760767031135496220680814) }},
         {{ SC_(0), SC_(100), SC_(1.07375170713107382351972085760349466128840319332527279540154e42) }},
         {{ SC_(0), SC_(200), SC_(2.03968717340972461954167312677945962233267573614834337894328e85) }},
@@ -127,15 +127,15 @@
         {{ SC_(1), SC_(-2), SC_(-1.59063685463732906338225442499966624795447815949553664713229) }},
         {{ SC_(1), SC_(4), SC_(9.75946515370444990947519256731268090005597033325296730692753) }},
         {{ SC_(1), SC_(-8), SC_(-399.873136782560098219083086145822754889628443904067647306574) }},
- {{ SC_(1), SC_(1)/1024, SC_(0.000488281308207663226432087816784315537514225208473395063575150) }},
- {{ SC_(1), SC_(1)/(1024*1024), SC_(4.76837158203179210108624277276025646653133998635956784292029E-7) }},
+ {{ SC_(1), T(SC_(1))/1024, SC_(0.000488281308207663226432087816784315537514225208473395063575150) }},
+ {{ SC_(1), T(SC_(1))/(1024*1024), SC_(4.76837158203179210108624277276025646653133998635956784292029E-7) }},
         {{ SC_(1), SC_(-10), SC_(-2670.98830370125465434103196677215254914574515378753771310849) }},
         {{ SC_(1), SC_(100), SC_(1.06836939033816248120614576322429526544612284405623226965918e42) }},
         {{ SC_(1), SC_(200), SC_(2.03458154933206270342742797713906950389661161681122964159220e85) }},
     }};
     static const boost::array<boost::array<T, 3>, 11> in_data = {{
         {{ SC_(-2), SC_(0), SC_(0) }},
- {{ SC_(2), SC_(1)/(1024*1024), SC_(1.13686837721624646204093977095674566928522671779753217215467e-13) }},
+ {{ SC_(2), T(SC_(1))/(1024*1024), SC_(1.13686837721624646204093977095674566928522671779753217215467e-13) }},
         {{ SC_(5), SC_(10), SC_(777.188286403259959907293484802339632852674154572666041953297) }},
         {{ SC_(-5), SC_(100), SC_(9.47009387303558124618275555002161742321578485033007130107740e41) }},
         {{ SC_(-5), SC_(-1), SC_(-0.000271463155956971875181073905153777342383564426758143634974124) }},
@@ -147,16 +147,16 @@
         {{ SC_(10), SC_(1e-100), SC_(2.69114445546737213403880070546737213403880070546737213403880e-1010) }},
     }};
     static const boost::array<boost::array<T, 3>, 10> iv_data = {{
- {{ SC_(2.25), SC_(1)/(1024*1024), SC_(2.34379212133481347189068464680335815256364262507955635911656e-15) }},
+ {{ SC_(2.25), T(1)/(1024*1024), SC_(2.34379212133481347189068464680335815256364262507955635911656e-15) }},
         {{ SC_(5.5), SC_(3.125), SC_(0.0583514045989371500460946536220735787163510569634133670181210) }},
- {{ SC_(-5) + T(1)/1024, SC_(2.125), SC_(0.0267920938009571023702933210070984416052633027166975342895062) }},
+ {{ T(-5) + T(1)/1024, SC_(2.125), SC_(0.0267920938009571023702933210070984416052633027166975342895062) }},
         {{ SC_(-5.5), SC_(10), SC_(597.577606961369169607937419869926705730305175364662688426534) }},
         {{ SC_(-5.5), SC_(100), SC_(9.22362906144706871737354069133813819358704200689067071415379e41) }},
- {{ SC_(-10486074)/(1024*1024), SC_(1)/1024, SC_(1.41474005665181350367684623930576333542989766867888186478185e35) }},
- {{ SC_(-10486074)/(1024*1024), SC_(50), SC_(1.07153277202900671531087024688681954238311679648319534644743e20) }},
- {{ SC_(144794)/1024, SC_(100), SC_(2066.27694757392660413922181531984160871678224178890247540320) }},
- {{ SC_(144794)/1024, SC_(200), SC_(2.23699739472246928794922868978337381373643889659337595319774e64) }},
- {{ SC_(-144794)/1024, SC_(100), SC_(2066.27694672763190927440969155740243346136463461655104698748) }},
+ {{ T(-10486074)/(1024*1024), T(1)/1024, SC_(1.41474005665181350367684623930576333542989766867888186478185e35) }},
+ {{ T(-10486074)/(1024*1024), SC_(50), SC_(1.07153277202900671531087024688681954238311679648319534644743e20) }},
+ {{ T(144794)/1024, SC_(100), SC_(2066.27694757392660413922181531984160871678224178890247540320) }},
+ {{ T(144794)/1024, SC_(200), SC_(2.23699739472246928794922868978337381373643889659337595319774e64) }},
+ {{ T(-144794)/1024, SC_(100), SC_(2066.27694672763190927440969155740243346136463461655104698748) }},
     }};
     static const boost::array<boost::array<T, 3>, 5> iv_large_data = {{
         // Bug report https://svn.boost.org/trac/boost/ticket/5560:
@@ -167,22 +167,22 @@
         {{ SC_(0.5), static_cast<T>(ldexp(0.5, -683)), SC_(8.90597649117647254543282704099383321071493400182381039079219e-104) }},
     }};
 
- do_test_cyl_bessel_i(i0_data, name, "Bessel I0: Mathworld Data");
- do_test_cyl_bessel_i(i1_data, name, "Bessel I1: Mathworld Data");
- do_test_cyl_bessel_i(in_data, name, "Bessel In: Mathworld Data");
-
- do_test_cyl_bessel_i_int(i0_data, name, "Bessel I0: Mathworld Data (Integer Version)");
- do_test_cyl_bessel_i_int(i1_data, name, "Bessel I1: Mathworld Data (Integer Version)");
- do_test_cyl_bessel_i_int(in_data, name, "Bessel In: Mathworld Data (Integer Version)");
+ do_test_cyl_bessel_i<T>(i0_data, name, "Bessel I0: Mathworld Data");
+ do_test_cyl_bessel_i<T>(i1_data, name, "Bessel I1: Mathworld Data");
+ do_test_cyl_bessel_i<T>(in_data, name, "Bessel In: Mathworld Data");
+
+ do_test_cyl_bessel_i_int<T>(i0_data, name, "Bessel I0: Mathworld Data (Integer Version)");
+ do_test_cyl_bessel_i_int<T>(i1_data, name, "Bessel I1: Mathworld Data (Integer Version)");
+ do_test_cyl_bessel_i_int<T>(in_data, name, "Bessel In: Mathworld Data (Integer Version)");
 
- do_test_cyl_bessel_i(iv_data, name, "Bessel Iv: Mathworld Data");
+ do_test_cyl_bessel_i<T>(iv_data, name, "Bessel Iv: Mathworld Data");
 
 #include "bessel_i_int_data.ipp"
- do_test_cyl_bessel_i(bessel_i_int_data, name, "Bessel In: Random Data");
+ do_test_cyl_bessel_i<T>(bessel_i_int_data, name, "Bessel In: Random Data");
 #include "bessel_i_data.ipp"
- do_test_cyl_bessel_i(bessel_i_data, name, "Bessel Iv: Random Data");
+ do_test_cyl_bessel_i<T>(bessel_i_data, name, "Bessel Iv: Random Data");
 
     if(0 != static_cast<T>(ldexp(0.5, -700)))
- do_test_cyl_bessel_i(iv_large_data, name, "Bessel Iv: Mathworld Data (large values)");
+ do_test_cyl_bessel_i<T>(iv_large_data, name, "Bessel Iv: Mathworld Data (large values)");
 }
 

Modified: branches/quickbook-dev/libs/math/test/test_bessel_j.cpp
==============================================================================
--- branches/quickbook-dev/libs/math/test/test_bessel_j.cpp (original)
+++ branches/quickbook-dev/libs/math/test/test_bessel_j.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#include <pch.hpp>
+#include <pch_light.hpp>
 
 #include "test_bessel_j.hpp"
 

Modified: branches/quickbook-dev/libs/math/test/test_bessel_j.hpp
==============================================================================
--- branches/quickbook-dev/libs/math/test/test_bessel_j.hpp (original)
+++ branches/quickbook-dev/libs/math/test/test_bessel_j.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -7,24 +7,24 @@
 #include <boost/math/concepts/real_concept.hpp>
 #include <boost/test/test_exec_monitor.hpp>
 #include <boost/test/floating_point_comparison.hpp>
-#include <boost/math/special_functions/bessel.hpp>
-#include <boost/math/special_functions/trunc.hpp>
+#include <boost/math/special_functions/math_fwd.hpp>
 #include <boost/type_traits/is_floating_point.hpp>
 #include <boost/array.hpp>
 #include "functor.hpp"
 
 #include "handle_test_result.hpp"
 #include "test_bessel_hooks.hpp"
+#include "table_type.hpp"
 
 #ifndef SC_
-# define SC_(x) static_cast<T>(BOOST_JOIN(x, L))
+# define SC_(x) static_cast<typename table_type<T>::type>(BOOST_JOIN(x, L))
 #endif
 
-template <class T>
+template <class Real, class T>
 void do_test_cyl_bessel_j(const T& data, const char* type_name, const char* test_name)
 {
    typedef typename T::value_type row_type;
- typedef typename row_type::value_type value_type;
+ typedef Real value_type;
 
    typedef value_type (*pg)(value_type, value_type);
 #if defined(BOOST_MATH_NO_DEDUCED_FUNCTION_POINTERS)
@@ -41,10 +41,10 @@
    //
    // test cyl_bessel_j against data:
    //
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func(funcp, 0, 1),
- extract_result(2));
+ bind_func<Real>(funcp, 0, 1),
+ extract_result<Real>(2));
    handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::cyl_bessel_j", test_name);
    std::cout << std::endl;
 
@@ -56,10 +56,10 @@
       //
       // test other::cyl_bessel_j against data:
       //
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero(
          data,
- bind_func(funcp, 0, 1),
- extract_result(2));
+ bind_func<Real>(funcp, 0, 1),
+ extract_result<Real>(2));
       handle_test_result(result, data[result.worst()], result.worst(), type_name, "other::cyl_bessel_j", test_name);
       std::cout << std::endl;
    }
@@ -73,11 +73,11 @@
 }
 
 
-template <class T>
+template <class Real, class T>
 void do_test_cyl_bessel_j_int(const T& data, const char* type_name, const char* test_name)
 {
    typedef typename T::value_type row_type;
- typedef typename row_type::value_type value_type;
+ typedef Real value_type;
 
    typedef value_type (*pg)(value_type, value_type);
 #if defined(BOOST_MATH_NO_DEDUCED_FUNCTION_POINTERS)
@@ -94,19 +94,19 @@
    //
    // test cyl_bessel_j against data:
    //
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func(funcp, 0, 1),
- extract_result(2));
+ bind_func<Real>(funcp, 0, 1),
+ extract_result<Real>(2));
    handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::cyl_bessel_j", test_name);
    std::cout << std::endl;
 }
 
-template <class T>
+template <class Real, class T>
 void do_test_sph_bessel_j(const T& data, const char* type_name, const char* test_name)
 {
    typedef typename T::value_type row_type;
- typedef typename row_type::value_type value_type;
+ typedef Real value_type;
 
    typedef value_type (*pg)(unsigned, value_type);
 #if defined(BOOST_MATH_NO_DEDUCED_FUNCTION_POINTERS)
@@ -125,10 +125,10 @@
    //
    // test sph_bessel against data:
    //
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func_int1(funcp, 0, 1),
- extract_result(2));
+ bind_func_int1<Real>(funcp, 0, 1),
+ extract_result<Real>(2));
    handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::sph_bessel", test_name);
    std::cout << std::endl;
 }
@@ -143,7 +143,7 @@
    // three items, input value a, input value b and erf(a, b):
    //
     // function values calculated on http://functions.wolfram.com/
- static const boost::array<boost::array<T, 3>, 8> j0_data = {{
+ static const boost::array<boost::array<typename table_type<T>::type, 3>, 8> j0_data = {{
        {{ SC_(0), SC_(0), SC_(1) }},
         {{ SC_(0), SC_(1), SC_(0.7651976865579665514497175261026632209093) }},
         {{ SC_(0), SC_(-2), SC_(0.2238907791412356680518274546499486258252) }},
@@ -158,13 +158,13 @@
        {{ SC_(0), SC_(1e+03), SC_(0.02478668615242017456133073111569370878617) }},
         {{ SC_(0), SC_(1e+05), SC_(-0.001719201116235972192570601477073201747532) }},
         // test at the roots:
- {{ SC_(0), SC_(2521642)/(1024 * 1024), SC_(1.80208819970046790002973759410972422387259992955354630042138e-7) }},
- {{ SC_(0), SC_(5788221)/(1024 * 1024), SC_(-1.37774249380686777043369399806210229535671843632174587432454e-7) }},
- {{ SC_(0), SC_(9074091)/(1024 * 1024), SC_(1.03553057441100845081018471279571355857520645127532785991335e-7) }},
- {{ SC_(0), SC_(12364320)/(1024 * 1024), SC_(-3.53017140778223781420794006033810387155048392363051866610931e-9) }}
+ {{ SC_(0), T(2521642)/(1024 * 1024), SC_(1.80208819970046790002973759410972422387259992955354630042138e-7) }},
+ {{ SC_(0), T(5788221)/(1024 * 1024), SC_(-1.37774249380686777043369399806210229535671843632174587432454e-7) }},
+ {{ SC_(0), T(9074091)/(1024 * 1024), SC_(1.03553057441100845081018471279571355857520645127532785991335e-7) }},
+ {{ SC_(0), T(12364320)/(1024 * 1024), SC_(-3.53017140778223781420794006033810387155048392363051866610931e-9) }}
     }};
 
- static const boost::array<boost::array<T, 3>, 8> j1_data = {{
+ static const boost::array<boost::array<typename table_type<T>::type, 3>, 8> j1_data = {{
         {{ SC_(1), SC_(0), SC_(0) }},
         {{ SC_(1), SC_(1), SC_(0.4400505857449335159596822037189149131274) }},
         {{ SC_(1), SC_(-2), SC_(-0.5767248077568733872024482422691370869203) }},
@@ -179,12 +179,12 @@
         {{ SC_(1), SC_(1e+03), SC_(4.728311907089523917576071901216916285418e-03) }},
         {{ SC_(1), SC_(1e+05), SC_(1.846757562882567716362123967114215743694e-03) }},
         // test zeros:
- {{ SC_(1), SC_(4017834)/(1024*1024), SC_(3.53149033321258645807835062770856949751958513973522222203044e-7) }},
- {{ SC_(1), SC_(7356375)/(1024*1024), SC_(-2.31227973111067286051984021150135526024117175836722748404342e-7) }},
- {{ SC_(1), SC_(10667654)/(1024*1024), SC_(1.24591331097191900488116495350277530373473085499043086981229e-7) }},
+ {{ SC_(1), T(4017834)/(1024*1024), SC_(3.53149033321258645807835062770856949751958513973522222203044e-7) }},
+ {{ SC_(1), T(7356375)/(1024*1024), SC_(-2.31227973111067286051984021150135526024117175836722748404342e-7) }},
+ {{ SC_(1), T(10667654)/(1024*1024), SC_(1.24591331097191900488116495350277530373473085499043086981229e-7) }},
     }};
 
- static const boost::array<boost::array<T, 3>, 16> jn_data = {{
+ static const boost::array<boost::array<typename table_type<T>::type, 3>, 16> jn_data = {{
         // This first one is a modified test case from https://svn.boost.org/trac/boost/ticket/2733
         {{ SC_(-1), SC_(1.25), SC_(-0.510623260319880467069474837274910375352924050139633057168856) }},
         {{ SC_(2), SC_(0), SC_(0) }},
@@ -203,23 +203,23 @@
         {{ SC_(1e+03), SC_(1e+05), SC_(1.283178112502480365195139312635384057363e-03) }},
         {{ SC_(10), SC_(1e-100), SC_(2.69114445546737213403880070546737213403880070546737213403880e-1010) }},
     }};
- do_test_cyl_bessel_j(j0_data, name, "Bessel J0: Mathworld Data");
- do_test_cyl_bessel_j(j0_tricky, name, "Bessel J0: Mathworld Data (Tricky cases)");
- do_test_cyl_bessel_j(j1_data, name, "Bessel J1: Mathworld Data");
- do_test_cyl_bessel_j(j1_tricky, name, "Bessel J1: Mathworld Data (tricky cases)");
- do_test_cyl_bessel_j(jn_data, name, "Bessel JN: Mathworld Data");
-
- do_test_cyl_bessel_j_int(j0_data, name, "Bessel J0: Mathworld Data (Integer Version)");
- do_test_cyl_bessel_j_int(j0_tricky, name, "Bessel J0: Mathworld Data (Tricky cases) (Integer Version)");
- do_test_cyl_bessel_j_int(j1_data, name, "Bessel J1: Mathworld Data (Integer Version)");
- do_test_cyl_bessel_j_int(j1_tricky, name, "Bessel J1: Mathworld Data (tricky cases) (Integer Version)");
- do_test_cyl_bessel_j_int(jn_data, name, "Bessel JN: Mathworld Data (Integer Version)");
+ do_test_cyl_bessel_j<T>(j0_data, name, "Bessel J0: Mathworld Data");
+ do_test_cyl_bessel_j<T>(j0_tricky, name, "Bessel J0: Mathworld Data (Tricky cases)");
+ do_test_cyl_bessel_j<T>(j1_data, name, "Bessel J1: Mathworld Data");
+ do_test_cyl_bessel_j<T>(j1_tricky, name, "Bessel J1: Mathworld Data (tricky cases)");
+ do_test_cyl_bessel_j<T>(jn_data, name, "Bessel JN: Mathworld Data");
+
+ do_test_cyl_bessel_j_int<T>(j0_data, name, "Bessel J0: Mathworld Data (Integer Version)");
+ do_test_cyl_bessel_j_int<T>(j0_tricky, name, "Bessel J0: Mathworld Data (Tricky cases) (Integer Version)");
+ do_test_cyl_bessel_j_int<T>(j1_data, name, "Bessel J1: Mathworld Data (Integer Version)");
+ do_test_cyl_bessel_j_int<T>(j1_tricky, name, "Bessel J1: Mathworld Data (tricky cases) (Integer Version)");
+ do_test_cyl_bessel_j_int<T>(jn_data, name, "Bessel JN: Mathworld Data (Integer Version)");
 
     static const boost::array<boost::array<T, 3>, 18> jv_data = {{
         //SC_(-2.4), {{ SC_(0), std::numeric_limits<T>::infinity() }},
- {{ SC_(2457)/1024, SC_(1)/1024, SC_(3.80739920118603335646474073457326714709615200130620574875292e-9) }},
- {{ SC_(5.5), SC_(3217)/1024, SC_(0.0281933076257506091621579544064767140470089107926550720453038) }},
- {{ SC_(-5.5), SC_(3217)/1024, SC_(-2.55820064470647911823175836997490971806135336759164272675969) }},
+ {{ T(2457)/1024, T(1)/1024, SC_(3.80739920118603335646474073457326714709615200130620574875292e-9) }},
+ {{ SC_(5.5), T(3217)/1024, SC_(0.0281933076257506091621579544064767140470089107926550720453038) }},
+ {{ SC_(-5.5), T(3217)/1024, SC_(-2.55820064470647911823175836997490971806135336759164272675969) }},
         {{ SC_(-5.5), SC_(1e+04), SC_(2.449843111985605522111159013846599118397e-03) }},
         {{ SC_(5.5), SC_(1e+04), SC_(0.00759343502722670361395585198154817047185480147294665270646578) }},
         {{ SC_(5.5), SC_(1e+06), SC_(-0.000747424248595630177396350688505919533097973148718960064663632) }},
@@ -229,15 +229,15 @@
         {{ SC_(-5.5), SC_(1e+04), SC_(0.00244984311198560552211115901384659911839737686676766460822577) }},
         {{ SC_(-5.5), SC_(1e+06), SC_(0.000279243200433579511095229508894156656558211060453622750659554) }},
         {{ SC_(-0.5), SC_(101), SC_(0.0708184798097594268482290389188138201440114881159344944791454) }},
- {{ SC_(-10486074) / (1024*1024), SC_(1)/1024, SC_(1.41474013160494695750009004222225969090304185981836460288562e35) }},
- {{ SC_(-10486074) / (1024*1024), SC_(15), SC_(-0.0902239288885423309568944543848111461724911781719692852541489) }},
- {{ SC_(10486074) / (1024*1024), SC_(1e+02), SC_(-0.0547064914615137807616774867984047583596945624129838091326863) }},
- {{ SC_(10486074) / (1024*1024), SC_(2e+04), SC_(-0.00556783614400875611650958980796060611309029233226596737701688) }},
- {{ SC_(-10486074) / (1024*1024), SC_(1e+02), SC_(-0.0547613660316806551338637153942604550779513947674222863858713) }},
+ {{ T(-10486074) / (1024*1024), T(1)/1024, SC_(1.41474013160494695750009004222225969090304185981836460288562e35) }},
+ {{ T(-10486074) / (1024*1024), SC_(15), SC_(-0.0902239288885423309568944543848111461724911781719692852541489) }},
+ {{ T(10486074) / (1024*1024), SC_(1e+02), SC_(-0.0547064914615137807616774867984047583596945624129838091326863) }},
+ {{ T(10486074) / (1024*1024), SC_(2e+04), SC_(-0.00556783614400875611650958980796060611309029233226596737701688) }},
+ {{ T(-10486074) / (1024*1024), SC_(1e+02), SC_(-0.0547613660316806551338637153942604550779513947674222863858713) }},
         // Bug report https://svn.boost.org/trac/boost/ticket/4812:
- {{ SC_(1.5), SC_(8034)/1024, SC_(0.0339477646369710610146236955872928005087352629422508823945264) }},
+ {{ SC_(1.5), T(8034)/1024, SC_(0.0339477646369710610146236955872928005087352629422508823945264) }},
     }};
- do_test_cyl_bessel_j(jv_data, name, "Bessel J: Mathworld Data");
+ do_test_cyl_bessel_j<T>(jv_data, name, "Bessel J: Mathworld Data");
     static const boost::array<boost::array<T, 3>, 4> jv_large_data = {{
         // Bug report https://svn.boost.org/trac/boost/ticket/5560:
         {{ SC_(-0.5), static_cast<T>(std::ldexp(0.5, -683)), SC_(7.14823099969225685526188875418476476336424046896822867989728e102) }},
@@ -246,18 +246,18 @@
         {{ SC_(-2.5), SC_(4), SC_(-0.0145679476685218007666785535204236327832335803441449596297004) }},
     }};
     if(jv_large_data[0][1] != 0)
- do_test_cyl_bessel_j(jv_data, name, "Bessel J: Mathworld Data (large values)");
+ do_test_cyl_bessel_j<T>(jv_data, name, "Bessel J: Mathworld Data (large values)");
 
 #include "bessel_j_int_data.ipp"
- do_test_cyl_bessel_j(bessel_j_int_data, name, "Bessel JN: Random Data");
+ do_test_cyl_bessel_j<T>(bessel_j_int_data, name, "Bessel JN: Random Data");
 
 #include "bessel_j_data.ipp"
- do_test_cyl_bessel_j(bessel_j_data, name, "Bessel J: Random Data");
+ do_test_cyl_bessel_j<T>(bessel_j_data, name, "Bessel J: Random Data");
 
 #include "bessel_j_large_data.ipp"
- do_test_cyl_bessel_j(bessel_j_large_data, name, "Bessel J: Random Data (Tricky large values)");
+ do_test_cyl_bessel_j<T>(bessel_j_large_data, name, "Bessel J: Random Data (Tricky large values)");
 
 #include "sph_bessel_data.ipp"
- do_test_sph_bessel_j(sph_bessel_data, name, "Bessel j: Random Data");
+ do_test_sph_bessel_j<T>(sph_bessel_data, name, "Bessel j: Random Data");
 }
 

Modified: branches/quickbook-dev/libs/math/test/test_bessel_k.cpp
==============================================================================
--- branches/quickbook-dev/libs/math/test/test_bessel_k.cpp (original)
+++ branches/quickbook-dev/libs/math/test/test_bessel_k.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -5,7 +5,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#include <pch.hpp>
+#include <pch_light.hpp>
 
 #ifdef _MSC_VER
 # pragma warning(disable : 4756) // overflow in constant arithmetic

Modified: branches/quickbook-dev/libs/math/test/test_bessel_k.hpp
==============================================================================
--- branches/quickbook-dev/libs/math/test/test_bessel_k.hpp (original)
+++ branches/quickbook-dev/libs/math/test/test_bessel_k.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -7,17 +7,17 @@
 #include <boost/math/concepts/real_concept.hpp>
 #include <boost/test/test_exec_monitor.hpp>
 #include <boost/test/floating_point_comparison.hpp>
-#include <boost/math/special_functions/bessel.hpp>
-#include <boost/math/special_functions/trunc.hpp>
+#include <boost/math/special_functions/math_fwd.hpp>
 #include <boost/type_traits/is_floating_point.hpp>
 #include <boost/array.hpp>
 #include "functor.hpp"
 
 #include "handle_test_result.hpp"
 #include "test_bessel_hooks.hpp"
+#include "table_type.hpp"
 
 #ifndef SC_
-# define SC_(x) static_cast<T>(BOOST_JOIN(x, L))
+# define SC_(x) static_cast<typename table_type<T>::type>(BOOST_JOIN(x, L))
 #endif
 
 template <class T>
@@ -28,11 +28,11 @@
       boost::math::itrunc(v), x));
 }
 
-template <class T>
+template <class Real, class T>
 void do_test_cyl_bessel_k(const T& data, const char* type_name, const char* test_name)
 {
    typedef typename T::value_type row_type;
- typedef typename row_type::value_type value_type;
+ typedef Real value_type;
 
    typedef value_type (*pg)(value_type, value_type);
 #if defined(BOOST_MATH_NO_DEDUCED_FUNCTION_POINTERS)
@@ -49,10 +49,10 @@
    //
    // test cyl_bessel_k against data:
    //
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func(funcp, 0, 1),
- extract_result(2));
+ bind_func<Real>(funcp, 0, 1),
+ extract_result<Real>(2));
    handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::cyl_bessel_k", test_name);
    std::cout << std::endl;
 
@@ -64,21 +64,21 @@
       //
       // test other::cyl_bessel_k against data:
       //
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero(
          data,
- bind_func(funcp, 0, 1),
- extract_result(2));
+ bind_func<Real>(funcp, 0, 1),
+ extract_result<Real>(2));
       print_test_result(result, data[result.worst()], result.worst(), type_name, "other::cyl_bessel_k");
       std::cout << std::endl;
    }
 #endif
 }
 
-template <class T>
+template <class Real, class T>
 void do_test_cyl_bessel_k_int(const T& data, const char* type_name, const char* test_name)
 {
    typedef typename T::value_type row_type;
- typedef typename row_type::value_type value_type;
+ typedef Real value_type;
 
    typedef value_type (*pg)(value_type, value_type);
 #if defined(BOOST_MATH_NO_DEDUCED_FUNCTION_POINTERS)
@@ -95,10 +95,10 @@
    //
    // test cyl_bessel_k against data:
    //
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func(funcp, 0, 1),
- extract_result(2));
+ bind_func<Real>(funcp, 0, 1),
+ extract_result<Real>(2));
    handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::cyl_bessel_k", test_name);
    std::cout << std::endl;
 }
@@ -144,14 +144,14 @@
         {{ SC_(0.5), SC_(0.875), SC_(0.558532231646608646115729767013630967055657943463362504577189) }},
         {{ SC_(0.5), SC_(1.125), SC_(0.383621010650189547146769320487006220295290256657827220786527) }},
         {{ SC_(2.25), T(std::ldexp(1.0, -30)), SC_(5.62397392719283271332307799146649700147907612095185712015604e20) }},
- {{ SC_(5.5), SC_(3217)/1024, SC_(1.30623288775012596319554857587765179889689223531159532808379) }},
+ {{ SC_(5.5), T(3217)/1024, SC_(1.30623288775012596319554857587765179889689223531159532808379) }},
         {{ SC_(-5.5), SC_(10), SC_(0.0000733045300798502164644836879577484533096239574909573072142667) }},
         {{ SC_(-5.5), SC_(100), SC_(5.41274555306792267322084448693957747924412508020839543293369e-45) }},
- {{ SC_(10240)/1024, SC_(1)/1024, SC_(2.35522579263922076203415803966825431039900000000993410734978e38) }},
- {{ SC_(10240)/1024, SC_(10), SC_(0.00161425530039067002345725193091329085443750382929208307802221) }},
- {{ SC_(144793)/1024, SC_(100), SC_(1.39565245860302528069481472855619216759142225046370312329416e-6) }},
- {{ SC_(144793)/1024, SC_(200), SC_(9.11950412043225432171915100042647230802198254567007382956336e-68) }},
- {{ SC_(-144793)/1024, SC_(50), SC_(1.30185229717525025165362673848737761549946548375142378172956e42) }},
+ {{ T(10240)/1024, T(1)/1024, SC_(2.35522579263922076203415803966825431039900000000993410734978e38) }},
+ {{ T(10240)/1024, SC_(10), SC_(0.00161425530039067002345725193091329085443750382929208307802221) }},
+ {{ T(144793)/1024, SC_(100), SC_(1.39565245860302528069481472855619216759142225046370312329416e-6) }},
+ {{ T(144793)/1024, SC_(200), SC_(9.11950412043225432171915100042647230802198254567007382956336e-68) }},
+ {{ T(-144793)/1024, SC_(50), SC_(1.30185229717525025165362673848737761549946548375142378172956e42) }},
     }};
     static const boost::array<boost::array<T, 3>, 5> kv_large_data = {{
         // Bug report https://svn.boost.org/trac/boost/ticket/5560:
@@ -162,20 +162,20 @@
         {{ SC_(0.5), static_cast<T>(ldexp(0.5, -683)), SC_(1.12284149973980088540335945247019177715948513804063794284101e103) }},
     }};
 
- do_test_cyl_bessel_k(k0_data, name, "Bessel K0: Mathworld Data");
- do_test_cyl_bessel_k(k1_data, name, "Bessel K1: Mathworld Data");
- do_test_cyl_bessel_k(kn_data, name, "Bessel Kn: Mathworld Data");
-
- do_test_cyl_bessel_k_int(k0_data, name, "Bessel K0: Mathworld Data (Integer Version)");
- do_test_cyl_bessel_k_int(k1_data, name, "Bessel K1: Mathworld Data (Integer Version)");
- do_test_cyl_bessel_k_int(kn_data, name, "Bessel Kn: Mathworld Data (Integer Version)");
+ do_test_cyl_bessel_k<T>(k0_data, name, "Bessel K0: Mathworld Data");
+ do_test_cyl_bessel_k<T>(k1_data, name, "Bessel K1: Mathworld Data");
+ do_test_cyl_bessel_k<T>(kn_data, name, "Bessel Kn: Mathworld Data");
+
+ do_test_cyl_bessel_k_int<T>(k0_data, name, "Bessel K0: Mathworld Data (Integer Version)");
+ do_test_cyl_bessel_k_int<T>(k1_data, name, "Bessel K1: Mathworld Data (Integer Version)");
+ do_test_cyl_bessel_k_int<T>(kn_data, name, "Bessel Kn: Mathworld Data (Integer Version)");
 
- do_test_cyl_bessel_k(kv_data, name, "Bessel Kv: Mathworld Data");
+ do_test_cyl_bessel_k<T>(kv_data, name, "Bessel Kv: Mathworld Data");
     if(0 != static_cast<T>(ldexp(0.5, -512)))
- do_test_cyl_bessel_k(kv_large_data, name, "Bessel Kv: Mathworld Data (large values)");
+ do_test_cyl_bessel_k<T>(kv_large_data, name, "Bessel Kv: Mathworld Data (large values)");
 #include "bessel_k_int_data.ipp"
- do_test_cyl_bessel_k(bessel_k_int_data, name, "Bessel Kn: Random Data");
+ do_test_cyl_bessel_k<T>(bessel_k_int_data, name, "Bessel Kn: Random Data");
 #include "bessel_k_data.ipp"
- do_test_cyl_bessel_k(bessel_k_data, name, "Bessel Kv: Random Data");
+ do_test_cyl_bessel_k<T>(bessel_k_data, name, "Bessel Kv: Random Data");
 }
 

Modified: branches/quickbook-dev/libs/math/test/test_bessel_y.cpp
==============================================================================
--- branches/quickbook-dev/libs/math/test/test_bessel_y.cpp (original)
+++ branches/quickbook-dev/libs/math/test/test_bessel_y.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#include <pch.hpp>
+#include <pch_light.hpp>
 
 #include "test_bessel_y.hpp"
 

Modified: branches/quickbook-dev/libs/math/test/test_bessel_y.hpp
==============================================================================
--- branches/quickbook-dev/libs/math/test/test_bessel_y.hpp (original)
+++ branches/quickbook-dev/libs/math/test/test_bessel_y.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -7,24 +7,24 @@
 #include <boost/math/concepts/real_concept.hpp>
 #include <boost/test/test_exec_monitor.hpp>
 #include <boost/test/floating_point_comparison.hpp>
-#include <boost/math/special_functions/bessel.hpp>
-#include <boost/math/special_functions/trunc.hpp>
+#include <boost/math/special_functions/math_fwd.hpp>
 #include <boost/type_traits/is_floating_point.hpp>
 #include <boost/array.hpp>
 #include "functor.hpp"
 
 #include "handle_test_result.hpp"
 #include "test_bessel_hooks.hpp"
+#include "table_type.hpp"
 
 #ifndef SC_
-# define SC_(x) static_cast<T>(BOOST_JOIN(x, L))
+# define SC_(x) static_cast<typename table_type<T>::type>(BOOST_JOIN(x, L))
 #endif
 
-template <class T>
+template <class Real, class T>
 void do_test_cyl_neumann_y(const T& data, const char* type_name, const char* test_name)
 {
    typedef typename T::value_type row_type;
- typedef typename row_type::value_type value_type;
+ typedef Real value_type;
 
    typedef value_type (*pg)(value_type, value_type);
 #if defined(BOOST_MATH_NO_DEDUCED_FUNCTION_POINTERS)
@@ -41,10 +41,10 @@
    //
    // test cyl_neumann against data:
    //
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func(funcp, 0, 1),
- extract_result(2));
+ bind_func<Real>(funcp, 0, 1),
+ extract_result<Real>(2));
    handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::cyl_neumann", test_name);
    std::cout << std::endl;
 
@@ -56,10 +56,10 @@
       //
       // test other::cyl_neumann against data:
       //
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
          data,
- bind_func(funcp, 0, 1),
- extract_result(2));
+ bind_func<Real>(funcp, 0, 1),
+ extract_result<Real>(2));
       handle_test_result(result, data[result.worst()], result.worst(), type_name, "other::cyl_neumann", test_name);
       std::cout << std::endl;
    }
@@ -72,11 +72,11 @@
    return static_cast<T>(boost::math::cyl_neumann(boost::math::itrunc(v), x));
 }
 
-template <class T>
+template <class Real, class T>
 void do_test_cyl_neumann_y_int(const T& data, const char* type_name, const char* test_name)
 {
    typedef typename T::value_type row_type;
- typedef typename row_type::value_type value_type;
+ typedef Real value_type;
 
    typedef value_type (*pg)(value_type, value_type);
 #if defined(BOOST_MATH_NO_DEDUCED_FUNCTION_POINTERS)
@@ -93,19 +93,19 @@
    //
    // test cyl_neumann against data:
    //
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func(funcp, 0, 1),
- extract_result(2));
+ bind_func<Real>(funcp, 0, 1),
+ extract_result<Real>(2));
    handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::cyl_neumann", test_name);
    std::cout << std::endl;
 }
 
-template <class T>
+template <class Real, class T>
 void do_test_sph_neumann_y(const T& data, const char* type_name, const char* test_name)
 {
    typedef typename T::value_type row_type;
- typedef typename row_type::value_type value_type;
+ typedef Real value_type;
 
    typedef value_type (*pg)(unsigned, value_type);
 #if defined(BOOST_MATH_NO_DEDUCED_FUNCTION_POINTERS)
@@ -124,10 +124,10 @@
    //
    // test sph_neumann against data:
    //
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func_int1(funcp, 0, 1),
- extract_result(2));
+ bind_func_int1<Real>(funcp, 0, 1),
+ extract_result<Real>(2));
    handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::cyl_neumann", test_name);
    std::cout << std::endl;
 }
@@ -142,7 +142,7 @@
    // three items, input value a, input value b and erf(a, b):
    //
     // function values calculated on http://functions.wolfram.com/
- static const boost::array<boost::array<T, 3>, 9> y0_data = {{
+ static const boost::array<boost::array<typename table_type<T>::type, 3>, 9> y0_data = {{
         {{ SC_(0), SC_(1), SC_(0.0882569642156769579829267660235151628278175230906755467110438) }},
         {{ SC_(0), SC_(2), SC_(0.510375672649745119596606592727157873268139227085846135571839) }},
         {{ SC_(0), SC_(4), SC_(-0.0169407393250649919036351344471532182404925898980149027169321) }},
@@ -153,7 +153,7 @@
         {{ SC_(0), SC_(1e+03), SC_(0.00471591797762281339977326146566525500985900489680197718528000) }},
         {{ SC_(0), SC_(1e+05), SC_(0.00184676615886506410434074102431546125884886798090392516843524) }}
     }};
- static const boost::array<boost::array<T, 3>, 9> y1_data = {{
+ static const boost::array<boost::array<typename table_type<T>::type, 3>, 9> y1_data = {{
         {{ SC_(1), SC_(1), SC_(-0.781212821300288716547150000047964820549906390716444607843833) }},
         {{ SC_(1), SC_(2), SC_(-0.107032431540937546888370772277476636687480898235053860525795) }},
         {{ SC_(1), SC_(4), SC_(0.397925710557100005253979972450791852271189181622908340876586) }},
@@ -164,7 +164,7 @@
         {{ SC_(1), SC_(1e+03), SC_(-0.0247843312923517789148623560971412909386318548648705287583490) }},
         {{ SC_(1), SC_(1e+05), SC_(0.00171921035008825630099494523539897102954509504993494957572726) }}
     }};
- static const boost::array<boost::array<T, 3>, 9> yn_data = {{
+ static const boost::array<boost::array<typename table_type<T>::type, 3>, 10> yn_data = {{
         {{ SC_(2), SC_(1e-20), SC_(-1.27323954473516268615107010698011489627570899691226996904849e40) }},
         {{ SC_(5), SC_(10), SC_(0.135403047689362303197029014762241709088405766746419538495983) }},
         {{ SC_(-5), SC_(1e+06), SC_(0.000331052088322609048503535570014688967096938338061796192422114) }},
@@ -173,16 +173,17 @@
         {{ SC_(-10), SC_(1e+06), SC_(0.000725951969295187086245251366365393653610914686201194434805730) }},
         {{ SC_(1e+02), SC_(5), SC_(-5.08486391602022287993091563093082035595081274976837280338134e115) }},
         {{ SC_(1e+03), SC_(1e+05), SC_(0.00217254919137684037092834146629212647764581965821326561261181) }},
- {{ SC_(-1e+03), SC_(7e+02), SC_(-1.88753109980945889960843803284345261796244752396992106755091e77) }}
+ {{ SC_(-1e+03), SC_(7e+02), SC_(-1.88753109980945889960843803284345261796244752396992106755091e77) }},
+ {{ SC_(-25), SC_(8), SC_(3.45113613777297661997458045843868931827873456761831907587263e8) }}
     }};
     static const boost::array<boost::array<T, 3>, 9> yv_data = {{
         //SC_(2.25), {{ SC_(1) / 1024, SC_(-1.01759203636941035147948317764932151601257765988969544340275e7) }},
- {{ SC_(0.5), SC_(1) / (1024*1024), SC_(-817.033790261762580469303126467917092806755460418223776544122) }},
+ {{ SC_(0.5), T(1) / (1024*1024), SC_(-817.033790261762580469303126467917092806755460418223776544122) }},
         {{ SC_(5.5), SC_(3.125), SC_(-2.61489440328417468776474188539366752698192046890955453259866) }},
         {{ SC_(-5.5), SC_(3.125), SC_(-0.0274994493896489729948109971802244976377957234563871795364056) }},
         {{ SC_(-5.5), SC_(1e+04), SC_(-0.00759343502722670361395585198154817047185480147294665270646578) }},
- {{ SC_(-10486074) / (1024*1024), SC_(1)/1024, SC_(-1.50382374389531766117868938966858995093408410498915220070230e38) }},
- {{ SC_(-10486074) / (1024*1024), SC_(1e+02), SC_(0.0583041891319026009955779707640455341990844522293730214223545) }},
+ {{ T(-10486074) / (1024*1024), T(1)/1024, SC_(-1.50382374389531766117868938966858995093408410498915220070230e38) }},
+ {{ T(-10486074) / (1024*1024), SC_(1e+02), SC_(0.0583041891319026009955779707640455341990844522293730214223545) }},
         {{ SC_(141.75), SC_(1e+02), SC_(-5.38829231428696507293191118661269920130838607482708483122068e9) }},
         {{ SC_(141.75), SC_(2e+04), SC_(-0.00376577888677186194728129112270988602876597726657372330194186) }},
         {{ SC_(-141.75), SC_(1e+02), SC_(-3.81009803444766877495905954105669819951653361036342457919021e9) }},
@@ -198,24 +199,24 @@
         {{ SC_(10.0), static_cast<T>(std::ldexp(1.0, -53)), SC_(-4.15729476804920974669173904282420477878640623992500096231384e167) }},
     }};
 
- do_test_cyl_neumann_y(y0_data, name, "Y0: Mathworld Data");
- do_test_cyl_neumann_y(y1_data, name, "Y1: Mathworld Data");
- do_test_cyl_neumann_y(yn_data, name, "Yn: Mathworld Data");
- do_test_cyl_neumann_y_int(y0_data, name, "Y0: Mathworld Data (Integer Version)");
- do_test_cyl_neumann_y_int(y1_data, name, "Y1: Mathworld Data (Integer Version)");
- do_test_cyl_neumann_y_int(yn_data, name, "Yn: Mathworld Data (Integer Version)");
- do_test_cyl_neumann_y(yv_data, name, "Yv: Mathworld Data");
+ do_test_cyl_neumann_y<T>(y0_data, name, "Y0: Mathworld Data");
+ do_test_cyl_neumann_y<T>(y1_data, name, "Y1: Mathworld Data");
+ do_test_cyl_neumann_y<T>(yn_data, name, "Yn: Mathworld Data");
+ do_test_cyl_neumann_y_int<T>(y0_data, name, "Y0: Mathworld Data (Integer Version)");
+ do_test_cyl_neumann_y_int<T>(y1_data, name, "Y1: Mathworld Data (Integer Version)");
+ do_test_cyl_neumann_y_int<T>(yn_data, name, "Yn: Mathworld Data (Integer Version)");
+ do_test_cyl_neumann_y<T>(yv_data, name, "Yv: Mathworld Data");
     if(yv_large_data[0][1] != 0)
- do_test_cyl_neumann_y(yv_large_data, name, "Yv: Mathworld Data (large values)");
+ do_test_cyl_neumann_y<T>(yv_large_data, name, "Yv: Mathworld Data (large values)");
 
 #include "bessel_y01_data.ipp"
- do_test_cyl_neumann_y(bessel_y01_data, name, "Y0 and Y1: Random Data");
+ do_test_cyl_neumann_y<T>(bessel_y01_data, name, "Y0 and Y1: Random Data");
 #include "bessel_yn_data.ipp"
- do_test_cyl_neumann_y(bessel_yn_data, name, "Yn: Random Data");
+ do_test_cyl_neumann_y<T>(bessel_yn_data, name, "Yn: Random Data");
 #include "bessel_yv_data.ipp"
- do_test_cyl_neumann_y(bessel_yv_data, name, "Yv: Random Data");
+ do_test_cyl_neumann_y<T>(bessel_yv_data, name, "Yv: Random Data");
 
 #include "sph_neumann_data.ipp"
- do_test_sph_neumann_y(sph_neumann_data, name, "y: Random Data");
+ do_test_sph_neumann_y<T>(sph_neumann_data, name, "y: Random Data");
 }
 

Modified: branches/quickbook-dev/libs/math/test/test_beta.cpp
==============================================================================
--- branches/quickbook-dev/libs/math/test/test_beta.cpp (original)
+++ branches/quickbook-dev/libs/math/test/test_beta.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -5,7 +5,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#include <pch.hpp>
+#include "pch_light.hpp"
 
 #include "test_beta.hpp"
 

Modified: branches/quickbook-dev/libs/math/test/test_beta.hpp
==============================================================================
--- branches/quickbook-dev/libs/math/test/test_beta.hpp (original)
+++ branches/quickbook-dev/libs/math/test/test_beta.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -13,7 +13,7 @@
 #include <boost/math/concepts/real_concept.hpp>
 #include <boost/test/test_exec_monitor.hpp>
 #include <boost/test/floating_point_comparison.hpp>
-#include <boost/math/special_functions/beta.hpp>
+#include <boost/math/special_functions/math_fwd.hpp>
 #include <boost/math/tools/stats.hpp>
 #include <boost/math/tools/test.hpp>
 #include <boost/math/constants/constants.hpp>
@@ -23,18 +23,19 @@
 
 #include "test_beta_hooks.hpp"
 #include "handle_test_result.hpp"
+#include "table_type.hpp"
 
 #undef small // VC++ #defines small char !!!!!!
 
 #ifndef SC_
-#define SC_(x) static_cast<T>(BOOST_JOIN(x, L))
+#define SC_(x) static_cast<typename table_type<T>::type>(BOOST_JOIN(x, L))
 #endif
 
-template <class T>
+template <class Real, class T>
 void do_test_beta(const T& data, const char* type_name, const char* test_name)
 {
    typedef typename T::value_type row_type;
- typedef typename row_type::value_type value_type;
+ typedef Real value_type;
 
    typedef value_type (*pg)(value_type, value_type);
 #if defined(BOOST_MATH_NO_DEDUCED_FUNCTION_POINTERS)
@@ -51,18 +52,18 @@
    //
    // test beta against data:
    //
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func(funcp, 0, 1),
- extract_result(2));
+ bind_func<Real>(funcp, 0, 1),
+ extract_result<Real>(2));
    handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::beta", test_name);
 #ifdef TEST_OTHER
    if(::boost::is_floating_point<value_type>::value){
       funcp = other::beta;
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
          data,
- bind_func(funcp, 0, 1),
- extract_result(2));
+ bind_func<Real>(funcp, 0, 1),
+ extract_result<Real>(2));
       print_test_result(result, data[result.worst()], result.worst(), type_name, "other::beta");
    }
 #endif
@@ -79,15 +80,15 @@
    //
 # include "beta_small_data.ipp"
 
- do_test_beta(beta_small_data, name, "Beta Function: Small Values");
+ do_test_beta<T>(beta_small_data, name, "Beta Function: Small Values");
 
 # include "beta_med_data.ipp"
 
- do_test_beta(beta_med_data, name, "Beta Function: Medium Values");
+ do_test_beta<T>(beta_med_data, name, "Beta Function: Medium Values");
 
 # include "beta_exp_data.ipp"
 
- do_test_beta(beta_exp_data, name, "Beta Function: Divergent Values");
+ do_test_beta<T>(beta_exp_data, name, "Beta Function: Divergent Values");
 }
 
 template <class T>

Modified: branches/quickbook-dev/libs/math/test/test_binomial.cpp
==============================================================================
--- branches/quickbook-dev/libs/math/test/test_binomial.cpp (original)
+++ branches/quickbook-dev/libs/math/test/test_binomial.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -31,6 +31,7 @@
 
 #include <boost/test/test_exec_monitor.hpp> // for test_main
 #include <boost/test/floating_point_comparison.hpp> // for BOOST_CHECK_CLOSE
+#include "table_type.hpp"
 
 #include <iostream>
 using std::cout;
@@ -626,13 +627,7 @@
     //7 0.00036621093749999984 0.9999847412109375
     //8 1.52587890625e-005 1 1 0
   }
-#if !defined(TEST_REAL_CONCEPT)
 #define T RealType
-#else
- // This reduces compile time and compiler memory usage by storing test data
- // as an array of long double's rather than an array of real_concept's:
-#define T long double
-#endif
 #include "binomial_quantile.ipp"
 
   for(unsigned i = 0; i < binomial_quantile_data.size(); ++i)

Modified: branches/quickbook-dev/libs/math/test/test_binomial_coeff.hpp
==============================================================================
--- branches/quickbook-dev/libs/math/test/test_binomial_coeff.hpp (original)
+++ branches/quickbook-dev/libs/math/test/test_binomial_coeff.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -14,10 +14,10 @@
 #include <boost/array.hpp>
 
 #include "handle_test_result.hpp"
-
+#include "table_type.hpp"
 
 #ifndef SC_
-#define SC_(x) static_cast<T>(BOOST_JOIN(x, L))
+#define SC_(x) static_cast<typename table_type<T>::type>(BOOST_JOIN(x, L))
 #endif
 
 template <class T>
@@ -42,10 +42,10 @@
 
 #include "binomial_data.ipp"
 
- boost::math::tools::test_result<T> result = boost::math::tools::test(
+ boost::math::tools::test_result<T> result = boost::math::tools::test_hetero<T>(
       binomial_data,
- bind_func(f, 0, 1),
- extract_result(2));
+ bind_func<T>(f, 0, 1),
+ extract_result<T>(2));
 
    std::cout << "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"
       "Test results for small arguments and type " << type_name << std::endl << std::endl;
@@ -55,10 +55,10 @@
 
 #include "binomial_large_data.ipp"
 
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<T>(
       binomial_large_data,
- bind_func(f, 0, 1),
- extract_result(2));
+ bind_func<T>(f, 0, 1),
+ extract_result<T>(2));
 
    std::cout << "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"
       "Test results for large arguments and type " << type_name << std::endl << std::endl;

Modified: branches/quickbook-dev/libs/math/test/test_carlson.cpp
==============================================================================
--- branches/quickbook-dev/libs/math/test/test_carlson.cpp (original)
+++ branches/quickbook-dev/libs/math/test/test_carlson.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -5,7 +5,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#include <pch.hpp>
+#include <pch_light.hpp>
 #include "test_carlson.hpp"
 
 //

Modified: branches/quickbook-dev/libs/math/test/test_carlson.hpp
==============================================================================
--- branches/quickbook-dev/libs/math/test/test_carlson.hpp (original)
+++ branches/quickbook-dev/libs/math/test/test_carlson.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -7,26 +7,24 @@
 #include <boost/math/concepts/real_concept.hpp>
 #include <boost/test/test_exec_monitor.hpp>
 #include <boost/test/floating_point_comparison.hpp>
-#include <boost/math/special_functions/ellint_rf.hpp>
-#include <boost/math/special_functions/ellint_rc.hpp>
-#include <boost/math/special_functions/ellint_rj.hpp>
-#include <boost/math/special_functions/ellint_rd.hpp>
+#include <boost/math/special_functions/math_fwd.hpp>
 #include <boost/math/constants/constants.hpp>
 #include <boost/array.hpp>
 #include <boost/tr1/random.hpp>
 #include "functor.hpp"
 
 #include "handle_test_result.hpp"
+#include "table_type.hpp"
 
 #ifndef SC_
-#define SC_(x) static_cast<T>(BOOST_JOIN(x, L))
+#define SC_(x) static_cast<typename table_type<T>::type>(BOOST_JOIN(x, L))
 #endif
 
-template <typename T>
+template <class Real, typename T>
 void do_test_ellint_rf(T& data, const char* type_name, const char* test)
 {
    typedef typename T::value_type row_type;
- typedef typename row_type::value_type value_type;
+ typedef Real value_type;
 
    std::cout << "Testing: " << test << std::endl;
 
@@ -37,10 +35,10 @@
 #endif
     boost::math::tools::test_result<value_type> result;
  
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func(fp, 0, 1, 2),
- extract_result(3));
+ bind_func<Real>(fp, 0, 1, 2),
+ extract_result<Real>(3));
    handle_test_result(result, data[result.worst()], result.worst(),
       type_name, "boost::math::ellint_rf", test);
 
@@ -48,11 +46,11 @@
 
 }
 
-template <typename T>
+template <class Real, typename T>
 void do_test_ellint_rc(T& data, const char* type_name, const char* test)
 {
    typedef typename T::value_type row_type;
- typedef typename row_type::value_type value_type;
+ typedef Real value_type;
 
    std::cout << "Testing: " << test << std::endl;
 
@@ -63,22 +61,22 @@
 #endif
     boost::math::tools::test_result<value_type> result;
  
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func(fp, 0, 1),
- extract_result(2));
- handle_test_result(result, data[result.worst()], result.worst(),
+ bind_func<Real>(fp, 0, 1),
+ extract_result<Real>(2));
+ handle_test_result(result, data[result.worst()], result.worst(),
       type_name, "boost::math::ellint_rc", test);
 
    std::cout << std::endl;
 
 }
 
-template <typename T>
+template <class Real, typename T>
 void do_test_ellint_rj(T& data, const char* type_name, const char* test)
 {
    typedef typename T::value_type row_type;
- typedef typename row_type::value_type value_type;
+ typedef Real value_type;
 
    std::cout << "Testing: " << test << std::endl;
 
@@ -89,22 +87,22 @@
 #endif
     boost::math::tools::test_result<value_type> result;
  
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func(fp, 0, 1, 2, 3),
- extract_result(4));
- handle_test_result(result, data[result.worst()], result.worst(),
+ bind_func<Real>(fp, 0, 1, 2, 3),
+ extract_result<Real>(4));
+ handle_test_result(result, data[result.worst()], result.worst(),
       type_name, "boost::math::ellint_rf", test);
 
    std::cout << std::endl;
 
 }
 
-template <typename T>
+template <class Real, typename T>
 void do_test_ellint_rd(T& data, const char* type_name, const char* test)
 {
    typedef typename T::value_type row_type;
- typedef typename row_type::value_type value_type;
+ typedef Real value_type;
 
    std::cout << "Testing: " << test << std::endl;
 
@@ -115,11 +113,11 @@
 #endif
     boost::math::tools::test_result<value_type> result;
  
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func(fp, 0, 1, 2),
- extract_result(3));
- handle_test_result(result, data[result.worst()], result.worst(),
+ bind_func<Real>(fp, 0, 1, 2),
+ extract_result<Real>(3));
+ handle_test_result(result, data[result.worst()], result.worst(),
       type_name, "boost::math::ellint_rd", test);
 
    std::cout << std::endl;
@@ -205,18 +203,18 @@
    //
 #include "ellint_rf_data.ipp"
 
- do_test_ellint_rf(ellint_rf_data, type_name, "RF: Random data");
+ do_test_ellint_rf<T>(ellint_rf_data, type_name, "RF: Random data");
 
 #include "ellint_rc_data.ipp"
 
- do_test_ellint_rc(ellint_rc_data, type_name, "RC: Random data");
+ do_test_ellint_rc<T>(ellint_rc_data, type_name, "RC: Random data");
 
 #include "ellint_rj_data.ipp"
 
- do_test_ellint_rj(ellint_rj_data, type_name, "RJ: Random data");
+ do_test_ellint_rj<T>(ellint_rj_data, type_name, "RJ: Random data");
 
 #include "ellint_rd_data.ipp"
 
- do_test_ellint_rd(ellint_rd_data, type_name, "RD: Random data");
+ do_test_ellint_rd<T>(ellint_rd_data, type_name, "RD: Random data");
 }
 

Modified: branches/quickbook-dev/libs/math/test/test_cbrt.cpp
==============================================================================
--- branches/quickbook-dev/libs/math/test/test_cbrt.cpp (original)
+++ branches/quickbook-dev/libs/math/test/test_cbrt.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -9,7 +9,7 @@
 # pragma warning (disable : 4224)
 #endif
 
-#include <pch.hpp> // include /libs/math/src/
+#include <pch_light.hpp> // include /libs/math/src/
 #include "test_cbrt.hpp"
 
 //

Modified: branches/quickbook-dev/libs/math/test/test_cbrt.hpp
==============================================================================
--- branches/quickbook-dev/libs/math/test/test_cbrt.hpp (original)
+++ branches/quickbook-dev/libs/math/test/test_cbrt.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -11,32 +11,34 @@
 #include <boost/math/tools/test.hpp>
 #include <boost/type_traits/is_floating_point.hpp>
 #include <boost/array.hpp>
-#include <boost/math/special_functions/cbrt.hpp>
+#include <boost/math/special_functions/math_fwd.hpp>
 #include "functor.hpp"
 
 #include "handle_test_result.hpp"
+#include "table_type.hpp"
 
 #ifndef SC_
-#define SC_(x) static_cast<T>(BOOST_JOIN(x, L))
+#define SC_(x) static_cast<typename table_type<T>::type>(BOOST_JOIN(x, L))
 #endif
 
+template <class Real>
 struct negative_cbrt
 {
    negative_cbrt(){}
 
    template <class S>
- typename S::value_type operator()(const S& row)
+ Real operator()(const S& row)
    {
- return boost::math::cbrt(-row[1]);
+ return boost::math::cbrt(-Real(row[1]));
    }
 };
 
 
-template <class T>
+template <class Real, class T>
 void do_test_cbrt(const T& data, const char* type_name, const char* test_name)
 {
    typedef typename T::value_type row_type;
- typedef typename row_type::value_type value_type;
+ typedef Real value_type;
 
    typedef value_type (*pg)(value_type);
 #if defined(BOOST_MATH_NO_DEDUCED_FUNCTION_POINTERS)
@@ -53,14 +55,14 @@
    //
    // test cbrt against data:
    //
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func(funcp, 1),
- extract_result(0));
- result += boost::math::tools::test(
+ bind_func<Real>(funcp, 1),
+ extract_result<Real>(0));
+ result += boost::math::tools::test_hetero<Real>(
       data,
- negative_cbrt(),
- negate(extract_result(0)));
+ negative_cbrt<Real>(),
+ negate<Real>(extract_result<Real>(0)));
    handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::cbrt", test_name);
    std::cout << std::endl;
 }
@@ -75,7 +77,7 @@
    //
 # include "cbrt_data.ipp"
 
- do_test_cbrt(cbrt_data, name, "cbrt Function");
+ do_test_cbrt<T>(cbrt_data, name, "cbrt Function");
 
 }
 

Modified: branches/quickbook-dev/libs/math/test/test_digamma.cpp
==============================================================================
--- branches/quickbook-dev/libs/math/test/test_digamma.cpp (original)
+++ branches/quickbook-dev/libs/math/test/test_digamma.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#include <pch.hpp>
+#include <pch_light.hpp>
 #include "test_digamma.hpp"
 
 //

Modified: branches/quickbook-dev/libs/math/test/test_digamma.hpp
==============================================================================
--- branches/quickbook-dev/libs/math/test/test_digamma.hpp (original)
+++ branches/quickbook-dev/libs/math/test/test_digamma.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -7,21 +7,22 @@
 #include <boost/math/concepts/real_concept.hpp>
 #include <boost/test/test_exec_monitor.hpp>
 #include <boost/test/floating_point_comparison.hpp>
-#include <boost/math/special_functions/digamma.hpp>
+#include <boost/math/special_functions/math_fwd.hpp>
 #include <boost/array.hpp>
 #include "functor.hpp"
 
 #include "handle_test_result.hpp"
+#include "table_type.hpp"
 
 #ifndef SC_
-#define SC_(x) static_cast<T>(BOOST_JOIN(x, L))
+#define SC_(x) static_cast<typename table_type<T>::type>(BOOST_JOIN(x, L))
 #endif
 
-template <class T>
+template <class Real, class T>
 void do_test_digamma(const T& data, const char* type_name, const char* test_name)
 {
    typedef typename T::value_type row_type;
- typedef typename row_type::value_type value_type;
+ typedef Real value_type;
 
    typedef value_type (*pg)(value_type);
 #if defined(BOOST_MATH_NO_DEDUCED_FUNCTION_POINTERS)
@@ -38,10 +39,10 @@
    //
    // test digamma against data:
    //
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func(funcp, 0),
- extract_result(1));
+ bind_func<Real>(funcp, 0),
+ extract_result<Real>(1));
    handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::digamma", test_name);
    std::cout << std::endl;
 }
@@ -57,19 +58,19 @@
    //
 # include "digamma_data.ipp"
 
- do_test_digamma(digamma_data, name, "Digamma Function: Large Values");
+ do_test_digamma<T>(digamma_data, name, "Digamma Function: Large Values");
 
 # include "digamma_root_data.ipp"
 
- do_test_digamma(digamma_root_data, name, "Digamma Function: Near the Positive Root");
+ do_test_digamma<T>(digamma_root_data, name, "Digamma Function: Near the Positive Root");
 
 # include "digamma_small_data.ipp"
 
- do_test_digamma(digamma_small_data, name, "Digamma Function: Near Zero");
+ do_test_digamma<T>(digamma_small_data, name, "Digamma Function: Near Zero");
 
 # include "digamma_neg_data.ipp"
 
- do_test_digamma(digamma_neg_data, name, "Digamma Function: Negative Values");
+ do_test_digamma<T>(digamma_neg_data, name, "Digamma Function: Negative Values");
 
 }
 

Modified: branches/quickbook-dev/libs/math/test/test_ellint_1.cpp
==============================================================================
--- branches/quickbook-dev/libs/math/test/test_ellint_1.cpp (original)
+++ branches/quickbook-dev/libs/math/test/test_ellint_1.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -6,7 +6,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#include <pch.hpp>
+#include <pch_light.hpp>
 #include "test_ellint_1.hpp"
 
 //

Modified: branches/quickbook-dev/libs/math/test/test_ellint_1.hpp
==============================================================================
--- branches/quickbook-dev/libs/math/test/test_ellint_1.hpp (original)
+++ branches/quickbook-dev/libs/math/test/test_ellint_1.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -12,21 +12,22 @@
 #include <boost/math/concepts/real_concept.hpp>
 #include <boost/test/test_exec_monitor.hpp>
 #include <boost/test/floating_point_comparison.hpp>
-#include <boost/math/special_functions/ellint_1.hpp>
+#include <boost/math/special_functions/math_fwd.hpp>
 #include <boost/array.hpp>
 #include "functor.hpp"
 
 #include "handle_test_result.hpp"
+#include "table_type.hpp"
 
 #ifndef SC_
-#define SC_(x) static_cast<T>(BOOST_JOIN(x, L))
+#define SC_(x) static_cast<typename table_type<T>::type>(BOOST_JOIN(x, L))
 #endif
 
-template <typename T>
+template <class Real, typename T>
 void do_test_ellint_f(T& data, const char* type_name, const char* test)
 {
    typedef typename T::value_type row_type;
- typedef typename row_type::value_type value_type;
+ typedef Real value_type;
 
    std::cout << "Testing: " << test << std::endl;
 
@@ -37,10 +38,10 @@
 #endif
     boost::math::tools::test_result<value_type> result;
 
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func(fp2, 1, 0),
- extract_result(2));
+ bind_func<Real>(fp2, 1, 0),
+ extract_result<Real>(2));
     handle_test_result(result, data[result.worst()], result.worst(),
       type_name, "boost::math::ellint_1", test);
 
@@ -48,11 +49,11 @@
 
 }
 
-template <typename T>
+template <class Real, typename T>
 void do_test_ellint_k(T& data, const char* type_name, const char* test)
 {
    typedef typename T::value_type row_type;
- typedef typename row_type::value_type value_type;
+ typedef Real value_type;
     boost::math::tools::test_result<value_type> result;
 
    std::cout << "Testing: " << test << std::endl;
@@ -62,10 +63,10 @@
 #else
    value_type (*fp1)(value_type) = boost::math::ellint_1;
 #endif
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func(fp1, 0),
- extract_result(1));
+ bind_func<Real>(fp1, 0),
+ extract_result<Real>(1));
    handle_test_result(result, data[result.worst()], result.worst(),
       type_name, "boost::math::ellint_1", test);
 
@@ -84,10 +85,10 @@
         {{ SC_(-4), SC_(0.875), SC_(-5.3190556182262405182189463092940736859067548232647) }},
         {{ SC_(8), SC_(-0.625), SC_(9.0419973860310100524448893214394562615252527557062) }},
         {{ SC_(1e-05), SC_(0.875), SC_(0.000010000000000127604166668510945638036143355898993088) }},
- {{ SC_(1e+05), SC_(10)/1024, SC_(100002.38431454899771096037307519328741455615271038) }},
+ {{ SC_(1e+05), T(10)/1024, SC_(100002.38431454899771096037307519328741455615271038) }},
         {{ SC_(1e-20), SC_(1), SC_(1.0000000000000000000000000000000000000000166666667e-20) }},
         {{ SC_(1e-20), SC_(1e-20), SC_(1.000000000000000e-20) }},
- {{ SC_(1e+20), SC_(400)/1024, SC_(1.0418143796499216839719289963154558027005142709763e20) }},
+ {{ SC_(1e+20), T(400)/1024, SC_(1.0418143796499216839719289963154558027005142709763e20) }},
         {{ SC_(1e+50), SC_(0.875), SC_(1.3913251718238765549409892714295358043696028445944e50) }},
         {{ SC_(2), SC_(0.5), SC_(2.1765877052210673672479877957388515321497888026770) }},
         {{ SC_(4), SC_(0.5), SC_(4.2543274975235836861894752787874633017836785640477) }},
@@ -99,11 +100,11 @@
         {{ SC_(-10), SC_(0.5), SC_(-10.697409951222544858346795279378531495869386960090) }},
     }};
 
- do_test_ellint_f(data1, type_name, "Elliptic Integral F: Mathworld Data");
+ do_test_ellint_f<T>(data1, type_name, "Elliptic Integral F: Mathworld Data");
 
 #include "ellint_f_data.ipp"
 
- do_test_ellint_f(ellint_f_data, type_name, "Elliptic Integral F: Random Data");
+ do_test_ellint_f<T>(ellint_f_data, type_name, "Elliptic Integral F: Random Data");
 
     // Function values calculated on http://functions.wolfram.com/
     // Note that Mathematica's EllipticK accepts k^2 as the second parameter.
@@ -111,18 +112,18 @@
         {{ SC_(0), SC_(1.5707963267948966192313216916397514420985846996876) }},
         {{ SC_(0.125), SC_(1.5769867712158131421244030532288080803822271060839) }},
         {{ SC_(0.25), SC_(1.5962422221317835101489690714979498795055744578951) }},
- {{ SC_(300)/1024, SC_(1.6062331054696636704261124078746600894998873503208) }},
- {{ SC_(400)/1024, SC_(1.6364782007562008756208066125715722889067992997614) }},
+ {{ T(300)/1024, SC_(1.6062331054696636704261124078746600894998873503208) }},
+ {{ T(400)/1024, SC_(1.6364782007562008756208066125715722889067992997614) }},
         {{ SC_(-0.5), SC_(1.6857503548125960428712036577990769895008008941411) }},
         {{ SC_(-0.75), SC_(1.9109897807518291965531482187613425592531451316788) }},
- {{ 1-SC_(1)/8, SC_(2.185488469278223686913080323730158689730428415766) }},
- {{ 1-SC_(1)/1024, SC_(4.5074135978990422666372495313621124487894807327687) }},
+ {{ 1-T(1)/8, SC_(2.185488469278223686913080323730158689730428415766) }},
+ {{ 1-T(1)/1024, SC_(4.5074135978990422666372495313621124487894807327687) }},
     }};
 
- do_test_ellint_k(data2, type_name, "Elliptic Integral K: Mathworld Data");
+ do_test_ellint_k<T>(data2, type_name, "Elliptic Integral K: Mathworld Data");
 
 #include "ellint_k_data.ipp"
 
- do_test_ellint_k(ellint_k_data, type_name, "Elliptic Integral K: Random Data");
+ do_test_ellint_k<T>(ellint_k_data, type_name, "Elliptic Integral K: Random Data");
 }
 

Modified: branches/quickbook-dev/libs/math/test/test_ellint_2.cpp
==============================================================================
--- branches/quickbook-dev/libs/math/test/test_ellint_2.cpp (original)
+++ branches/quickbook-dev/libs/math/test/test_ellint_2.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -6,7 +6,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#include <pch.hpp>
+#include <pch_light.hpp>
 #include "test_ellint_2.hpp"
 
 //

Modified: branches/quickbook-dev/libs/math/test/test_ellint_2.hpp
==============================================================================
--- branches/quickbook-dev/libs/math/test/test_ellint_2.hpp (original)
+++ branches/quickbook-dev/libs/math/test/test_ellint_2.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -12,21 +12,22 @@
 #include <boost/math/concepts/real_concept.hpp>
 #include <boost/test/test_exec_monitor.hpp>
 #include <boost/test/floating_point_comparison.hpp>
-#include <boost/math/special_functions/ellint_2.hpp>
+#include <boost/math/special_functions/math_fwd.hpp>
 #include <boost/array.hpp>
 #include "functor.hpp"
 
 #include "handle_test_result.hpp"
+#include "table_type.hpp"
 
 #ifndef SC_
-#define SC_(x) static_cast<T>(BOOST_JOIN(x, L))
+#define SC_(x) static_cast<typename table_type<T>::type>(BOOST_JOIN(x, L))
 #endif
 
-template <typename T>
+template <class Real, typename T>
 void do_test_ellint_e2(const T& data, const char* type_name, const char* test)
 {
    typedef typename T::value_type row_type;
- typedef typename row_type::value_type value_type;
+ typedef Real value_type;
 
    std::cout << "Testing: " << test << std::endl;
 
@@ -37,21 +38,21 @@
 #endif
     boost::math::tools::test_result<value_type> result;
 
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func(fp2, 1, 0),
- extract_result(2));
+ bind_func<Real>(fp2, 1, 0),
+ extract_result<Real>(2));
    handle_test_result(result, data[result.worst()], result.worst(),
       type_name, "boost::math::ellint_2", test);
 
    std::cout << std::endl;
 }
 
-template <typename T>
+template <class Real, typename T>
 void do_test_ellint_e1(T& data, const char* type_name, const char* test)
 {
    typedef typename T::value_type row_type;
- typedef typename row_type::value_type value_type;
+ typedef Real value_type;
     boost::math::tools::test_result<value_type> result;
 
    std::cout << "Testing: " << test << std::endl;
@@ -61,10 +62,10 @@
 #else
    value_type (*fp1)(value_type) = boost::math::ellint_2;
 #endif
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func(fp1, 0),
- extract_result(1));
+ bind_func<Real>(fp1, 0),
+ extract_result<Real>(1));
    handle_test_result(result, data[result.worst()], result.worst(),
       type_name, "boost::math::ellint_2", test);
 
@@ -80,40 +81,40 @@
         {{ SC_(0), SC_(0), SC_(0) }},
         {{ SC_(-10), SC_(0), SC_(-10) }},
         {{ SC_(-1), SC_(-1), SC_(-0.84147098480789650665250232163029899962256306079837) }},
- {{ SC_(-4), SC_(900) / 1024, SC_(-3.1756145986492562317862928524528520686391383168377) }},
- {{ SC_(8), SC_(-600) / 1024, SC_(7.2473147180505693037677015377802777959345489333465) }},
- {{ SC_(1e-05), SC_(800) / 1024, SC_(9.999999999898274739584436515967055859383969942432E-6) }},
- {{ SC_(1e+05), SC_(100) / 1024, SC_(99761.153306972066658135668386691227343323331995888) }},
+ {{ SC_(-4), T(900) / 1024, SC_(-3.1756145986492562317862928524528520686391383168377) }},
+ {{ SC_(8), T(-600) / 1024, SC_(7.2473147180505693037677015377802777959345489333465) }},
+ {{ SC_(1e-05), T(800) / 1024, SC_(9.999999999898274739584436515967055859383969942432E-6) }},
+ {{ SC_(1e+05), T(100) / 1024, SC_(99761.153306972066658135668386691227343323331995888) }},
         {{ SC_(1e+10), SC_(-0.5), SC_(9.3421545766487137036576748555295222252286528414669e9) }},
- {{ static_cast<T>(ldexp(SC_(1), 66)), SC_(400) / 1024, SC_(7.0886102721911705466476846969992069994308167515242e19) }},
- {{ static_cast<T>(ldexp(SC_(1), 166)), SC_(900) / 1024, SC_(7.1259011068364515942912094521783688927118026465790e49) }},
+ {{ static_cast<T>(ldexp(T(1), 66)), T(400) / 1024, SC_(7.0886102721911705466476846969992069994308167515242e19) }},
+ {{ static_cast<T>(ldexp(T(1), 166)), T(900) / 1024, SC_(7.1259011068364515942912094521783688927118026465790e49) }},
     }};
 
- do_test_ellint_e2(data1, type_name, "Elliptic Integral E: Mathworld Data");
+ do_test_ellint_e2<T>(data1, type_name, "Elliptic Integral E: Mathworld Data");
 
 #include "ellint_e2_data.ipp"
 
- do_test_ellint_e2(ellint_e2_data, type_name, "Elliptic Integral E: Random Data");
+ do_test_ellint_e2<T>(ellint_e2_data, type_name, "Elliptic Integral E: Random Data");
 
     // Function values calculated on http://functions.wolfram.com/
     // Note that Mathematica's EllipticE accepts k^2 as the second parameter.
     static const boost::array<boost::array<T, 2>, 10> data2 = {{
         {{ SC_(-1), SC_(1) }},
         {{ SC_(0), SC_(1.5707963267948966192313216916397514420985846996876) }},
- {{ SC_(100) / 1024, SC_(1.5670445330545086723323795143598956428788609133377) }},
- {{ SC_(200) / 1024, SC_(1.5557071588766556854463404816624361127847775545087) }},
- {{ SC_(300) / 1024, SC_(1.5365278991162754883035625322482669608948678755743) }},
- {{ SC_(400) / 1024, SC_(1.5090417763083482272165682786143770446401437564021) }},
+ {{ T(100) / 1024, SC_(1.5670445330545086723323795143598956428788609133377) }},
+ {{ T(200) / 1024, SC_(1.5557071588766556854463404816624361127847775545087) }},
+ {{ T(300) / 1024, SC_(1.5365278991162754883035625322482669608948678755743) }},
+ {{ T(400) / 1024, SC_(1.5090417763083482272165682786143770446401437564021) }},
         {{ SC_(-0.5), SC_(1.4674622093394271554597952669909161360253617523272) }},
- {{ SC_(-600) / 1024, SC_(1.4257538571071297192428217218834579920545946473778) }},
- {{ SC_(-800) / 1024, SC_(1.2927868476159125056958680222998765985004489572909) }},
- {{ SC_(-900) / 1024, SC_(1.1966864890248739524112920627353824133420353430982) }},
+ {{ T(-600) / 1024, SC_(1.4257538571071297192428217218834579920545946473778) }},
+ {{ T(-800) / 1024, SC_(1.2927868476159125056958680222998765985004489572909) }},
+ {{ T(-900) / 1024, SC_(1.1966864890248739524112920627353824133420353430982) }},
     }};
 
- do_test_ellint_e1(data2, type_name, "Elliptic Integral E: Mathworld Data");
+ do_test_ellint_e1<T>(data2, type_name, "Elliptic Integral E: Mathworld Data");
 
 #include "ellint_e_data.ipp"
 
- do_test_ellint_e1(ellint_e_data, type_name, "Elliptic Integral E: Random Data");
+ do_test_ellint_e1<T>(ellint_e_data, type_name, "Elliptic Integral E: Random Data");
 }
 

Modified: branches/quickbook-dev/libs/math/test/test_ellint_3.cpp
==============================================================================
--- branches/quickbook-dev/libs/math/test/test_ellint_3.cpp (original)
+++ branches/quickbook-dev/libs/math/test/test_ellint_3.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -6,7 +6,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#include <pch.hpp>
+#include <pch_light.hpp>
 #include "test_ellint_3.hpp"
 
 //

Modified: branches/quickbook-dev/libs/math/test/test_ellint_3.hpp
==============================================================================
--- branches/quickbook-dev/libs/math/test/test_ellint_3.hpp (original)
+++ branches/quickbook-dev/libs/math/test/test_ellint_3.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -12,22 +12,23 @@
 #include <boost/math/concepts/real_concept.hpp>
 #include <boost/test/test_exec_monitor.hpp>
 #include <boost/test/floating_point_comparison.hpp>
-#include <boost/math/special_functions/ellint_3.hpp>
+#include <boost/math/special_functions/math_fwd.hpp>
 #include <boost/array.hpp>
 #include "functor.hpp"
 
 #include "handle_test_result.hpp"
+#include "table_type.hpp"
 
 #ifndef SC_
-#define SC_(x) static_cast<T>(BOOST_JOIN(x, L))
+#define SC_(x) static_cast<typename table_type<T>::type>(BOOST_JOIN(x, L))
 #endif
 
 
-template <typename T>
+template <class Real, typename T>
 void do_test_ellint_pi3(T& data, const char* type_name, const char* test)
 {
    typedef typename T::value_type row_type;
- typedef typename row_type::value_type value_type;
+ typedef Real value_type;
 
    std::cout << "Testing: " << test << std::endl;
 
@@ -38,10 +39,10 @@
 #endif
     boost::math::tools::test_result<value_type> result;
 
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func(fp2, 2, 0, 1),
- extract_result(3));
+ bind_func<Real>(fp2, 2, 0, 1),
+ extract_result<Real>(3));
    handle_test_result(result, data[result.worst()], result.worst(),
       type_name, "boost::math::ellint_3", test);
 
@@ -49,11 +50,11 @@
 
 }
 
-template <typename T>
+template <class Real, typename T>
 void do_test_ellint_pi2(T& data, const char* type_name, const char* test)
 {
    typedef typename T::value_type row_type;
- typedef typename row_type::value_type value_type;
+ typedef Real value_type;
 
    std::cout << "Testing: " << test << std::endl;
 
@@ -64,10 +65,10 @@
 #endif
     boost::math::tools::test_result<value_type> result;
 
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func(fp2, 1, 0),
- extract_result(2));
+ bind_func<Real>(fp2, 1, 0),
+ extract_result<Real>(2));
    handle_test_result(result, data[result.worst()], result.worst(),
       type_name, "boost::math::ellint_3", test);
 
@@ -91,31 +92,31 @@
         {{ SC_(0.75), SC_(0.75), SC_(0), SC_(0.871827580412760575085768367421866079353646112288567703061975) }},
         {{ SC_(1), SC_(0.25), SC_(0), SC_(0.255341921221036266504482236490473678204201638800822621740476) }},
         {{ SC_(2), SC_(0.25), SC_(0), SC_(0.261119051639220165094943572468224137699644963125853641716219) }},
- {{ SC_(1023)/1024, SC_(1.5), SC_(0), SC_(13.2821612239764190363647953338544569682942329604483733197131) }},
+ {{ T(1023)/1024, SC_(1.5), SC_(0), SC_(13.2821612239764190363647953338544569682942329604483733197131) }},
         {{ SC_(0.5), SC_(-1), SC_(0.5), SC_(-1.228014414316220642611298946293865487807) }},
         {{ SC_(0.5), SC_(1e+10), SC_(0.5), SC_(1.536591003599172091573590441336982730551e+10) }},
         {{ SC_(-1e+05), SC_(10), SC_(0.75), SC_(0.0347926099493147087821620459290460547131012904008557007934290) }},
         {{ SC_(-1e+10), SC_(10), SC_(0.875), SC_(0.000109956202759561502329123384755016959364346382187364656768212) }},
         {{ SC_(-1e+10), SC_(1e+20), SC_(0.875), SC_(1.00000626665567332602765201107198822183913978895904937646809e15) }},
- {{ SC_(-1e+10), SC_(1608)/1024, SC_(0.875), SC_(0.0000157080616044072676127333183571107873332593142625043567690379) }},
- {{ 1-SC_(1) / 1024, SC_(1e+20), SC_(0.875), SC_(6.43274293944380717581167058274600202023334985100499739678963e21) }},
+ {{ SC_(-1e+10), T(1608)/1024, SC_(0.875), SC_(0.0000157080616044072676127333183571107873332593142625043567690379) }},
+ {{ 1-T(1) / 1024, SC_(1e+20), SC_(0.875), SC_(6.43274293944380717581167058274600202023334985100499739678963e21) }},
         {{ SC_(50), SC_(0.125), SC_(0.25), SC_(0.196321043776719739372196642514913879497104766409504746018939) }},
         {{ SC_(1.125), SC_(1), SC_(0.25), SC_(1.77299767784815770192352979665283069318388205110727241629752) }},
         {{ SC_(1.125), SC_(10), SC_(0.25), SC_(0.662467818678976949597336360256848770217429434745967677192487) }},
         {{ SC_(1.125), SC_(3), SC_(0.25), SC_(-0.142697285116693775525461312178015106079842313950476205580178) }},
- {{ SC_(257)/256, SC_(1.5), SC_(0.125), SC_(22.2699300473528164111357290313578126108398839810535700884237) }},
- {{ SC_(257)/256, SC_(21.5), SC_(0.125), SC_(-0.535406081652313940727588125663856894154526187713506526799429) }},
+ {{ T(257)/256, SC_(1.5), SC_(0.125), SC_(22.2699300473528164111357290313578126108398839810535700884237) }},
+ {{ T(257)/256, SC_(21.5), SC_(0.125), SC_(-0.535406081652313940727588125663856894154526187713506526799429) }},
     }};
 
- do_test_ellint_pi3(data1, type_name, "Elliptic Integral PI: Mathworld Data");
+ do_test_ellint_pi3<T>(data1, type_name, "Elliptic Integral PI: Mathworld Data");
 
 #include "ellint_pi3_data.ipp"
 
- do_test_ellint_pi3(ellint_pi3_data, type_name, "Elliptic Integral PI: Random Data");
+ do_test_ellint_pi3<T>(ellint_pi3_data, type_name, "Elliptic Integral PI: Random Data");
 
 #include "ellint_pi3_large_data.ipp"
 
- do_test_ellint_pi3(ellint_pi3_large_data, type_name, "Elliptic Integral PI: Large Random Data");
+ do_test_ellint_pi3<T>(ellint_pi3_large_data, type_name, "Elliptic Integral PI: Large Random Data");
 
     // function values calculated on http://functions.wolfram.com/
     static const boost::array<boost::array<T, 3>, 9> data2 = {{
@@ -126,15 +127,15 @@
         {{ SC_(-4), SC_(0.3), SC_(0.712708870925620061597924858162260293305195624270730660081949) }},
         {{ SC_(-1e+05), SC_(-0.5), SC_(0.00496944596485066055800109163256108604615568144080386919012831) }},
         {{ SC_(-1e+10), SC_(-0.75), SC_(0.0000157080225184890546939710019277357161497407143903832703317801) }},
- {{ SC_(1) / 1024, SC_(-0.875), SC_(2.18674503176462374414944618968850352696579451638002110619287) }},
- {{ SC_(1023)/1024, SC_(-0.875), SC_(101.045289804941384100960063898569538919135722087486350366997) }},
+ {{ T(1) / 1024, SC_(-0.875), SC_(2.18674503176462374414944618968850352696579451638002110619287) }},
+ {{ T(1023)/1024, SC_(-0.875), SC_(101.045289804941384100960063898569538919135722087486350366997) }},
     }};
 
- do_test_ellint_pi2(data2, type_name, "Complete Elliptic Integral PI: Mathworld Data");
+ do_test_ellint_pi2<T>(data2, type_name, "Complete Elliptic Integral PI: Mathworld Data");
 
 #include "ellint_pi2_data.ipp"
 
- do_test_ellint_pi2(ellint_pi2_data, type_name, "Complete Elliptic Integral PI: Random Data");
+ do_test_ellint_pi2<T>(ellint_pi2_data, type_name, "Complete Elliptic Integral PI: Random Data");
 
     // Special cases, exceptions etc:
     BOOST_CHECK_THROW(boost::math::ellint_3(T(1.0001), T(-1), T(0)), std::domain_error);

Modified: branches/quickbook-dev/libs/math/test/test_erf.cpp
==============================================================================
--- branches/quickbook-dev/libs/math/test/test_erf.cpp (original)
+++ branches/quickbook-dev/libs/math/test/test_erf.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -4,7 +4,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#include <pch.hpp>
+#include <pch_light.hpp>
 #include "test_erf.hpp"
 
 //

Modified: branches/quickbook-dev/libs/math/test/test_erf.hpp
==============================================================================
--- branches/quickbook-dev/libs/math/test/test_erf.hpp (original)
+++ branches/quickbook-dev/libs/math/test/test_erf.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -7,7 +7,7 @@
 #include <boost/math/concepts/real_concept.hpp>
 #include <boost/test/test_exec_monitor.hpp>
 #include <boost/test/floating_point_comparison.hpp>
-#include <boost/math/special_functions/erf.hpp>
+#include <boost/math/special_functions/math_fwd.hpp>
 #include <boost/math/constants/constants.hpp>
 #include <boost/type_traits/is_floating_point.hpp>
 #include <boost/array.hpp>
@@ -15,16 +15,17 @@
 
 #include "test_erf_hooks.hpp"
 #include "handle_test_result.hpp"
+#include "table_type.hpp"
 
 #ifndef SC_
-#define SC_(x) static_cast<T>(BOOST_JOIN(x, L))
+#define SC_(x) static_cast<typename table_type<T>::type>(BOOST_JOIN(x, L))
 #endif
 
-template <class T>
+template <class Real, class T>
 void do_test_erf(const T& data, const char* type_name, const char* test_name)
 {
    typedef typename T::value_type row_type;
- typedef typename row_type::value_type value_type;
+ typedef Real value_type;
 
    typedef value_type (*pg)(value_type);
 #if defined(BOOST_MATH_NO_DEDUCED_FUNCTION_POINTERS)
@@ -41,18 +42,18 @@
    //
    // test erf against data:
    //
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func(funcp, 0),
- extract_result(1));
+ bind_func<Real>(funcp, 0),
+ extract_result<Real>(1));
    handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::erf", test_name);
 #ifdef TEST_OTHER
    if(::boost::is_floating_point<value_type>::value){
       funcp = other::erf;
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
          data,
- bind_func(funcp, 0),
- extract_result(1));
+ bind_func<Real>(funcp, 0),
+ extract_result<Real>(1));
       print_test_result(result, data[result.worst()], result.worst(), type_name, "other::erf");
    }
 #endif
@@ -64,29 +65,29 @@
 #else
    funcp = boost::math::erfc;
 #endif
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func(funcp, 0),
- extract_result(2));
+ bind_func<Real>(funcp, 0),
+ extract_result<Real>(2));
    handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::erfc", test_name);
 #ifdef TEST_OTHER
    if(::boost::is_floating_point<value_type>::value){
       funcp = other::erfc;
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
          data,
- bind(funcp, 0),
- extract_result(2));
+ bind_func<Real>(funcp, 0),
+ extract_result<Real>(2));
       print_test_result(result, data[result.worst()], result.worst(), type_name, "other::erfc");
    }
 #endif
    std::cout << std::endl;
 }
 
-template <class T>
+template <class Real, class T>
 void do_test_erf_inv(const T& data, const char* type_name, const char* test_name)
 {
    typedef typename T::value_type row_type;
- typedef typename row_type::value_type value_type;
+ typedef Real value_type;
 
    typedef value_type (*pg)(value_type);
 
@@ -101,19 +102,19 @@
 #else
    pg funcp = boost::math::erf_inv;
 #endif
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func(funcp, 0),
- extract_result(1));
+ bind_func<Real>(funcp, 0),
+ extract_result<Real>(1));
    handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::erf_inv", test_name);
    std::cout << std::endl;
 }
 
-template <class T>
+template <class Real, class T>
 void do_test_erfc_inv(const T& data, const char* type_name, const char* test_name)
 {
    typedef typename T::value_type row_type;
- typedef typename row_type::value_type value_type;
+ typedef Real value_type;
 
    typedef value_type (*pg)(value_type);
 #if defined(BOOST_MATH_NO_DEDUCED_FUNCTION_POINTERS)
@@ -133,10 +134,10 @@
 #else
    funcp = boost::math::erfc_inv;
 #endif
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func(funcp, 0),
- extract_result(1));
+ bind_func<Real>(funcp, 0),
+ extract_result<Real>(1));
    handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::erfc_inv", test_name);
    std::cout << std::endl;
 }
@@ -152,29 +153,29 @@
    //
 # include "erf_small_data.ipp"
 
- do_test_erf(erf_small_data, name, "Erf Function: Small Values");
+ do_test_erf<T>(erf_small_data, name, "Erf Function: Small Values");
 
 # include "erf_data.ipp"
 
- do_test_erf(erf_data, name, "Erf Function: Medium Values");
+ do_test_erf<T>(erf_data, name, "Erf Function: Medium Values");
 
 # include "erf_large_data.ipp"
 
- do_test_erf(erf_large_data, name, "Erf Function: Large Values");
+ do_test_erf<T>(erf_large_data, name, "Erf Function: Large Values");
 
 # include "erf_inv_data.ipp"
 
- do_test_erf_inv(erf_inv_data, name, "Inverse Erf Function");
+ do_test_erf_inv<T>(erf_inv_data, name, "Inverse Erf Function");
 
 # include "erfc_inv_data.ipp"
 
- do_test_erfc_inv(erfc_inv_data, name, "Inverse Erfc Function");
+ do_test_erfc_inv<T>(erfc_inv_data, name, "Inverse Erfc Function");
 
 # include "erfc_inv_big_data.ipp"
 
    if(std::numeric_limits<T>::min_exponent <= -4500)
    {
- do_test_erfc_inv(erfc_inv_big_data, name, "Inverse Erfc Function: extreme values");
+ do_test_erfc_inv<T>(erfc_inv_big_data, name, "Inverse Erfc Function: extreme values");
    }
 }
 

Modified: branches/quickbook-dev/libs/math/test/test_expint.cpp
==============================================================================
--- branches/quickbook-dev/libs/math/test/test_expint.cpp (original)
+++ branches/quickbook-dev/libs/math/test/test_expint.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#include <pch.hpp>
+#include <pch_light.hpp>
 #include "test_expint.hpp"
 
 //

Modified: branches/quickbook-dev/libs/math/test/test_expint.hpp
==============================================================================
--- branches/quickbook-dev/libs/math/test/test_expint.hpp (original)
+++ branches/quickbook-dev/libs/math/test/test_expint.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -5,8 +5,7 @@
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
 #include <boost/math/concepts/real_concept.hpp>
-#include <boost/math/special_functions/expint.hpp>
-#include <boost/math/special_functions/trunc.hpp>
+#include <boost/math/special_functions/math_fwd.hpp>
 #include <boost/test/test_exec_monitor.hpp>
 #include <boost/test/floating_point_comparison.hpp>
 #include <boost/math/tools/stats.hpp>
@@ -18,9 +17,10 @@
 
 #include "handle_test_result.hpp"
 #include "test_expint_hooks.hpp"
+#include "table_type.hpp"
 
 #ifndef SC_
-#define SC_(x) static_cast<T>(BOOST_JOIN(x, L))
+#define SC_(x) static_cast<typename table_type<T>::type>(BOOST_JOIN(x, L))
 #endif
 
 template <class T>
@@ -38,7 +38,7 @@
       boost::math::itrunc(n), z);
 }
 #endif
-template <class T>
+template <class Real, class T>
 void do_test_expint(const T& data, const char* type_name, const char* test_name)
 {
    //
@@ -46,7 +46,7 @@
    //
    using namespace std;
    typedef typename T::value_type row_type;
- typedef typename row_type::value_type value_type;
+ typedef Real value_type;
 
    std::cout << test_name << " with type " << type_name << std::endl;
 
@@ -61,10 +61,10 @@
    //
    // test expint against data:
    //
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func(funcp, 0, 1),
- extract_result(2));
+ bind_func<Real>(funcp, 0, 1),
+ extract_result<Real>(2));
    handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::expint", test_name);
 #ifdef TEST_OTHER
    if(boost::is_floating_point<value_type>::value && other::expint(2u, 2.0))
@@ -73,17 +73,17 @@
       //
       // test expint against data:
       //
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
          data,
- bind_func(funcp, 0, 1),
- extract_result(2));
+ bind_func<Real>(funcp, 0, 1),
+ extract_result<Real>(2));
       handle_test_result(result, data[result.worst()], result.worst(), type_name, "other::expint", test_name);
    }
 #endif
    std::cout << std::endl;
 }
 
-template <class T>
+template <class Real, class T>
 void do_test_expint_Ei(const T& data, const char* type_name, const char* test_name)
 {
    //
@@ -91,7 +91,7 @@
    //
    using namespace std;
    typedef typename T::value_type row_type;
- typedef typename row_type::value_type value_type;
+ typedef Real value_type;
 
    std::cout << test_name << " with type " << type_name << std::endl;
 
@@ -106,10 +106,10 @@
    //
    // test expint against data:
    //
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func(funcp, 0),
- extract_result(1));
+ bind_func<Real>(funcp, 0),
+ extract_result<Real>(1));
    handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::expint", test_name);
 #ifdef TEST_OTHER
    if(boost::is_floating_point<value_type>::value && other::expint(2.0))
@@ -118,10 +118,10 @@
       //
       // test expint against data:
       //
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
          data,
- bind_func(funcp, 0),
- extract_result(1));
+ bind_func<Real>(funcp, 0),
+ extract_result<Real>(1));
       handle_test_result(result, data[result.worst()], result.worst(), type_name, "other::expint", test_name);
    }
 #endif
@@ -134,24 +134,24 @@
    // The actual test data is rather verbose, so it's in a separate file
    //
 #include "expint_data.ipp"
- do_test_expint(expint_data, name, "Exponential Integral En");
+ do_test_expint<T>(expint_data, name, "Exponential Integral En");
 #include "expint_small_data.ipp"
- do_test_expint(expint_small_data, name, "Exponential Integral En: small z values");
+ do_test_expint<T>(expint_small_data, name, "Exponential Integral En: small z values");
 #include "expint_1_data.ipp"
- do_test_expint(expint_1_data, name, "Exponential Integral E1");
+ do_test_expint<T>(expint_1_data, name, "Exponential Integral E1");
 #include "expinti_data.ipp"
- do_test_expint_Ei(expinti_data, name, "Exponential Integral Ei");
+ do_test_expint_Ei<T>(expinti_data, name, "Exponential Integral Ei");
 
    if(boost::math::tools::log_max_value<T>() > 100)
    {
 #include "expinti_data_double.ipp"
- do_test_expint_Ei(expinti_data_double, name, "Exponential Integral Ei: double exponent range");
+ do_test_expint_Ei<T>(expinti_data_double, name, "Exponential Integral Ei: double exponent range");
    }
 #if (defined(LDBL_MAX_10_EXP) && (LDBL_MAX_10_EXP > 2000)) || defined(TEST_UDT)
    if(boost::math::tools::log_max_value<T>() > 1000)
    {
 #include "expinti_data_long.ipp"
- do_test_expint_Ei(expinti_data_long, name, "Exponential Integral Ei: long exponent range");
+ do_test_expint_Ei<T>(expinti_data_long, name, "Exponential Integral Ei: long exponent range");
    }
 #endif
 }

Modified: branches/quickbook-dev/libs/math/test/test_gamma.cpp
==============================================================================
--- branches/quickbook-dev/libs/math/test/test_gamma.cpp (original)
+++ branches/quickbook-dev/libs/math/test/test_gamma.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#include <pch.hpp>
+#include <pch_light.hpp>
 #include "test_gamma.hpp"
 
 //

Modified: branches/quickbook-dev/libs/math/test/test_gamma.hpp
==============================================================================
--- branches/quickbook-dev/libs/math/test/test_gamma.hpp (original)
+++ branches/quickbook-dev/libs/math/test/test_gamma.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -7,7 +7,7 @@
 #define BOOST_MATH_OVERFLOW_ERROR_POLICY ignore_error
 
 #include <boost/math/concepts/real_concept.hpp>
-#include <boost/math/special_functions/gamma.hpp>
+#include <boost/math/special_functions/math_fwd.hpp>
 #include <boost/test/test_exec_monitor.hpp>
 #include <boost/test/floating_point_comparison.hpp>
 #include <boost/math/tools/stats.hpp>
@@ -19,16 +19,17 @@
 
 #include "test_gamma_hooks.hpp"
 #include "handle_test_result.hpp"
+#include "table_type.hpp"
 
 #ifndef SC_
-#define SC_(x) static_cast<T>(BOOST_JOIN(x, L))
+#define SC_(x) static_cast<typename table_type<T>::type>(BOOST_JOIN(x, L))
 #endif
 
-template <class T>
+template <class Real, class T>
 void do_test_gamma(const T& data, const char* type_name, const char* test_name)
 {
    typedef typename T::value_type row_type;
- typedef typename row_type::value_type value_type;
+ typedef Real value_type;
 
    typedef value_type (*pg)(value_type);
 #if defined(BOOST_MATH_NO_DEDUCED_FUNCTION_POINTERS)
@@ -45,18 +46,18 @@
    //
    // test tgamma against data:
    //
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func(funcp, 0),
- extract_result(1));
+ bind_func<Real>(funcp, 0),
+ extract_result<Real>(1));
    handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::tgamma", test_name);
 #ifdef TEST_OTHER
    if(::boost::is_floating_point<value_type>::value){
       funcp = other::tgamma;
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
          data,
- bind_func(funcp, 0),
- extract_result(1));
+ bind_func<Real>(funcp, 0),
+ extract_result<Real>(1));
       print_test_result(result, data[result.worst()], result.worst(), type_name, "other::tgamma");
    }
 #endif
@@ -68,18 +69,18 @@
 #else
    funcp = boost::math::lgamma;
 #endif
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func(funcp, 0),
- extract_result(2));
+ bind_func<Real>(funcp, 0),
+ extract_result<Real>(2));
    handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::lgamma", test_name);
 #ifdef TEST_OTHER
    if(::boost::is_floating_point<value_type>::value){
       funcp = other::lgamma;
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
          data,
- bind_func(funcp, 0),
- extract_result(2));
+ bind_func<Real>(funcp, 0),
+ extract_result<Real>(2));
       print_test_result(result, data[result.worst()], result.worst(), type_name, "other::lgamma");
    }
 #endif
@@ -87,11 +88,11 @@
    std::cout << std::endl;
 }
 
-template <class T>
+template <class Real, class T>
 void do_test_gammap1m1(const T& data, const char* type_name, const char* test_name)
 {
    typedef typename T::value_type row_type;
- typedef typename row_type::value_type value_type;
+ typedef Real value_type;
 
    typedef value_type (*pg)(value_type);
 #if defined(BOOST_MATH_NO_DEDUCED_FUNCTION_POINTERS)
@@ -108,10 +109,10 @@
    //
    // test tgamma1pm1 against data:
    //
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func(funcp, 0),
- extract_result(1));
+ bind_func<Real>(funcp, 0),
+ extract_result<Real>(1));
    handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::tgamma1pm1", test_name);
    std::cout << std::endl;
 }
@@ -151,17 +152,17 @@
    //
 # include "test_gamma_data.ipp"
 
- do_test_gamma(factorials, name, "factorials");
- do_test_gamma(near_0, name, "near 0");
- do_test_gamma(near_1, name, "near 1");
- do_test_gamma(near_2, name, "near 2");
- do_test_gamma(near_m10, name, "near -10");
- do_test_gamma(near_m55, name, "near -55");
+ do_test_gamma<T>(factorials, name, "factorials");
+ do_test_gamma<T>(near_0, name, "near 0");
+ do_test_gamma<T>(near_1, name, "near 1");
+ do_test_gamma<T>(near_2, name, "near 2");
+ do_test_gamma<T>(near_m10, name, "near -10");
+ do_test_gamma<T>(near_m55, name, "near -55");
 
    //
    // And now tgamma1pm1 which computes gamma(1+dz)-1:
    //
- do_test_gammap1m1(gammap1m1_data, name, "tgamma1pm1(dz)");
+ do_test_gammap1m1<T>(gammap1m1_data, name, "tgamma1pm1(dz)");
 }
 
 template <class T>

Modified: branches/quickbook-dev/libs/math/test/test_gamma_data.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/test_gamma_data.ipp (original)
+++ branches/quickbook-dev/libs/math/test/test_gamma_data.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
- static const boost::array<boost::array<T, 3>, 198> factorials = { {
+ static const boost::array<boost::array<typename table_type<T>::type, 3>, 198> factorials = { {
       {{ SC_(1), SC_(1), SC_(0) }},
       {{ SC_(2), SC_(1), SC_(0) }},
       {{ SC_(3), SC_(2), SC_(0.6931471805599453094172321214581765680755) }},
@@ -205,7 +205,7 @@
    } };
 
 
- static const boost::array<boost::array<T, 3>, 41> near_1 = { {
+ static const boost::array<boost::array<typename table_type<T>::type, 3>, 41> near_1 = { {
       {{ SC_(0.5), SC_(1.772453850905516027298167483341145182798), SC_(0.5723649429247000870717136756765293558236) }},
       {{ SC_(0.625), SC_(1.434518848090556775636019739456423136632), SC_(0.3608294954889401811849576858227794878574) }},
       {{ SC_(0.75), SC_(1.225416702465177645129098303362890526851), SC_(0.2032809514312953714814329718624296997597) }},
@@ -249,7 +249,7 @@
       {{ SC_(1.5), SC_(0.8862269254527580136490837416705725913988), SC_(-0.1207822376352452223455184457816472122519) }}
    } };
 
- static const boost::array<boost::array<T, 3>, 41> near_2 = { {
+ static const boost::array<boost::array<typename table_type<T>::type, 3>, 41> near_2 = { {
       {{ SC_(1.5), SC_(0.8862269254527580136490837416705725913988), SC_(-0.1207822376352452223455184457816472122519) }},
       {{ SC_(1.625), SC_(0.8965742800565979847725123371602644603951), SC_(-0.1091741337567953724659793453255625768435) }},
       {{ SC_(1.75), SC_(0.9190625268488832338468237275221678951384), SC_(-0.08440112102048555595778603413139773174384) }},
@@ -293,7 +293,7 @@
       {{ SC_(2.5), SC_(1.329340388179137020473625612505858887098), SC_(0.2846828704729191596324946696827019243201) }}
    } };
 
- static const boost::array<boost::array<T, 3>, 40> near_0 = { {
+ static const boost::array<boost::array<typename table_type<T>::type, 3>, 40> near_0 = { {
       {{ SC_(-0.5), SC_(-3.544907701811032054596334966682290365595), SC_(1.265512123484645396488945797134705923899) }},
       {{ SC_(-0.375), SC_(-3.825383594908151401696052638550461697686), SC_(1.341658748500666418041408813274783487436) }},
       {{ SC_(-0.25), SC_(-4.901666809860710580516393213451562107405), SC_(1.589575312551185990315897214778782835911) }},
@@ -336,7 +336,7 @@
       {{ SC_(0.5), SC_(1.772453850905516027298167483341145182798), SC_(0.5723649429247000870717136756765293558236) }}
    } };
 
- static const boost::array<boost::array<T, 3>, 40> near_m10 = { {
+ static const boost::array<boost::array<typename table_type<T>::type, 3>, 40> near_m10 = { {
       {{ SC_(-10.5), SC_(-0.2640121820547716316246385325311240439682e-6), SC_(-15.14727059071784114610117639552631963436) }},
       {{ SC_(-10.375), SC_(-0.3853824777091100016167565620752110328498e-6), SC_(-14.76902954720701012688042720516103787762) }},
       {{ SC_(-10.25), SC_(-0.67808180432946731304891004492754985848e-6), SC_(-14.20399790093109065161116876070387206737) }},
@@ -379,7 +379,7 @@
       {{ SC_(-9.5), SC_(0.2772127911575102132058704591576802461667e-5), SC_(-12.79589533355436345901781053661879076815) }}
    } };
 
- static const boost::array<boost::array<T, 3>, 40> near_m55 = { {
+ static const boost::array<boost::array<typename table_type<T>::type, 3>, 40> near_m55 = { {
       {{ SC_(-55.5), SC_(0.3313939247684676728377268347296671102738e-73), SC_(-169.1931592947433577934436950412776436064) }},
       {{ SC_(-55.375), SC_(0.5931885913251829148011431845907438457576e-73), SC_(-168.6109546898941580979033836431457031234) }},
       {{ SC_(-55.25), SC_(0.128134265213561204650151776242601279892e-72), SC_(-167.8408033134133338381597995376176917559) }},
@@ -422,7 +422,7 @@
       {{ SC_(-54.5), SC_(-0.183923628246499558424938393274965246202e-71), SC_(-165.1767762739909689670975862547818473059) }}
    } };
 
- static const boost::array<boost::array<T, 2>, 141> gammap1m1_data = { {
+ static const boost::array<boost::array<typename table_type<T>::type, 2>, 141> gammap1m1_data = { {
       {{ SC_(-0.4952165186405181884765625), SC_(0.7559827693907095754807809442951050489732) }},
       {{ SC_(-0.4642883241176605224609375), SC_(0.6574328869566978138139138799311066062094) }},
       {{ SC_(-0.4024595916271209716796875), SC_(0.4948624198600628575485791492257182331098) }},

Modified: branches/quickbook-dev/libs/math/test/test_hermite.cpp
==============================================================================
--- branches/quickbook-dev/libs/math/test/test_hermite.cpp (original)
+++ branches/quickbook-dev/libs/math/test/test_hermite.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -5,7 +5,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#include <pch.hpp>
+#include <pch_light.hpp>
 #include"test_hermite.hpp"
 
 //

Modified: branches/quickbook-dev/libs/math/test/test_hermite.hpp
==============================================================================
--- branches/quickbook-dev/libs/math/test/test_hermite.hpp (original)
+++ branches/quickbook-dev/libs/math/test/test_hermite.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -14,23 +14,24 @@
 #include <boost/math/concepts/real_concept.hpp>
 #include <boost/test/test_exec_monitor.hpp>
 #include <boost/test/floating_point_comparison.hpp>
-#include <boost/math/special_functions/hermite.hpp>
+#include <boost/math/special_functions/math_fwd.hpp>
 #include <boost/math/constants/constants.hpp>
 #include <boost/array.hpp>
 #include "functor.hpp"
 
 #include "handle_test_result.hpp"
 #include "test_legendre_hooks.hpp"
+#include "table_type.hpp"
 
 #ifndef SC_
-#define SC_(x) static_cast<T>(BOOST_JOIN(x, L))
+#define SC_(x) static_cast<typename table_type<T>::type>(BOOST_JOIN(x, L))
 #endif
 
-template <class T>
+template <class Real, class T>
 void do_test_hermite(const T& data, const char* type_name, const char* test_name)
 {
    typedef typename T::value_type row_type;
- typedef typename row_type::value_type value_type;
+ typedef Real value_type;
 
    typedef value_type (*pg)(unsigned, value_type);
 #if defined(BOOST_MATH_NO_DEDUCED_FUNCTION_POINTERS)
@@ -49,10 +50,10 @@
    //
    // test hermite against data:
    //
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func_int1(funcp, 0, 1),
- extract_result(2));
+ bind_func_int1<Real>(funcp, 0, 1),
+ extract_result<Real>(2));
    handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::hermite", test_name);
 
    std::cout << std::endl;
@@ -69,7 +70,7 @@
    //
 # include "hermite.ipp"
 
- do_test_hermite(hermite, name, "Hermite Polynomials");
+ do_test_hermite<T>(hermite, name, "Hermite Polynomials");
 }
 
 template <class T>

Modified: branches/quickbook-dev/libs/math/test/test_hypergeometric_dist.cpp
==============================================================================
--- branches/quickbook-dev/libs/math/test/test_hypergeometric_dist.cpp (original)
+++ branches/quickbook-dev/libs/math/test/test_hypergeometric_dist.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -24,6 +24,7 @@
 #include <boost/array.hpp>
 #include "functor.hpp"
 #include "handle_test_result.hpp"
+#include "table_type.hpp"
 
 #define BOOST_CHECK_EX(a) \
    {\
@@ -136,7 +137,7 @@
    return cdf(complement(d, x));
 }
 
-template <class T>
+template <class Real, class T>
 void do_test_hypergeometric(const T& data, const char* type_name, const char* test_name)
 {
    // warning suppression:
@@ -146,7 +147,7 @@
 
 #if !defined(TEST_QUANT) || (TEST_QUANT == 0)
    typedef typename T::value_type row_type;
- typedef typename row_type::value_type value_type;
+ typedef Real value_type;
 
    typedef value_type (*pg)(value_type, value_type, value_type, value_type);
 #if defined(BOOST_MATH_NO_DEDUCED_FUNCTION_POINTERS)
@@ -163,10 +164,10 @@
    //
    // test hypergeometric against data:
    //
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func(funcp, 0, 1, 2, 3),
- extract_result(4));
+ bind_func<Real>(funcp, 0, 1, 2, 3),
+ extract_result<Real>(4));
    handle_test_result(result, data[result.worst()], result.worst(), type_name, "hypergeometric PDF", test_name);
 
 #if defined(BOOST_MATH_NO_DEDUCED_FUNCTION_POINTERS)
@@ -178,10 +179,10 @@
    //
    // test hypergeometric against data:
    //
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func(funcp, 0, 1, 2, 3),
- extract_result(5));
+ bind_func<Real>(funcp, 0, 1, 2, 3),
+ extract_result<Real>(5));
    handle_test_result(result, data[result.worst()], result.worst(), type_name, "hypergeometric CDF", test_name);
 
 #if defined(BOOST_MATH_NO_DEDUCED_FUNCTION_POINTERS)
@@ -193,20 +194,20 @@
    //
    // test hypergeometric against data:
    //
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func(funcp, 0, 1, 2, 3),
- extract_result(6));
+ bind_func<Real>(funcp, 0, 1, 2, 3),
+ extract_result<Real>(6));
    handle_test_result(result, data[result.worst()], result.worst(), type_name, "hypergeometric CDF complement", test_name);
    std::cout << std::endl;
 #endif
 }
 
-template <class T>
+template <class Real, class T>
 void do_test_hypergeometric_quantile(const T& data, const char* type_name, const char* test_name)
 {
    typedef typename T::value_type row_type;
- typedef typename row_type::value_type value_type;
+ typedef Real value_type;
 
    std::cout << "Checking quantiles with " << test_name << " with type " << type_name
       << "\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n";
@@ -419,7 +420,7 @@
    // Test data taken from Mathematica 6
 #define T RealType
 #include "hypergeometric_test_data.ipp"
- do_test_hypergeometric(hypergeometric_test_data, type_name, "Mathematica data");
+ do_test_hypergeometric<T>(hypergeometric_test_data, type_name, "Mathematica data");
 
 #include "hypergeometric_dist_data2.ipp"
    if(boost::is_floating_point<RealType>::value)
@@ -427,16 +428,16 @@
       //
       // Don't test this for real_concept: it's too slow!!!
       //
- do_test_hypergeometric(hypergeometric_dist_data2, type_name, "Random large data");
+ do_test_hypergeometric<T>(hypergeometric_dist_data2, type_name, "Random large data");
    }
 
- do_test_hypergeometric_quantile(hypergeometric_test_data, type_name, "Mathematica data");
+ do_test_hypergeometric_quantile<T>(hypergeometric_test_data, type_name, "Mathematica data");
    if(boost::is_floating_point<RealType>::value)
    {
       //
       // Don't test this for real_concept: it's too slow!!!
       //
- do_test_hypergeometric_quantile(hypergeometric_dist_data2, type_name, "Random large data");
+ do_test_hypergeometric_quantile<T>(hypergeometric_dist_data2, type_name, "Random large data");
    }
 
    RealType tolerance = (std::max)(

Modified: branches/quickbook-dev/libs/math/test/test_ibeta.cpp
==============================================================================
--- branches/quickbook-dev/libs/math/test/test_ibeta.cpp (original)
+++ branches/quickbook-dev/libs/math/test/test_ibeta.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#include <pch.hpp>
+#include <pch_light.hpp>
 #include "test_ibeta.hpp"
 
 #if !defined(TEST_FLOAT) && !defined(TEST_DOUBLE) && !defined(TEST_LDOUBLE) && !defined(TEST_REAL_CONCEPT)

Modified: branches/quickbook-dev/libs/math/test/test_ibeta.hpp
==============================================================================
--- branches/quickbook-dev/libs/math/test/test_ibeta.hpp (original)
+++ branches/quickbook-dev/libs/math/test/test_ibeta.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -7,7 +7,7 @@
 #include <boost/math/concepts/real_concept.hpp>
 #include <boost/test/test_exec_monitor.hpp>
 #include <boost/test/floating_point_comparison.hpp>
-#include <boost/math/special_functions/beta.hpp>
+#include <boost/math/special_functions/math_fwd.hpp>
 #include <boost/math/tools/stats.hpp>
 #include <boost/math/tools/test.hpp>
 #include <boost/math/constants/constants.hpp>
@@ -17,16 +17,17 @@
 
 #include "test_beta_hooks.hpp"
 #include "handle_test_result.hpp"
+#include "table_type.hpp"
 
 #ifndef SC_
-#define SC_(x) static_cast<T>(BOOST_JOIN(x, L))
+#define SC_(x) static_cast<typename table_type<T>::type>(BOOST_JOIN(x, L))
 #endif
 
-template <class T>
+template <class Real, class T>
 void do_test_beta(const T& data, const char* type_name, const char* test_name)
 {
    typedef typename T::value_type row_type;
- typedef typename row_type::value_type value_type;
+ typedef Real value_type;
 
    typedef value_type (*pg)(value_type, value_type, value_type);
 #if defined(BOOST_MATH_NO_DEDUCED_FUNCTION_POINTERS)
@@ -43,10 +44,10 @@
    //
    // test beta against data:
    //
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func(funcp, 0, 1, 2),
- extract_result(3));
+ bind_func<Real>(funcp, 0, 1, 2),
+ extract_result<Real>(3));
    handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::beta", test_name);
 
 #if defined(BOOST_MATH_NO_DEDUCED_FUNCTION_POINTERS)
@@ -54,10 +55,10 @@
 #else
    funcp = boost::math::betac;
 #endif
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func(funcp, 0, 1, 2),
- extract_result(4));
+ bind_func<Real>(funcp, 0, 1, 2),
+ extract_result<Real>(4));
    handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::betac", test_name);
 
 #if defined(BOOST_MATH_NO_DEDUCED_FUNCTION_POINTERS)
@@ -65,10 +66,10 @@
 #else
    funcp = boost::math::ibeta;
 #endif
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func(funcp, 0, 1, 2),
- extract_result(5));
+ bind_func<Real>(funcp, 0, 1, 2),
+ extract_result<Real>(5));
    handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::ibeta", test_name);
 
 #if defined(BOOST_MATH_NO_DEDUCED_FUNCTION_POINTERS)
@@ -76,18 +77,18 @@
 #else
    funcp = boost::math::ibetac;
 #endif
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func(funcp, 0, 1, 2),
- extract_result(6));
+ bind_func<Real>(funcp, 0, 1, 2),
+ extract_result<Real>(6));
    handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::ibetac", test_name);
 #ifdef TEST_OTHER
    if(::boost::is_floating_point<value_type>::value){
       funcp = other::ibeta;
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
          data,
- bind_func(funcp, 0, 1, 2),
- extract_result(5));
+ bind_func<Real>(funcp, 0, 1, 2),
+ extract_result<Real>(5));
       print_test_result(result, data[result.worst()], result.worst(), type_name, "other::ibeta");
    }
 #endif
@@ -106,25 +107,25 @@
 #if !defined(TEST_DATA) || (TEST_DATA == 1)
 # include "ibeta_small_data.ipp"
 
- do_test_beta(ibeta_small_data, name, "Incomplete Beta Function: Small Values");
+ do_test_beta<T>(ibeta_small_data, name, "Incomplete Beta Function: Small Values");
 #endif
 
 #if !defined(TEST_DATA) || (TEST_DATA == 2)
 # include "ibeta_data.ipp"
 
- do_test_beta(ibeta_data, name, "Incomplete Beta Function: Medium Values");
+ do_test_beta<T>(ibeta_data, name, "Incomplete Beta Function: Medium Values");
 
 #endif
 #if !defined(TEST_DATA) || (TEST_DATA == 3)
 # include "ibeta_large_data.ipp"
 
- do_test_beta(ibeta_large_data, name, "Incomplete Beta Function: Large and Diverse Values");
+ do_test_beta<T>(ibeta_large_data, name, "Incomplete Beta Function: Large and Diverse Values");
 #endif
 
 #if !defined(TEST_DATA) || (TEST_DATA == 4)
 # include "ibeta_int_data.ipp"
 
- do_test_beta(ibeta_int_data, name, "Incomplete Beta Function: Small Integer Values");
+ do_test_beta<T>(ibeta_int_data, name, "Incomplete Beta Function: Small Integer Values");
 #endif
 }
 

Modified: branches/quickbook-dev/libs/math/test/test_ibeta_inv.cpp
==============================================================================
--- branches/quickbook-dev/libs/math/test/test_ibeta_inv.cpp (original)
+++ branches/quickbook-dev/libs/math/test/test_ibeta_inv.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#include <pch.hpp>
+#include <pch_light.hpp>
 #include"test_ibeta_inv.hpp"
 
 #if !defined(TEST_FLOAT) && !defined(TEST_DOUBLE) && !defined(TEST_LDOUBLE) && !defined(TEST_REAL_CONCEPT)

Modified: branches/quickbook-dev/libs/math/test/test_ibeta_inv.hpp
==============================================================================
--- branches/quickbook-dev/libs/math/test/test_ibeta_inv.hpp (original)
+++ branches/quickbook-dev/libs/math/test/test_ibeta_inv.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -7,7 +7,7 @@
 #include <boost/math/concepts/real_concept.hpp>
 #include <boost/test/test_exec_monitor.hpp>
 #include <boost/test/floating_point_comparison.hpp>
-#include <boost/math/special_functions/beta.hpp>
+#include <boost/math/special_functions/math_fwd.hpp>
 #include <boost/math/tools/stats.hpp>
 #include <boost/math/tools/test.hpp>
 #include <boost/math/constants/constants.hpp>
@@ -17,17 +17,18 @@
 
 #include "test_beta_hooks.hpp"
 #include "handle_test_result.hpp"
+#include "table_type.hpp"
 
 #ifndef SC_
-#define SC_(x) static_cast<T>(BOOST_JOIN(x, L))
+#define SC_(x) static_cast<typename table_type<T>::type>(BOOST_JOIN(x, L))
 #endif
 
-template <class T>
+template <class Real, class T>
 void test_inverses(const T& data)
 {
    using namespace std;
    typedef typename T::value_type row_type;
- typedef typename row_type::value_type value_type;
+ typedef Real value_type;
 
    value_type precision = static_cast<value_type>(ldexp(1.0, 1-boost::math::policies::digits<value_type, boost::math::policies::policy<> >()/2)) * 100;
    if(boost::math::policies::digits<value_type, boost::math::policies::policy<> >() < 50)
@@ -41,37 +42,37 @@
       // information left in the value we're using as input to the inverse
       // to be able to get back to the original value.
       //
- if(data[i][5] == 0)
- BOOST_CHECK_EQUAL(boost::math::ibeta_inv(data[i][0], data[i][1], data[i][5]), value_type(0));
- else if((1 - data[i][5] > 0.001)
- && (fabs(data[i][5]) > 2 * boost::math::tools::min_value<value_type>())
- && (fabs(data[i][5]) > 2 * boost::math::tools::min_value<double>()))
+ if(Real(data[i][5]) == 0)
+ BOOST_CHECK_EQUAL(boost::math::ibeta_inv(Real(data[i][0]), Real(data[i][1]), Real(data[i][5])), value_type(0));
+ else if((1 - Real(data[i][5]) > 0.001)
+ && (fabs(Real(data[i][5])) > 2 * boost::math::tools::min_value<value_type>())
+ && (fabs(Real(data[i][5])) > 2 * boost::math::tools::min_value<double>()))
       {
- value_type inv = boost::math::ibeta_inv(data[i][0], data[i][1], data[i][5]);
- BOOST_CHECK_CLOSE(data[i][2], inv, precision);
+ value_type inv = boost::math::ibeta_inv(Real(data[i][0]), Real(data[i][1]), Real(data[i][5]));
+ BOOST_CHECK_CLOSE(Real(data[i][2]), inv, precision);
       }
- else if(1 == data[i][5])
- BOOST_CHECK_EQUAL(boost::math::ibeta_inv(data[i][0], data[i][1], data[i][5]), value_type(1));
+ else if(1 == Real(data[i][5]))
+ BOOST_CHECK_EQUAL(boost::math::ibeta_inv(Real(data[i][0]), Real(data[i][1]), Real(data[i][5])), value_type(1));
 
- if(data[i][6] == 0)
- BOOST_CHECK_EQUAL(boost::math::ibetac_inv(data[i][0], data[i][1], data[i][6]), value_type(1));
- else if((1 - data[i][6] > 0.001)
- && (fabs(data[i][6]) > 2 * boost::math::tools::min_value<value_type>())
- && (fabs(data[i][6]) > 2 * boost::math::tools::min_value<double>()))
+ if(Real(data[i][6]) == 0)
+ BOOST_CHECK_EQUAL(boost::math::ibetac_inv(Real(data[i][0]), Real(data[i][1]), Real(data[i][6])), value_type(1));
+ else if((1 - Real(data[i][6]) > 0.001)
+ && (fabs(Real(data[i][6])) > 2 * boost::math::tools::min_value<value_type>())
+ && (fabs(Real(data[i][6])) > 2 * boost::math::tools::min_value<double>()))
       {
- value_type inv = boost::math::ibetac_inv(data[i][0], data[i][1], data[i][6]);
- BOOST_CHECK_CLOSE(data[i][2], inv, precision);
+ value_type inv = boost::math::ibetac_inv(Real(data[i][0]), Real(data[i][1]), Real(data[i][6]));
+ BOOST_CHECK_CLOSE(Real(data[i][2]), inv, precision);
       }
- else if(data[i][6] == 1)
- BOOST_CHECK_EQUAL(boost::math::ibetac_inv(data[i][0], data[i][1], data[i][6]), value_type(0));
+ else if(Real(data[i][6]) == 1)
+ BOOST_CHECK_EQUAL(boost::math::ibetac_inv(Real(data[i][0]), Real(data[i][1]), Real(data[i][6])), value_type(0));
    }
 }
 
-template <class T>
+template <class Real, class T>
 void test_inverses2(const T& data, const char* type_name, const char* test_name)
 {
    typedef typename T::value_type row_type;
- typedef typename row_type::value_type value_type;
+ typedef Real value_type;
 
    typedef value_type (*pg)(value_type, value_type, value_type);
 #if defined(BOOST_MATH_NO_DEDUCED_FUNCTION_POINTERS)
@@ -88,10 +89,10 @@
    //
    // test ibeta_inv(T, T, T) against data:
    //
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func(funcp, 0, 1, 2),
- extract_result(3));
+ bind_func<Real>(funcp, 0, 1, 2),
+ extract_result<Real>(3));
    handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::ibeta_inv", test_name);
    //
    // test ibetac_inv(T, T, T) against data:
@@ -101,10 +102,10 @@
 #else
    funcp = boost::math::ibetac_inv;
 #endif
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func(funcp, 0, 1, 2),
- extract_result(4));
+ bind_func<Real>(funcp, 0, 1, 2),
+ extract_result<Real>(4));
    handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::ibetac_inv", test_name);
 }
 
@@ -122,25 +123,25 @@
 #if !defined(TEST_DATA) || (TEST_DATA == 1)
 # include "ibeta_small_data.ipp"
 
- test_inverses(ibeta_small_data);
+ test_inverses<T>(ibeta_small_data);
 #endif
 
 #if !defined(TEST_DATA) || (TEST_DATA == 2)
 # include "ibeta_data.ipp"
 
- test_inverses(ibeta_data);
+ test_inverses<T>(ibeta_data);
 #endif
 
 #if !defined(TEST_DATA) || (TEST_DATA == 3)
 # include "ibeta_large_data.ipp"
 
- test_inverses(ibeta_large_data);
+ test_inverses<T>(ibeta_large_data);
 #endif
 
 #if !defined(TEST_DATA) || (TEST_DATA == 4)
 # include "ibeta_inv_data.ipp"
 
- test_inverses2(ibeta_inv_data, name, "Inverse incomplete beta");
+ test_inverses2<T>(ibeta_inv_data, name, "Inverse incomplete beta");
 #endif
 }
 

Modified: branches/quickbook-dev/libs/math/test/test_ibeta_inv_ab.cpp
==============================================================================
--- branches/quickbook-dev/libs/math/test/test_ibeta_inv_ab.cpp (original)
+++ branches/quickbook-dev/libs/math/test/test_ibeta_inv_ab.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#include <pch.hpp>
+#include <pch_light.hpp>
 #include "test_ibeta_inv_ab.hpp"
 
 #if !defined(TEST_FLOAT) && !defined(TEST_DOUBLE) && !defined(TEST_LDOUBLE) && !defined(TEST_REAL_CONCEPT)

Modified: branches/quickbook-dev/libs/math/test/test_ibeta_inv_ab.hpp
==============================================================================
--- branches/quickbook-dev/libs/math/test/test_ibeta_inv_ab.hpp (original)
+++ branches/quickbook-dev/libs/math/test/test_ibeta_inv_ab.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -9,7 +9,7 @@
 #include <boost/math/concepts/real_concept.hpp>
 #include <boost/test/test_exec_monitor.hpp>
 #include <boost/test/floating_point_comparison.hpp>
-#include <boost/math/special_functions/beta.hpp>
+#include <boost/math/special_functions/math_fwd.hpp>
 #include <boost/math/tools/stats.hpp>
 #include <boost/math/tools/test.hpp>
 #include <boost/math/constants/constants.hpp>
@@ -23,17 +23,18 @@
 #endif
 
 #include "handle_test_result.hpp"
+#include "table_type.hpp"
 
 #ifndef SC_
-#define SC_(x) static_cast<T>(BOOST_JOIN(x, L))
+#define SC_(x) static_cast<typename table_type<T>::type>(BOOST_JOIN(x, L))
 #endif
 
-template <class T>
+template <class Real, class T>
 void test_inverses(const T& data)
 {
    using namespace std;
    typedef typename T::value_type row_type;
- typedef typename row_type::value_type value_type;
+ typedef Real value_type;
 
    value_type precision = static_cast<value_type>(ldexp(1.0, 1-boost::math::policies::digits<value_type, boost::math::policies::policy<> >()/2)) * 100;
    if(boost::math::policies::digits<value_type, boost::math::policies::policy<> >() < 50)
@@ -47,53 +48,53 @@
       // information left in the value we're using as input to the inverse
       // to be able to get back to the original value.
       //
- if(data[i][5] == 0)
+ if(Real(data[i][5]) == 0)
       {
- BOOST_CHECK_EQUAL(boost::math::ibeta_inva(data[i][1], data[i][2], data[i][5]), boost::math::tools::max_value<value_type>());
- BOOST_CHECK_EQUAL(boost::math::ibeta_invb(data[i][0], data[i][2], data[i][5]), boost::math::tools::min_value<value_type>());
+ BOOST_CHECK_EQUAL(boost::math::ibeta_inva(Real(data[i][1]), Real(data[i][2]), Real(data[i][5])), boost::math::tools::max_value<value_type>());
+ BOOST_CHECK_EQUAL(boost::math::ibeta_invb(Real(data[i][0]), Real(data[i][2]), Real(data[i][5])), boost::math::tools::min_value<value_type>());
       }
- else if((1 - data[i][5] > 0.001)
- && (fabs(data[i][5]) > 2 * boost::math::tools::min_value<value_type>())
- && (fabs(data[i][5]) > 2 * boost::math::tools::min_value<double>()))
+ else if((1 - Real(data[i][5]) > 0.001)
+ && (fabs(Real(data[i][5])) > 2 * boost::math::tools::min_value<value_type>())
+ && (fabs(Real(data[i][5])) > 2 * boost::math::tools::min_value<double>()))
       {
- value_type inv = boost::math::ibeta_inva(data[i][1], data[i][2], data[i][5]);
- BOOST_CHECK_CLOSE(data[i][0], inv, precision);
- inv = boost::math::ibeta_invb(data[i][0], data[i][2], data[i][5]);
- BOOST_CHECK_CLOSE(data[i][1], inv, precision);
+ value_type inv = boost::math::ibeta_inva(Real(data[i][1]), Real(data[i][2]), Real(data[i][5]));
+ BOOST_CHECK_CLOSE(Real(data[i][0]), inv, precision);
+ inv = boost::math::ibeta_invb(Real(data[i][0]), Real(data[i][2]), Real(data[i][5]));
+ BOOST_CHECK_CLOSE(Real(data[i][1]), inv, precision);
       }
- else if(1 == data[i][5])
+ else if(1 == Real(data[i][5]))
       {
- BOOST_CHECK_EQUAL(boost::math::ibeta_inva(data[i][1], data[i][2], data[i][5]), boost::math::tools::min_value<value_type>());
- BOOST_CHECK_EQUAL(boost::math::ibeta_invb(data[i][0], data[i][2], data[i][5]), boost::math::tools::max_value<value_type>());
+ BOOST_CHECK_EQUAL(boost::math::ibeta_inva(Real(data[i][1]), Real(data[i][2]), Real(data[i][5])), boost::math::tools::min_value<value_type>());
+ BOOST_CHECK_EQUAL(boost::math::ibeta_invb(Real(data[i][0]), Real(data[i][2]), Real(data[i][5])), boost::math::tools::max_value<value_type>());
       }
 
- if(data[i][6] == 0)
+ if(Real(data[i][6]) == 0)
       {
- BOOST_CHECK_EQUAL(boost::math::ibetac_inva(data[i][1], data[i][2], data[i][6]), boost::math::tools::min_value<value_type>());
- BOOST_CHECK_EQUAL(boost::math::ibetac_invb(data[i][0], data[i][2], data[i][6]), boost::math::tools::max_value<value_type>());
+ BOOST_CHECK_EQUAL(boost::math::ibetac_inva(Real(data[i][1]), Real(data[i][2]), Real(data[i][6])), boost::math::tools::min_value<value_type>());
+ BOOST_CHECK_EQUAL(boost::math::ibetac_invb(Real(data[i][0]), Real(data[i][2]), Real(data[i][6])), boost::math::tools::max_value<value_type>());
       }
- else if((1 - data[i][6] > 0.001)
- && (fabs(data[i][6]) > 2 * boost::math::tools::min_value<value_type>())
- && (fabs(data[i][6]) > 2 * boost::math::tools::min_value<double>()))
+ else if((1 - Real(data[i][6]) > 0.001)
+ && (fabs(Real(data[i][6])) > 2 * boost::math::tools::min_value<value_type>())
+ && (fabs(Real(data[i][6])) > 2 * boost::math::tools::min_value<double>()))
       {
- value_type inv = boost::math::ibetac_inva(data[i][1], data[i][2], data[i][6]);
- BOOST_CHECK_CLOSE(data[i][0], inv, precision);
- inv = boost::math::ibetac_invb(data[i][0], data[i][2], data[i][6]);
- BOOST_CHECK_CLOSE(data[i][1], inv, precision);
+ value_type inv = boost::math::ibetac_inva(Real(data[i][1]), Real(data[i][2]), Real(data[i][6]));
+ BOOST_CHECK_CLOSE(Real(data[i][0]), inv, precision);
+ inv = boost::math::ibetac_invb(Real(data[i][0]), Real(data[i][2]), Real(data[i][6]));
+ BOOST_CHECK_CLOSE(Real(data[i][1]), inv, precision);
       }
- else if(data[i][6] == 1)
+ else if(Real(data[i][6]) == 1)
       {
- BOOST_CHECK_EQUAL(boost::math::ibetac_inva(data[i][1], data[i][2], data[i][6]), boost::math::tools::max_value<value_type>());
- BOOST_CHECK_EQUAL(boost::math::ibetac_invb(data[i][0], data[i][2], data[i][6]), boost::math::tools::min_value<value_type>());
+ BOOST_CHECK_EQUAL(boost::math::ibetac_inva(Real(data[i][1]), Real(data[i][2]), Real(data[i][6])), boost::math::tools::max_value<value_type>());
+ BOOST_CHECK_EQUAL(boost::math::ibetac_invb(Real(data[i][0]), Real(data[i][2]), Real(data[i][6])), boost::math::tools::min_value<value_type>());
       }
    }
 }
 
-template <class T>
+template <class Real, class T>
 void test_inverses2(const T& data, const char* type_name, const char* test_name)
 {
    typedef typename T::value_type row_type;
- typedef typename row_type::value_type value_type;
+ typedef Real value_type;
 
    typedef value_type (*pg)(value_type, value_type, value_type);
 #if defined(BOOST_MATH_NO_DEDUCED_FUNCTION_POINTERS)
@@ -110,10 +111,10 @@
    //
    // test ibeta_inva(T, T, T) against data:
    //
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func(funcp, 0, 1, 2),
- extract_result(3));
+ bind_func<Real>(funcp, 0, 1, 2),
+ extract_result<Real>(3));
    handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::ibeta_inva", test_name);
    //
    // test ibetac_inva(T, T, T) against data:
@@ -123,10 +124,10 @@
 #else
    funcp = boost::math::ibetac_inva;
 #endif
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func(funcp, 0, 1, 2),
- extract_result(4));
+ bind_func<Real>(funcp, 0, 1, 2),
+ extract_result<Real>(4));
    handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::ibetac_inva", test_name);
    //
    // test ibeta_invb(T, T, T) against data:
@@ -136,10 +137,10 @@
 #else
    funcp = boost::math::ibeta_invb;
 #endif
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func(funcp, 0, 1, 2),
- extract_result(5));
+ bind_func<Real>(funcp, 0, 1, 2),
+ extract_result<Real>(5));
    handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::ibeta_invb", test_name);
    //
    // test ibetac_invb(T, T, T) against data:
@@ -149,10 +150,10 @@
 #else
    funcp = boost::math::ibetac_invb;
 #endif
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func(funcp, 0, 1, 2),
- extract_result(6));
+ bind_func<Real>(funcp, 0, 1, 2),
+ extract_result<Real>(6));
    handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::ibetac_invb", test_name);
 }
 
@@ -170,19 +171,19 @@
 #if !defined(TEST_DATA) || (TEST_DATA == 1)
 # include "ibeta_small_data.ipp"
 
- test_inverses(ibeta_small_data);
+ test_inverses<T>(ibeta_small_data);
 #endif
 
 #if !defined(TEST_DATA) || (TEST_DATA == 2)
 # include "ibeta_data.ipp"
 
- test_inverses(ibeta_data);
+ test_inverses<T>(ibeta_data);
 #endif
 
 #if !defined(TEST_DATA) || (TEST_DATA == 3)
 # include "ibeta_large_data.ipp"
 
- test_inverses(ibeta_large_data);
+ test_inverses<T>(ibeta_large_data);
 #endif
 
 #if !defined(TEST_REAL_CONCEPT) || defined(FULL_TEST) || (TEST_DATA == 4)
@@ -197,7 +198,7 @@
    //
 # include "ibeta_inva_data.ipp"
 
- test_inverses2(ibeta_inva_data, name, "Inverse incomplete beta");
+ test_inverses2<T>(ibeta_inva_data, name, "Inverse incomplete beta");
 #ifndef FULL_TEST
    }
 #endif

Modified: branches/quickbook-dev/libs/math/test/test_igamma.cpp
==============================================================================
--- branches/quickbook-dev/libs/math/test/test_igamma.cpp (original)
+++ branches/quickbook-dev/libs/math/test/test_igamma.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#include <pch.hpp>
+#include <pch_light.hpp>
 #include "test_igamma.hpp"
 
 //

Modified: branches/quickbook-dev/libs/math/test/test_igamma.hpp
==============================================================================
--- branches/quickbook-dev/libs/math/test/test_igamma.hpp (original)
+++ branches/quickbook-dev/libs/math/test/test_igamma.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -7,7 +7,7 @@
 #define BOOST_MATH_OVERFLOW_ERROR_POLICY ignore_error
 
 #include <boost/math/concepts/real_concept.hpp>
-#include <boost/math/special_functions/gamma.hpp>
+#include <boost/math/special_functions/math_fwd.hpp>
 #include <boost/test/test_exec_monitor.hpp>
 #include <boost/test/floating_point_comparison.hpp>
 #include <boost/math/tools/stats.hpp>
@@ -19,16 +19,17 @@
 
 #include "test_gamma_hooks.hpp"
 #include "handle_test_result.hpp"
+#include "table_type.hpp"
 
 #ifndef SC_
-#define SC_(x) static_cast<T>(BOOST_JOIN(x, L))
+#define SC_(x) static_cast<typename table_type<T>::type>(BOOST_JOIN(x, L))
 #endif
 
-template <class T>
+template <class Real, class T>
 void do_test_gamma_2(const T& data, const char* type_name, const char* test_name)
 {
    typedef typename T::value_type row_type;
- typedef typename row_type::value_type value_type;
+ typedef Real value_type;
 
    typedef value_type (*pg)(value_type, value_type);
 #if defined(BOOST_MATH_NO_DEDUCED_FUNCTION_POINTERS)
@@ -45,12 +46,12 @@
    //
    // test tgamma(T, T) against data:
    //
- if(data[0][2] > 0)
+ if(Real(data[0][2]) > 0)
    {
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
          data,
- bind_func(funcp, 0, 1),
- extract_result(2));
+ bind_func<Real>(funcp, 0, 1),
+ extract_result<Real>(2));
       handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::tgamma", test_name);
       //
       // test tgamma_lower(T, T) against data:
@@ -60,10 +61,10 @@
 #else
       funcp = boost::math::tgamma_lower;
 #endif
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
          data,
- bind_func(funcp, 0, 1),
- extract_result(4));
+ bind_func<Real>(funcp, 0, 1),
+ extract_result<Real>(4));
       handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::tgamma_lower", test_name);
    }
    //
@@ -74,10 +75,10 @@
 #else
    funcp = boost::math::gamma_q;
 #endif
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func(funcp, 0, 1),
- extract_result(3));
+ bind_func<Real>(funcp, 0, 1),
+ extract_result<Real>(3));
    handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::gamma_q", test_name);
 #if defined(TEST_OTHER)
    //
@@ -86,10 +87,10 @@
    if(boost::is_floating_point<value_type>::value)
    {
       funcp = other::gamma_q;
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
          data,
- bind_func(funcp, 0, 1),
- extract_result(3));
+ bind_func<Real>(funcp, 0, 1),
+ extract_result<Real>(3));
       print_test_result(result, data[result.worst()], result.worst(), type_name, "other::gamma_q");
    }
 #endif
@@ -101,10 +102,10 @@
 #else
    funcp = boost::math::gamma_p;
 #endif
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func(funcp, 0, 1),
- extract_result(5));
+ bind_func<Real>(funcp, 0, 1),
+ extract_result<Real>(5));
    handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::gamma_p", test_name);
 #if defined(TEST_OTHER)
    //
@@ -113,10 +114,10 @@
    if(boost::is_floating_point<value_type>::value)
    {
       funcp = other::gamma_p;
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
          data,
- bind_func(funcp, 0, 1),
- extract_result(5));
+ bind_func<Real>(funcp, 0, 1),
+ extract_result<Real>(5));
       print_test_result(result, data[result.worst()], result.worst(), type_name, "other::gamma_p");
    }
 #endif
@@ -137,19 +138,19 @@
    //
 # include "igamma_med_data.ipp"
 
- do_test_gamma_2(igamma_med_data, name, "tgamma(a, z) medium values");
+ do_test_gamma_2<T>(igamma_med_data, name, "tgamma(a, z) medium values");
 
 # include "igamma_small_data.ipp"
 
- do_test_gamma_2(igamma_small_data, name, "tgamma(a, z) small values");
+ do_test_gamma_2<T>(igamma_small_data, name, "tgamma(a, z) small values");
 
 # include "igamma_big_data.ipp"
 
- do_test_gamma_2(igamma_big_data, name, "tgamma(a, z) large values");
+ do_test_gamma_2<T>(igamma_big_data, name, "tgamma(a, z) large values");
 
 # include "igamma_int_data.ipp"
 
- do_test_gamma_2(igamma_int_data, name, "tgamma(a, z) integer and half integer values");
+ do_test_gamma_2<T>(igamma_int_data, name, "tgamma(a, z) integer and half integer values");
 }
 
 template <class T>

Modified: branches/quickbook-dev/libs/math/test/test_igamma_inv.cpp
==============================================================================
--- branches/quickbook-dev/libs/math/test/test_igamma_inv.cpp (original)
+++ branches/quickbook-dev/libs/math/test/test_igamma_inv.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#include <pch.hpp>
+#include <pch_light.hpp>
 #include "test_igamma_inv.hpp"
 
 #if !defined(TEST_FLOAT) && !defined(TEST_DOUBLE) && !defined(TEST_LDOUBLE) && !defined(TEST_REAL_CONCEPT)

Modified: branches/quickbook-dev/libs/math/test/test_igamma_inv.hpp
==============================================================================
--- branches/quickbook-dev/libs/math/test/test_igamma_inv.hpp (original)
+++ branches/quickbook-dev/libs/math/test/test_igamma_inv.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -5,7 +5,7 @@
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
 #include <boost/math/concepts/real_concept.hpp>
-#include <boost/math/special_functions/gamma.hpp>
+#include <boost/math/special_functions/math_fwd.hpp>
 #include <boost/test/test_exec_monitor.hpp>
 #include <boost/test/results_collector.hpp>
 #include <boost/test/unit_test.hpp>
@@ -19,9 +19,10 @@
 
 #include "test_gamma_hooks.hpp"
 #include "handle_test_result.hpp"
+#include "table_type.hpp"
 
 #ifndef SC_
-#define SC_(x) static_cast<T>(BOOST_JOIN(x, L))
+#define SC_(x) static_cast<typename table_type<T>::type>(BOOST_JOIN(x, L))
 #endif
 
 #define BOOST_CHECK_CLOSE_EX(a, b, prec, i) \
@@ -37,7 +38,7 @@
       }\
    }
 
-template <class T>
+template <class Real, class T>
 void do_test_gamma_2(const T& data, const char* type_name, const char* test_name)
 {
    //
@@ -45,7 +46,7 @@
    //
    using namespace std;
    typedef typename T::value_type row_type;
- typedef typename row_type::value_type value_type;
+ typedef Real value_type;
 
    std::cout << test_name << " with type " << type_name << std::endl;
 
@@ -72,50 +73,50 @@
       // information left in the value we're using as input to the inverse
       // to be able to get back to the original value.
       //
- if(data[i][5] == 0)
- BOOST_CHECK_EQUAL(boost::math::gamma_p_inv(data[i][0], data[i][5]), value_type(0));
- else if((1 - data[i][5] > 0.001)
- && (fabs(data[i][5]) > 2 * boost::math::tools::min_value<value_type>())
- && (fabs(data[i][5]) > 2 * boost::math::tools::min_value<double>()))
+ if(Real(data[i][5]) == 0)
+ BOOST_CHECK_EQUAL(boost::math::gamma_p_inv(Real(data[i][0]), Real(data[i][5])), value_type(0));
+ else if((1 - Real(data[i][5]) > 0.001)
+ && (fabs(Real(data[i][5])) > 2 * boost::math::tools::min_value<value_type>())
+ && (fabs(Real(data[i][5])) > 2 * boost::math::tools::min_value<double>()))
       {
- value_type inv = boost::math::gamma_p_inv(data[i][0], data[i][5]);
- BOOST_CHECK_CLOSE_EX(data[i][1], inv, precision, i);
+ value_type inv = boost::math::gamma_p_inv(Real(data[i][0]), Real(data[i][5]));
+ BOOST_CHECK_CLOSE_EX(Real(data[i][1]), inv, precision, i);
       }
- else if(1 == data[i][5])
- BOOST_CHECK_EQUAL(boost::math::gamma_p_inv(data[i][0], data[i][5]), boost::math::tools::max_value<value_type>());
+ else if(1 == Real(data[i][5]))
+ BOOST_CHECK_EQUAL(boost::math::gamma_p_inv(Real(data[i][0]), Real(data[i][5])), boost::math::tools::max_value<value_type>());
       else
       {
          // not enough bits in our input to get back to x, but we should be in
          // the same ball park:
- value_type inv = boost::math::gamma_p_inv(data[i][0], data[i][5]);
- BOOST_CHECK_CLOSE_EX(data[i][1], inv, 100000, i);
+ value_type inv = boost::math::gamma_p_inv(Real(data[i][0]), Real(data[i][5]));
+ BOOST_CHECK_CLOSE_EX(Real(data[i][1]), inv, 100000, i);
       }
 
- if(data[i][3] == 0)
- BOOST_CHECK_EQUAL(boost::math::gamma_q_inv(data[i][0], data[i][3]), boost::math::tools::max_value<value_type>());
- else if((1 - data[i][3] > 0.001) && (fabs(data[i][3]) > 2 * boost::math::tools::min_value<value_type>()))
+ if(Real(data[i][3]) == 0)
+ BOOST_CHECK_EQUAL(boost::math::gamma_q_inv(Real(data[i][0]), Real(data[i][3])), boost::math::tools::max_value<value_type>());
+ else if((1 - Real(data[i][3]) > 0.001) && (fabs(Real(data[i][3])) > 2 * boost::math::tools::min_value<value_type>()))
       {
- value_type inv = boost::math::gamma_q_inv(data[i][0], data[i][3]);
- BOOST_CHECK_CLOSE_EX(data[i][1], inv, precision, i);
+ value_type inv = boost::math::gamma_q_inv(Real(data[i][0]), Real(data[i][3]));
+ BOOST_CHECK_CLOSE_EX(Real(data[i][1]), inv, precision, i);
       }
- else if(1 == data[i][3])
- BOOST_CHECK_EQUAL(boost::math::gamma_q_inv(data[i][0], data[i][3]), value_type(0));
- else if(fabs(data[i][3]) > 2 * boost::math::tools::min_value<value_type>())
+ else if(1 == Real(data[i][3]))
+ BOOST_CHECK_EQUAL(boost::math::gamma_q_inv(Real(data[i][0]), Real(data[i][3])), value_type(0));
+ else if(fabs(Real(data[i][3])) > 2 * boost::math::tools::min_value<value_type>())
       {
          // not enough bits in our input to get back to x, but we should be in
          // the same ball park:
- value_type inv = boost::math::gamma_q_inv(data[i][0], data[i][3]);
- BOOST_CHECK_CLOSE_EX(data[i][1], inv, 100, i);
+ value_type inv = boost::math::gamma_q_inv(Real(data[i][0]), Real(data[i][3]));
+ BOOST_CHECK_CLOSE_EX(Real(data[i][1]), inv, 100, i);
       }
    }
    std::cout << std::endl;
 }
 
-template <class T>
+template <class Real, class T>
 void do_test_gamma_inv(const T& data, const char* type_name, const char* test_name)
 {
    typedef typename T::value_type row_type;
- typedef typename row_type::value_type value_type;
+ typedef Real value_type;
 
    typedef value_type (*pg)(value_type, value_type);
 #if defined(BOOST_MATH_NO_DEDUCED_FUNCTION_POINTERS)
@@ -132,10 +133,10 @@
    //
    // test gamma_p_inv(T, T) against data:
    //
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func(funcp, 0, 1),
- extract_result(2));
+ bind_func<Real>(funcp, 0, 1),
+ extract_result<Real>(2));
    handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::gamma_p_inv", test_name);
    //
    // test gamma_q_inv(T, T) against data:
@@ -145,10 +146,10 @@
 #else
    funcp = boost::math::gamma_q_inv;
 #endif
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func(funcp, 0, 1),
- extract_result(3));
+ bind_func<Real>(funcp, 0, 1),
+ extract_result<Real>(3));
    handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::gamma_q_inv", test_name);
 #ifdef TEST_OTHER
    if(boost::is_floating_point<value_type>::value)
@@ -157,19 +158,19 @@
       //
       // test gamma_p_inv(T, T) against data:
       //
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
          data,
- bind_func(funcp, 0, 1),
- extract_result(2));
+ bind_func<Real>(funcp, 0, 1),
+ extract_result<Real>(2));
       print_test_result(result, data[result.worst()], result.worst(), type_name, "other::gamma_q");
       //
       // test gamma_q_inv(T, T) against data:
       //
       funcp = other::gamma_q_inv;
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
          data,
- bind_func(funcp, 0, 1),
- extract_result(3));
+ bind_func<Real>(funcp, 0, 1),
+ extract_result<Real>(3));
       print_test_result(result, data[result.worst()], result.worst(), type_name, "other::gamma_q");
    }
 #endif
@@ -190,29 +191,29 @@
    //
 # include "igamma_med_data.ipp"
 
- do_test_gamma_2(igamma_med_data, name, "Running round trip sanity checks on incomplete gamma medium sized values");
+ do_test_gamma_2<T>(igamma_med_data, name, "Running round trip sanity checks on incomplete gamma medium sized values");
 
 # include "igamma_small_data.ipp"
 
- do_test_gamma_2(igamma_small_data, name, "Running round trip sanity checks on incomplete gamma small values");
+ do_test_gamma_2<T>(igamma_small_data, name, "Running round trip sanity checks on incomplete gamma small values");
 
 # include "igamma_big_data.ipp"
 
- do_test_gamma_2(igamma_big_data, name, "Running round trip sanity checks on incomplete gamma large values");
+ do_test_gamma_2<T>(igamma_big_data, name, "Running round trip sanity checks on incomplete gamma large values");
 
 #endif
 
 # include "gamma_inv_data.ipp"
 
- do_test_gamma_inv(gamma_inv_data, name, "incomplete gamma inverse(a, z) medium values");
+ do_test_gamma_inv<T>(gamma_inv_data, name, "incomplete gamma inverse(a, z) medium values");
 
 # include "gamma_inv_big_data.ipp"
 
- do_test_gamma_inv(gamma_inv_big_data, name, "incomplete gamma inverse(a, z) large values");
+ do_test_gamma_inv<T>(gamma_inv_big_data, name, "incomplete gamma inverse(a, z) large values");
 
 # include "gamma_inv_small_data.ipp"
 
- do_test_gamma_inv(gamma_inv_small_data, name, "incomplete gamma inverse(a, z) small values");
+ do_test_gamma_inv<T>(gamma_inv_small_data, name, "incomplete gamma inverse(a, z) small values");
 }
 
 template <class T>

Modified: branches/quickbook-dev/libs/math/test/test_igamma_inva.cpp
==============================================================================
--- branches/quickbook-dev/libs/math/test/test_igamma_inva.cpp (original)
+++ branches/quickbook-dev/libs/math/test/test_igamma_inva.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#include <pch.hpp>
+#include <pch_light.hpp>
 #include "test_igamma_inva.hpp"
 
 #if !defined(TEST_FLOAT) && !defined(TEST_DOUBLE) && !defined(TEST_LDOUBLE) && !defined(TEST_REAL_CONCEPT)

Modified: branches/quickbook-dev/libs/math/test/test_igamma_inva.hpp
==============================================================================
--- branches/quickbook-dev/libs/math/test/test_igamma_inva.hpp (original)
+++ branches/quickbook-dev/libs/math/test/test_igamma_inva.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -7,7 +7,7 @@
 #define BOOST_MATH_OVERFLOW_ERROR_POLICY ignore_error
 
 #include <boost/math/concepts/real_concept.hpp>
-#include <boost/math/special_functions/gamma.hpp>
+#include <boost/math/special_functions/math_fwd.hpp>
 #include <boost/test/test_exec_monitor.hpp>
 #include <boost/test/results_collector.hpp>
 #include <boost/test/unit_test.hpp>
@@ -18,11 +18,11 @@
 #include <boost/type_traits/is_floating_point.hpp>
 #include <boost/array.hpp>
 #include "functor.hpp"
-
+#include "table_type.hpp"
 #include "handle_test_result.hpp"
 
 #ifndef SC_
-#define SC_(x) static_cast<T>(BOOST_JOIN(x, L))
+#define SC_(x) static_cast<typename table_type<T>::type>(BOOST_JOIN(x, L))
 #endif
 
 #define BOOST_CHECK_CLOSE_EX(a, b, prec, i) \
@@ -38,7 +38,7 @@
       }\
    }
 
-template <class T>
+template <class Real, class T>
 void do_test_gamma_2(const T& data, const char* type_name, const char* test_name)
 {
    //
@@ -46,7 +46,7 @@
    //
    using namespace std;
    typedef typename T::value_type row_type;
- typedef typename row_type::value_type value_type;
+ typedef Real value_type;
 
    std::cout << test_name << " with type " << type_name << std::endl;
 
@@ -73,50 +73,50 @@
       // information left in the value we're using as input to the inverse
       // to be able to get back to the original value.
       //
- if(data[i][5] == 0)
- BOOST_CHECK_EQUAL(boost::math::gamma_p_inva(data[i][1], data[i][5]), boost::math::tools::max_value<value_type>());
- else if((1 - data[i][5] > 0.001) && (fabs(data[i][5]) > 2 * boost::math::tools::min_value<value_type>()))
+ if(Real(data[i][5]) == 0)
+ BOOST_CHECK_EQUAL(boost::math::gamma_p_inva(Real(data[i][1]), Real(data[i][5])), boost::math::tools::max_value<value_type>());
+ else if((1 - Real(data[i][5]) > 0.001) && (fabs(Real(data[i][5])) > 2 * boost::math::tools::min_value<value_type>()))
       {
- value_type inv = boost::math::gamma_p_inva(data[i][1], data[i][5]);
- BOOST_CHECK_CLOSE_EX(data[i][0], inv, precision, i);
+ value_type inv = boost::math::gamma_p_inva(Real(data[i][1]), Real(data[i][5]));
+ BOOST_CHECK_CLOSE_EX(Real(data[i][0]), inv, precision, i);
       }
- else if(1 == data[i][5])
- BOOST_CHECK_EQUAL(boost::math::gamma_p_inva(data[i][1], data[i][5]), boost::math::tools::min_value<value_type>());
- else if(data[i][5] > 2 * boost::math::tools::min_value<value_type>())
+ else if(1 == Real(data[i][5]))
+ BOOST_CHECK_EQUAL(boost::math::gamma_p_inva(Real(data[i][1]), Real(data[i][5])), boost::math::tools::min_value<value_type>());
+ else if(Real(data[i][5]) > 2 * boost::math::tools::min_value<value_type>())
       {
          // not enough bits in our input to get back to x, but we should be in
          // the same ball park:
- value_type inv = boost::math::gamma_p_inva(data[i][1], data[i][5]);
- BOOST_CHECK_CLOSE_EX(data[i][0], inv, 100, i);
+ value_type inv = boost::math::gamma_p_inva(Real(data[i][1]), Real(data[i][5]));
+ BOOST_CHECK_CLOSE_EX(Real(data[i][0]), inv, 100, i);
       }
 
- if(data[i][3] == 0)
- BOOST_CHECK_EQUAL(boost::math::gamma_q_inva(data[i][1], data[i][3]), boost::math::tools::min_value<value_type>());
- else if((1 - data[i][3] > 0.001)
- && (fabs(data[i][3]) > 2 * boost::math::tools::min_value<value_type>())
- && (fabs(data[i][3]) > 2 * boost::math::tools::min_value<double>()))
+ if(Real(data[i][3]) == 0)
+ BOOST_CHECK_EQUAL(boost::math::gamma_q_inva(Real(data[i][1]), Real(data[i][3])), boost::math::tools::min_value<value_type>());
+ else if((1 - Real(data[i][3]) > 0.001)
+ && (fabs(Real(data[i][3])) > 2 * boost::math::tools::min_value<value_type>())
+ && (fabs(Real(data[i][3])) > 2 * boost::math::tools::min_value<double>()))
       {
- value_type inv = boost::math::gamma_q_inva(data[i][1], data[i][3]);
- BOOST_CHECK_CLOSE_EX(data[i][0], inv, precision, i);
+ value_type inv = boost::math::gamma_q_inva(Real(data[i][1]), Real(data[i][3]));
+ BOOST_CHECK_CLOSE_EX(Real(data[i][0]), inv, precision, i);
       }
- else if(1 == data[i][3])
- BOOST_CHECK_EQUAL(boost::math::gamma_q_inva(data[i][1], data[i][3]), boost::math::tools::max_value<value_type>());
- else if(data[i][3] > 2 * boost::math::tools::min_value<value_type>())
+ else if(1 == Real(data[i][3]))
+ BOOST_CHECK_EQUAL(boost::math::gamma_q_inva(Real(data[i][1]), Real(data[i][3])), boost::math::tools::max_value<value_type>());
+ else if(Real(data[i][3]) > 2 * boost::math::tools::min_value<value_type>())
       {
          // not enough bits in our input to get back to x, but we should be in
          // the same ball park:
- value_type inv = boost::math::gamma_q_inva(data[i][1], data[i][3]);
- BOOST_CHECK_CLOSE_EX(data[i][0], inv, 100, i);
+ value_type inv = boost::math::gamma_q_inva(Real(data[i][1]), Real(data[i][3]));
+ BOOST_CHECK_CLOSE_EX(Real(data[i][0]), inv, 100, i);
       }
    }
    std::cout << std::endl;
 }
 
-template <class T>
+template <class Real, class T>
 void do_test_gamma_inva(const T& data, const char* type_name, const char* test_name)
 {
    typedef typename T::value_type row_type;
- typedef typename row_type::value_type value_type;
+ typedef Real value_type;
 
    typedef value_type (*pg)(value_type, value_type);
 #if defined(BOOST_MATH_NO_DEDUCED_FUNCTION_POINTERS)
@@ -133,10 +133,10 @@
    //
    // test gamma_p_inva(T, T) against data:
    //
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func(funcp, 0, 1),
- extract_result(2));
+ bind_func<Real>(funcp, 0, 1),
+ extract_result<Real>(2));
    handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::gamma_p_inva", test_name);
    //
    // test gamma_q_inva(T, T) against data:
@@ -146,10 +146,10 @@
 #else
    funcp = boost::math::gamma_q_inva;
 #endif
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func(funcp, 0, 1),
- extract_result(3));
+ bind_func<Real>(funcp, 0, 1),
+ extract_result<Real>(3));
    handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::gamma_q_inva", test_name);
 }
 
@@ -168,20 +168,20 @@
    //
 # include "igamma_med_data.ipp"
 
- do_test_gamma_2(igamma_med_data, name, "Running round trip sanity checks on incomplete gamma medium sized values");
+ do_test_gamma_2<T>(igamma_med_data, name, "Running round trip sanity checks on incomplete gamma medium sized values");
 
 # include "igamma_small_data.ipp"
 
- do_test_gamma_2(igamma_small_data, name, "Running round trip sanity checks on incomplete gamma small values");
+ do_test_gamma_2<T>(igamma_small_data, name, "Running round trip sanity checks on incomplete gamma small values");
 
 # include "igamma_big_data.ipp"
 
- do_test_gamma_2(igamma_big_data, name, "Running round trip sanity checks on incomplete gamma large values");
+ do_test_gamma_2<T>(igamma_big_data, name, "Running round trip sanity checks on incomplete gamma large values");
 
 #endif
 
 # include "igamma_inva_data.ipp"
 
- do_test_gamma_inva(igamma_inva_data, name, "Incomplete gamma inverses.");
+ do_test_gamma_inva<T>(igamma_inva_data, name, "Incomplete gamma inverses.");
 }
 

Modified: branches/quickbook-dev/libs/math/test/test_instances.hpp
==============================================================================
--- branches/quickbook-dev/libs/math/test/test_instances.hpp (original)
+++ branches/quickbook-dev/libs/math/test/test_instances.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -6,8 +6,363 @@
 
 namespace boost{ namespace math{
 
-template tools::promote_args<BOOST_MATH_TEST_TYPE>::type zeta(BOOST_MATH_TEST_TYPE s, const policies::policy<>&);
+ typedef policies::policy<policies::overflow_error<policies::throw_on_error> > overflow_policy;
 
-template tools::promote_args<BOOST_MATH_TEST_TYPE>::type zeta(BOOST_MATH_TEST_TYPE s);
+ // Beta functions.
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ beta(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b); // Beta function (2 arguments).
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ beta(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, policies::policy<>); // Beta function (3 arguments).
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ beta(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE); // Beta function (3 arguments).
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ beta(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE x, const policies::policy<>& pol); // Beta function (3 arguments).
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ betac(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE x);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ betac(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE x, const policies::policy<>& pol);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ibeta(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE x); // Incomplete beta function.
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ibeta(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE x, const policies::policy<>& pol); // Incomplete beta function.
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ibetac(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE x); // Incomplete beta complement function.
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ibetac(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE x, const policies::policy<>& pol); // Incomplete beta complement function.
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ibeta_inv(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE p, BOOST_MATH_TEST_TYPE* py);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ibeta_inv(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE p, BOOST_MATH_TEST_TYPE* py, const policies::policy<>& pol);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ibeta_inv(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE p); // Incomplete beta inverse function.
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ibeta_inv(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE p, const policies::policy<>&); // Incomplete beta inverse function.
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ibeta_inva(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE p); // Incomplete beta inverse function.
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ibeta_inva(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE p, const policies::policy<>&); // Incomplete beta inverse function.
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ibeta_invb(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE p); // Incomplete beta inverse function.
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ibeta_invb(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE p, const policies::policy<>&); // Incomplete beta inverse function.
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ibetac_inv(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE q, BOOST_MATH_TEST_TYPE* py);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ibetac_inv(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE q, BOOST_MATH_TEST_TYPE* py, const policies::policy<>& pol);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ibetac_inv(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE q); // Incomplete beta complement inverse function.
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ibetac_inv(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE q, const policies::policy<>&); // Incomplete beta complement inverse function.
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ibetac_inva(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE q); // Incomplete beta complement inverse function.
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ibetac_inva(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE q, const policies::policy<>&); // Incomplete beta complement inverse function.
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ibetac_invb(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE q); // Incomplete beta complement inverse function.
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ibetac_invb(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE q, const policies::policy<>&); // Incomplete beta complement inverse function.
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ibeta_derivative(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE x); // derivative of incomplete beta
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ibeta_derivative(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, BOOST_MATH_TEST_TYPE x, const policies::policy<>& pol); // derivative of incomplete beta
+
+ // erf & erfc error functions.
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type erf(BOOST_MATH_TEST_TYPE z);
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type erf(BOOST_MATH_TEST_TYPE z, const policies::policy<>&);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type erfc(BOOST_MATH_TEST_TYPE z);
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type erfc(BOOST_MATH_TEST_TYPE z, const policies::policy<>&);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type erf_inv(BOOST_MATH_TEST_TYPE z);
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type erf_inv(BOOST_MATH_TEST_TYPE z, const policies::policy<>& pol);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type erfc_inv(BOOST_MATH_TEST_TYPE z);
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type erfc_inv(BOOST_MATH_TEST_TYPE z, const policies::policy<>& pol);
+
+ // Polynomials:
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ legendre_next(unsigned l, BOOST_MATH_TEST_TYPE x, BOOST_MATH_TEST_TYPE Pl, BOOST_MATH_TEST_TYPE Plm1);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type
+ legendre_p(int l, BOOST_MATH_TEST_TYPE x);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type
+ legendre_p(int l, BOOST_MATH_TEST_TYPE x, const policies::policy<>& pol);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type
+ legendre_q(unsigned l, BOOST_MATH_TEST_TYPE x);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type
+ legendre_q(unsigned l, BOOST_MATH_TEST_TYPE x, const policies::policy<>& pol);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ legendre_next(unsigned l, unsigned m, BOOST_MATH_TEST_TYPE x, BOOST_MATH_TEST_TYPE Pl, BOOST_MATH_TEST_TYPE Plm1);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type
+ legendre_p(int l, int m, BOOST_MATH_TEST_TYPE x);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type
+ legendre_p(int l, int m, BOOST_MATH_TEST_TYPE x, const policies::policy<>& pol);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ laguerre_next(unsigned n, BOOST_MATH_TEST_TYPE x, BOOST_MATH_TEST_TYPE Ln, BOOST_MATH_TEST_TYPE Lnm1);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ laguerre_next(unsigned n, unsigned l, BOOST_MATH_TEST_TYPE x, BOOST_MATH_TEST_TYPE Pl, BOOST_MATH_TEST_TYPE Plm1);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type
+ laguerre(unsigned n, BOOST_MATH_TEST_TYPE x);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type
+ laguerre(unsigned n, unsigned m, BOOST_MATH_TEST_TYPE x, const policies::policy<>& pol);
+
+ template laguerre_result<int, BOOST_MATH_TEST_TYPE>::type
+ laguerre(unsigned n, int m, BOOST_MATH_TEST_TYPE x);
+
+ template laguerre_result<unsigned, BOOST_MATH_TEST_TYPE>::type
+ laguerre(unsigned n, unsigned m, BOOST_MATH_TEST_TYPE x);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type
+ hermite(unsigned n, BOOST_MATH_TEST_TYPE x);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type
+ hermite(unsigned n, BOOST_MATH_TEST_TYPE x, const policies::policy<>& pol);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ hermite_next(unsigned n, BOOST_MATH_TEST_TYPE x, BOOST_MATH_TEST_TYPE Hn, BOOST_MATH_TEST_TYPE Hnm1);
+
+ template std::complex<BOOST_MATH_TEST_TYPE>
+ spherical_harmonic(unsigned n, int m, BOOST_MATH_TEST_TYPE theta, BOOST_MATH_TEST_TYPE phi);
+
+ template std::complex<BOOST_MATH_TEST_TYPE>
+ spherical_harmonic(unsigned n, int m, BOOST_MATH_TEST_TYPE theta, BOOST_MATH_TEST_TYPE phi, const policies::policy<>& pol);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ spherical_harmonic_r(unsigned n, int m, BOOST_MATH_TEST_TYPE theta, BOOST_MATH_TEST_TYPE phi);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ spherical_harmonic_r(unsigned n, int m, BOOST_MATH_TEST_TYPE theta, BOOST_MATH_TEST_TYPE phi, const policies::policy<>& pol);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ spherical_harmonic_i(unsigned n, int m, BOOST_MATH_TEST_TYPE theta, BOOST_MATH_TEST_TYPE phi);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ spherical_harmonic_i(unsigned n, int m, BOOST_MATH_TEST_TYPE theta, BOOST_MATH_TEST_TYPE phi, const policies::policy<>& pol);
+
+ // Elliptic integrals:
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ellint_rf(BOOST_MATH_TEST_TYPE x, BOOST_MATH_TEST_TYPE y, BOOST_MATH_TEST_TYPE z);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ellint_rf(BOOST_MATH_TEST_TYPE x, BOOST_MATH_TEST_TYPE y, BOOST_MATH_TEST_TYPE z, const policies::policy<>& pol);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ellint_rd(BOOST_MATH_TEST_TYPE x, BOOST_MATH_TEST_TYPE y, BOOST_MATH_TEST_TYPE z);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ellint_rd(BOOST_MATH_TEST_TYPE x, BOOST_MATH_TEST_TYPE y, BOOST_MATH_TEST_TYPE z, const policies::policy<>& pol);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ellint_rc(BOOST_MATH_TEST_TYPE x, BOOST_MATH_TEST_TYPE y);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ellint_rc(BOOST_MATH_TEST_TYPE x, BOOST_MATH_TEST_TYPE y, const policies::policy<>& pol);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ellint_rj(BOOST_MATH_TEST_TYPE x, BOOST_MATH_TEST_TYPE y, BOOST_MATH_TEST_TYPE z, BOOST_MATH_TEST_TYPE p);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ ellint_rj(BOOST_MATH_TEST_TYPE x, BOOST_MATH_TEST_TYPE y, BOOST_MATH_TEST_TYPE z, BOOST_MATH_TEST_TYPE p, const policies::policy<>& pol);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type ellint_2(BOOST_MATH_TEST_TYPE k);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type ellint_2(BOOST_MATH_TEST_TYPE k, BOOST_MATH_TEST_TYPE phi);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type ellint_2(BOOST_MATH_TEST_TYPE k, BOOST_MATH_TEST_TYPE phi, const policies::policy<>& pol);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type ellint_1(BOOST_MATH_TEST_TYPE k);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type ellint_1(BOOST_MATH_TEST_TYPE k, BOOST_MATH_TEST_TYPE phi);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type ellint_1(BOOST_MATH_TEST_TYPE k, BOOST_MATH_TEST_TYPE phi, const policies::policy<>& pol);
+
+ template detail::ellint_3_result<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type ellint_3(BOOST_MATH_TEST_TYPE k, BOOST_MATH_TEST_TYPE v, BOOST_MATH_TEST_TYPE phi);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type ellint_3(BOOST_MATH_TEST_TYPE k, BOOST_MATH_TEST_TYPE v, BOOST_MATH_TEST_TYPE phi, const policies::policy<>& pol);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type ellint_3(BOOST_MATH_TEST_TYPE k, BOOST_MATH_TEST_TYPE v);
+
+ // Gamma functions.
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type tgamma(BOOST_MATH_TEST_TYPE z);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type tgamma1pm1(BOOST_MATH_TEST_TYPE z);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type tgamma1pm1(BOOST_MATH_TEST_TYPE z, const policies::policy<>& pol);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type tgamma(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE z);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type tgamma(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE z, const policies::policy<>& pol);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type lgamma(BOOST_MATH_TEST_TYPE z, int* sign);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type lgamma(BOOST_MATH_TEST_TYPE z, int* sign, const policies::policy<>& pol);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type lgamma(BOOST_MATH_TEST_TYPE x);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type lgamma(BOOST_MATH_TEST_TYPE x, const policies::policy<>& pol);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type tgamma_lower(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE z);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type tgamma_lower(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE z, const policies::policy<>&);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type gamma_q(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE z);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type gamma_q(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE z, const policies::policy<>&);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type gamma_p(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE z);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type gamma_p(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE z, const policies::policy<>&);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type tgamma_delta_ratio(BOOST_MATH_TEST_TYPE z, BOOST_MATH_TEST_TYPE delta);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type tgamma_delta_ratio(BOOST_MATH_TEST_TYPE z, BOOST_MATH_TEST_TYPE delta, const policies::policy<>&);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type tgamma_ratio(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type tgamma_ratio(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE b, const policies::policy<>&);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type gamma_p_derivative(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE x);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type gamma_p_derivative(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE x, const policies::policy<>&);
+
+ // gamma inverse.
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type gamma_p_inv(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE p);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type gamma_p_inva(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE p, const policies::policy<>&);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type gamma_p_inva(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE p);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type gamma_p_inv(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE p, const policies::policy<>&);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type gamma_q_inv(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE q);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type gamma_q_inv(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE q, const policies::policy<>&);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type gamma_q_inva(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE q);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type gamma_q_inva(BOOST_MATH_TEST_TYPE a, BOOST_MATH_TEST_TYPE q, const policies::policy<>&);
+
+ // digamma:
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type digamma(BOOST_MATH_TEST_TYPE x);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type digamma(BOOST_MATH_TEST_TYPE x, const policies::policy<>&);
+
+ // Hypotenuse function sqrt(x ^ 2 + y ^ 2).
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ hypot(BOOST_MATH_TEST_TYPE x, BOOST_MATH_TEST_TYPE y);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ hypot(BOOST_MATH_TEST_TYPE x, BOOST_MATH_TEST_TYPE y, const policies::policy<>&);
+
+ // cbrt - cube root.
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type cbrt(BOOST_MATH_TEST_TYPE z);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type cbrt(BOOST_MATH_TEST_TYPE z, const policies::policy<>&);
+
+ // log1p is log(x + 1)
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type log1p(BOOST_MATH_TEST_TYPE);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type log1p(BOOST_MATH_TEST_TYPE, const policies::policy<>&);
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type log1p<BOOST_MATH_TEST_TYPE, overflow_policy>(BOOST_MATH_TEST_TYPE, const overflow_policy&);
+
+ // log1pmx is log(x + 1) - x
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type log1pmx(BOOST_MATH_TEST_TYPE);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type log1pmx(BOOST_MATH_TEST_TYPE, const policies::policy<>&);
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type log1pmx(BOOST_MATH_TEST_TYPE, const overflow_policy&);
+
+ // Exp (x) minus 1 functions.
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type expm1(BOOST_MATH_TEST_TYPE);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type expm1(BOOST_MATH_TEST_TYPE, const policies::policy<>&);
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type expm1(BOOST_MATH_TEST_TYPE, const overflow_policy&);
+
+ // Power - 1
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ powm1(const BOOST_MATH_TEST_TYPE a, const BOOST_MATH_TEST_TYPE z);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE>::type
+ powm1(const BOOST_MATH_TEST_TYPE a, const BOOST_MATH_TEST_TYPE z, const policies::policy<>&);
+
+ // sqrt(1+x) - 1
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type sqrt1pm1(const BOOST_MATH_TEST_TYPE& val);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type sqrt1pm1(const BOOST_MATH_TEST_TYPE& val, const policies::policy<>&);
+
+ // Bessel functions:
+ template detail::bessel_traits<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, policies::policy<> >::result_type cyl_bessel_j(BOOST_MATH_TEST_TYPE v, BOOST_MATH_TEST_TYPE x, const policies::policy<> & pol);
+
+ template detail::bessel_traits<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, policies::policy<> >::result_type cyl_bessel_j(BOOST_MATH_TEST_TYPE v, BOOST_MATH_TEST_TYPE x);
+ template detail::bessel_traits<int, BOOST_MATH_TEST_TYPE, policies::policy<> >::result_type cyl_bessel_j(int v, BOOST_MATH_TEST_TYPE x);
+
+ template detail::bessel_traits<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, policies::policy<> >::result_type sph_bessel(unsigned v, BOOST_MATH_TEST_TYPE x, const policies::policy<> & pol);
+
+ template detail::bessel_traits<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, policies::policy<> >::result_type sph_bessel(unsigned v, BOOST_MATH_TEST_TYPE x);
+
+ template detail::bessel_traits<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, policies::policy<> >::result_type cyl_bessel_i(BOOST_MATH_TEST_TYPE v, BOOST_MATH_TEST_TYPE x, const policies::policy<> & pol);
+
+ template detail::bessel_traits<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, policies::policy<> >::result_type cyl_bessel_i(BOOST_MATH_TEST_TYPE v, BOOST_MATH_TEST_TYPE x);
+ template detail::bessel_traits<int, BOOST_MATH_TEST_TYPE, policies::policy<> >::result_type cyl_bessel_i(int v, BOOST_MATH_TEST_TYPE x);
+
+ template detail::bessel_traits<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, policies::policy<> >::result_type cyl_bessel_k(BOOST_MATH_TEST_TYPE v, BOOST_MATH_TEST_TYPE x, const policies::policy<> & pol);
+
+ template detail::bessel_traits<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, policies::policy<> >::result_type cyl_bessel_k(BOOST_MATH_TEST_TYPE v, BOOST_MATH_TEST_TYPE x);
+ template detail::bessel_traits<int, BOOST_MATH_TEST_TYPE, policies::policy<> >::result_type cyl_bessel_k(int v, BOOST_MATH_TEST_TYPE x);
+
+ template detail::bessel_traits<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, policies::policy<> >::result_type cyl_neumann(BOOST_MATH_TEST_TYPE v, BOOST_MATH_TEST_TYPE x, const policies::policy<> & pol);
+
+ template detail::bessel_traits<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, policies::policy<> >::result_type cyl_neumann(BOOST_MATH_TEST_TYPE v, BOOST_MATH_TEST_TYPE x);
+ template detail::bessel_traits<int, BOOST_MATH_TEST_TYPE, policies::policy<> >::result_type cyl_neumann(int v, BOOST_MATH_TEST_TYPE x);
+
+ template detail::bessel_traits<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, policies::policy<> >::result_type sph_neumann(unsigned v, BOOST_MATH_TEST_TYPE x, const policies::policy<> & pol);
+
+ template detail::bessel_traits<BOOST_MATH_TEST_TYPE, BOOST_MATH_TEST_TYPE, policies::policy<> >::result_type sph_neumann(unsigned v, BOOST_MATH_TEST_TYPE x);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type expint(unsigned n, BOOST_MATH_TEST_TYPE z, const policies::policy<> &);
+
+ template detail::expint_result<int, BOOST_MATH_TEST_TYPE>::type expint(int const z, BOOST_MATH_TEST_TYPE const u);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type expint(BOOST_MATH_TEST_TYPE z);
+
+ // Zeta:
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type zeta(BOOST_MATH_TEST_TYPE s, const policies::policy<>&);
+
+ template tools::promote_args<BOOST_MATH_TEST_TYPE>::type zeta(BOOST_MATH_TEST_TYPE s);
 
 }} // namespaces

Modified: branches/quickbook-dev/libs/math/test/test_inv_hyp.cpp
==============================================================================
--- branches/quickbook-dev/libs/math/test/test_inv_hyp.cpp (original)
+++ branches/quickbook-dev/libs/math/test/test_inv_hyp.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -19,6 +19,7 @@
 #include "functor.hpp"
 
 #include "handle_test_result.hpp"
+#include "table_type.hpp"
 
 //
 // DESCRIPTION:
@@ -88,7 +89,7 @@
       << BOOST_STDLIB << ", " << BOOST_PLATFORM << std::endl;
 }
 
-template <class T>
+template <class Real, class T>
 void do_test_asinh(const T& data, const char* type_name, const char* test_name)
 {
    //
@@ -96,7 +97,7 @@
    //
    using namespace std;
    typedef typename T::value_type row_type;
- typedef typename row_type::value_type value_type;
+ typedef Real value_type;
 
    std::cout << test_name << " with type " << type_name << std::endl;
 
@@ -111,15 +112,15 @@
    //
    // test asinh against data:
    //
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func(funcp, 0),
- extract_result(1));
+ bind_func<Real>(funcp, 0),
+ extract_result<Real>(1));
    handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::asinh", test_name);
    std::cout << std::endl;
 }
 
-template <class T>
+template <class Real, class T>
 void do_test_acosh(const T& data, const char* type_name, const char* test_name)
 {
    //
@@ -127,7 +128,7 @@
    //
    using namespace std;
    typedef typename T::value_type row_type;
- typedef typename row_type::value_type value_type;
+ typedef Real value_type;
 
    std::cout << test_name << " with type " << type_name << std::endl;
 
@@ -142,15 +143,15 @@
    //
    // test acosh against data:
    //
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func(funcp, 0),
- extract_result(1));
+ bind_func<Real>(funcp, 0),
+ extract_result<Real>(1));
    handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::acosh", test_name);
    std::cout << std::endl;
 }
 
-template <class T>
+template <class Real, class T>
 void do_test_atanh(const T& data, const char* type_name, const char* test_name)
 {
    //
@@ -158,7 +159,7 @@
    //
    using namespace std;
    typedef typename T::value_type row_type;
- typedef typename row_type::value_type value_type;
+ typedef Real value_type;
 
    std::cout << test_name << " with type " << type_name << std::endl;
 
@@ -173,10 +174,10 @@
    //
    // test atanh against data:
    //
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func(funcp, 0),
- extract_result(1));
+ bind_func<Real>(funcp, 0),
+ extract_result<Real>(1));
    handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::atanh", test_name);
    std::cout << std::endl;
 }
@@ -185,8 +186,8 @@
 void test_inv_hyperbolics(T, const char* name)
 {
     // function values calculated on http://functions.wolfram.com/
- #define SC_(x) static_cast<T>(BOOST_JOIN(x, L))
- static const boost::array<boost::array<T, 2>, 16> data1 = {{
+ #define SC_(x) static_cast<typename table_type<T>::type>(BOOST_JOIN(x, L))
+ static const boost::array<boost::array<typename table_type<T>::type, 2>, 16> data1 = {{
         {{ SC_(1), SC_(0) }},
         {{ SC_(18014398509481985.0)/SC_(18014398509481984.0), (SC_(18014398509481985.0)/SC_(18014398509481984.0) == 1 ? 0 : SC_(1.05367121277235078980001569764860129317209081216314559121044e-8)) }},
         {{ SC_(140737488355329.0)/SC_(140737488355328.0), (SC_(140737488355329.0)/SC_(140737488355328.0) == 1 ? 0 : SC_(1.19209289550781179413921062141751258430803882725295121500042e-7)) }},
@@ -210,12 +211,12 @@
    // The actual test data is rather verbose, so it's in a separate file
    //
 #include "asinh_data.ipp"
- do_test_asinh(asinh_data, name, "asinh");
+ do_test_asinh<T>(asinh_data, name, "asinh");
 #include "acosh_data.ipp"
- do_test_acosh(data1, name, "acosh: Mathworld Data");
- do_test_acosh(acosh_data, name, "acosh");
+ do_test_acosh<T>(data1, name, "acosh: Mathworld Data");
+ do_test_acosh<T>(acosh_data, name, "acosh");
 #include "atanh_data.ipp"
- do_test_atanh(atanh_data, name, "atanh");
+ do_test_atanh<T>(atanh_data, name, "atanh");
 }
 
 extern "C" double zetac(double);

Modified: branches/quickbook-dev/libs/math/test/test_laguerre.cpp
==============================================================================
--- branches/quickbook-dev/libs/math/test/test_laguerre.cpp (original)
+++ branches/quickbook-dev/libs/math/test/test_laguerre.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#include <pch.hpp>
+#include <pch_light.hpp>
 #include "test_laguerre.hpp"
 
 //

Modified: branches/quickbook-dev/libs/math/test/test_laguerre.hpp
==============================================================================
--- branches/quickbook-dev/libs/math/test/test_laguerre.hpp (original)
+++ branches/quickbook-dev/libs/math/test/test_laguerre.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -7,23 +7,24 @@
 #include <boost/math/concepts/real_concept.hpp>
 #include <boost/test/test_exec_monitor.hpp>
 #include <boost/test/floating_point_comparison.hpp>
-#include <boost/math/special_functions/laguerre.hpp>
+#include <boost/math/special_functions/math_fwd.hpp>
 #include <boost/math/constants/constants.hpp>
 #include <boost/array.hpp>
 #include "functor.hpp"
 
 #include "handle_test_result.hpp"
 #include "test_legendre_hooks.hpp"
+#include "table_type.hpp"
 
 #ifndef SC_
-#define SC_(x) static_cast<T>(BOOST_JOIN(x, L))
+#define SC_(x) static_cast<typename table_type<T>::type>(BOOST_JOIN(x, L))
 #endif
 
-template <class T>
+template <class Real, class T>
 void do_test_laguerre2(const T& data, const char* type_name, const char* test_name)
 {
    typedef typename T::value_type row_type;
- typedef typename row_type::value_type value_type;
+ typedef Real value_type;
 
    typedef value_type (*pg)(unsigned, value_type);
 #if defined(BOOST_MATH_NO_DEDUCED_FUNCTION_POINTERS)
@@ -40,20 +41,20 @@
    //
    // test laguerre against data:
    //
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func_int1(funcp, 0, 1),
- extract_result(2));
+ bind_func_int1<Real>(funcp, 0, 1),
+ extract_result<Real>(2));
    handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::laguerre(n, x)", test_name);
 
    std::cout << std::endl;
 }
 
-template <class T>
+template <class Real, class T>
 void do_test_laguerre3(const T& data, const char* type_name, const char* test_name)
 {
    typedef typename T::value_type row_type;
- typedef typename row_type::value_type value_type;
+ typedef Real value_type;
 
    typedef value_type (*pg)(unsigned, unsigned, value_type);
 #if defined(BOOST_MATH_NO_DEDUCED_FUNCTION_POINTERS)
@@ -70,10 +71,10 @@
    //
    // test laguerre against data:
    //
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func_int2(funcp, 0, 1, 2),
- extract_result(3));
+ bind_func_int2<Real>(funcp, 0, 1, 2),
+ extract_result<Real>(3));
    handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::laguerre(n, m, x)", test_name);
    std::cout << std::endl;
 }
@@ -89,11 +90,11 @@
    //
 # include "laguerre2.ipp"
 
- do_test_laguerre2(laguerre2, name, "Laguerre Polynomials");
+ do_test_laguerre2<T>(laguerre2, name, "Laguerre Polynomials");
 
 # include "laguerre3.ipp"
 
- do_test_laguerre3(laguerre3, name, "Associated Laguerre Polynomials");
+ do_test_laguerre3<T>(laguerre3, name, "Associated Laguerre Polynomials");
 }
 
 template <class T>

Modified: branches/quickbook-dev/libs/math/test/test_legendre.cpp
==============================================================================
--- branches/quickbook-dev/libs/math/test/test_legendre.cpp (original)
+++ branches/quickbook-dev/libs/math/test/test_legendre.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#include <pch.hpp>
+#include <pch_light.hpp>
 #include "test_legendre.hpp"
 
 //

Modified: branches/quickbook-dev/libs/math/test/test_legendre.hpp
==============================================================================
--- branches/quickbook-dev/libs/math/test/test_legendre.hpp (original)
+++ branches/quickbook-dev/libs/math/test/test_legendre.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -11,23 +11,24 @@
 #include <boost/math/concepts/real_concept.hpp>
 #include <boost/test/test_exec_monitor.hpp>
 #include <boost/test/floating_point_comparison.hpp>
-#include <boost/math/special_functions/legendre.hpp>
+#include <boost/math/special_functions/math_fwd.hpp>
 #include <boost/math/constants/constants.hpp>
 #include <boost/array.hpp>
 #include "functor.hpp"
 
 #include "handle_test_result.hpp"
 #include "test_legendre_hooks.hpp"
+#include "table_type.hpp"
 
 #ifndef SC_
-#define SC_(x) static_cast<T>(BOOST_JOIN(x, L))
+#define SC_(x) static_cast<typename table_type<T>::type>(BOOST_JOIN(x, L))
 #endif
 
-template <class T>
+template <class Real, class T>
 void do_test_legendre_p(const T& data, const char* type_name, const char* test_name)
 {
    typedef typename T::value_type row_type;
- typedef typename row_type::value_type value_type;
+ typedef Real value_type;
 
    typedef value_type (*pg)(int, value_type);
 #if defined(BOOST_MATH_NO_DEDUCED_FUNCTION_POINTERS)
@@ -44,18 +45,18 @@
    //
    // test legendre_p against data:
    //
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func_int1(funcp, 0, 1),
- extract_result(2));
+ bind_func_int1<Real>(funcp, 0, 1),
+ extract_result<Real>(2));
    handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::legendre_p", test_name);
 #ifdef TEST_OTHER
    if(::boost::is_floating_point<value_type>::value){
       funcp = other::legendre_p;
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func_int1(funcp, 0, 1),
- extract_result(2));
+ bind_func_int1<Real>(funcp, 0, 1),
+ extract_result<Real>(2));
       print_test_result(result, data[result.worst()], result.worst(), type_name, "other::legendre_p");
    }
 #endif
@@ -70,18 +71,18 @@
    //
    // test legendre_q against data:
    //
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func_int1(funcp2, 0, 1),
- extract_result(3));
+ bind_func_int1<Real>(funcp2, 0, 1),
+ extract_result<Real>(3));
    handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::legendre_q", test_name);
 #ifdef TEST_OTHER
    if(::boost::is_floating_point<value_type>::value){
       funcp = other::legendre_q;
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func_int1(funcp2, 0, 1),
- extract_result(3));
+ bind_func_int1<Real>(funcp2, 0, 1),
+ extract_result<Real>(3));
       print_test_result(result, data[result.worst()], result.worst(), type_name, "other::legendre_q");
    }
 #endif
@@ -90,11 +91,11 @@
    std::cout << std::endl;
 }
 
-template <class T>
+template <class Real, class T>
 void do_test_assoc_legendre_p(const T& data, const char* type_name, const char* test_name)
 {
    typedef typename T::value_type row_type;
- typedef typename row_type::value_type value_type;
+ typedef Real value_type;
 
    typedef value_type (*pg)(int, int, value_type);
 #if defined(BOOST_MATH_NO_DEDUCED_FUNCTION_POINTERS)
@@ -111,10 +112,10 @@
    //
    // test legendre_p against data:
    //
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func_int2(funcp, 0, 1, 2),
- extract_result(3));
+ bind_func_int2<Real>(funcp, 0, 1, 2),
+ extract_result<Real>(3));
    handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::legendre_p", test_name);
    std::cout << std::endl;
 }
@@ -130,15 +131,15 @@
    //
 # include "legendre_p.ipp"
 
- do_test_legendre_p(legendre_p, name, "Legendre Polynomials: Small Values");
+ do_test_legendre_p<T>(legendre_p, name, "Legendre Polynomials: Small Values");
 
 # include "legendre_p_large.ipp"
 
- do_test_legendre_p(legendre_p_large, name, "Legendre Polynomials: Large Values");
+ do_test_legendre_p<T>(legendre_p_large, name, "Legendre Polynomials: Large Values");
 
 # include "assoc_legendre_p.ipp"
 
- do_test_assoc_legendre_p(assoc_legendre_p, name, "Associated Legendre Polynomials: Small Values");
+ do_test_assoc_legendre_p<T>(assoc_legendre_p, name, "Associated Legendre Polynomials: Small Values");
 
 }
 

Modified: branches/quickbook-dev/libs/math/test/test_long_double_support.cpp
==============================================================================
--- branches/quickbook-dev/libs/math/test/test_long_double_support.cpp (original)
+++ branches/quickbook-dev/libs/math/test/test_long_double_support.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -23,6 +23,7 @@
 #include <boost/array.hpp>
 #include "functor.hpp"
 #include "handle_test_result.hpp"
+#include "table_type.hpp"
 
 #include <boost/math/tools/config.hpp>
 
@@ -61,15 +62,15 @@
    //
    result = boost::math::tools::test(
       data,
- bind_func(proc, 0),
- extract_result(1));
+ bind_func<value_type>(proc, 0),
+ extract_result<value_type>(1));
    handle_test_result(result, data[result.worst()], result.worst(), type_name, function_name, test_name);
    if(inv_proc)
    {
       result = boost::math::tools::test(
          data,
- bind_func(inv_proc, 1),
- extract_result(0));
+ bind_func<value_type>(inv_proc, 1),
+ extract_result<value_type>(0));
       handle_test_result(result, data[result.worst()], result.worst(), type_name, inv_function_name, test_name);
    }
 }

Modified: branches/quickbook-dev/libs/math/test/test_nc_beta.cpp
==============================================================================
--- branches/quickbook-dev/libs/math/test/test_nc_beta.cpp (original)
+++ branches/quickbook-dev/libs/math/test/test_nc_beta.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -34,6 +34,7 @@
 #include "functor.hpp"
 #include "handle_test_result.hpp"
 #include "test_ncbeta_hooks.hpp"
+#include "table_type.hpp"
 
 #include <iostream>
 using std::cout;
@@ -290,38 +291,38 @@
    return cdf(complement(boost::math::non_central_beta_distribution<T>(a, b, nc), x));
 }
 
-template <typename T>
+template <typename Real, typename T>
 void do_test_nc_chi_squared(T& data, const char* type_name, const char* test)
 {
    typedef typename T::value_type row_type;
- typedef typename row_type::value_type value_type;
+ typedef Real value_type;
 
    std::cout << "Testing: " << test << std::endl;
 
    value_type (*fp1)(value_type, value_type, value_type, value_type) = nc_beta_cdf;
    boost::math::tools::test_result<value_type> result;
 
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func(fp1, 0, 1, 2, 3),
- extract_result(4));
+ bind_func<Real>(fp1, 0, 1, 2, 3),
+ extract_result<Real>(4));
    handle_test_result(result, data[result.worst()], result.worst(),
       type_name, "CDF", test);
 
    fp1 = nc_beta_ccdf;
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func(fp1, 0, 1, 2, 3),
- extract_result(5));
+ bind_func<Real>(fp1, 0, 1, 2, 3),
+ extract_result<Real>(5));
    handle_test_result(result, data[result.worst()], result.worst(),
       type_name, "CCDF", test);
 
 #ifdef TEST_OTHER
    fp1 = other::ncbeta_cdf;
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func(fp1, 0, 1, 2, 3),
- extract_result(4));
+ bind_func<Real>(fp1, 0, 1, 2, 3),
+ extract_result<Real>(4));
    handle_test_result(result, data[result.worst()], result.worst(),
       type_name, "Other::CDF", test);
 #endif
@@ -329,11 +330,11 @@
 
 }
 
-template <typename T>
+template <typename Real, typename T>
 void quantile_sanity_check(T& data, const char* type_name, const char* test)
 {
    typedef typename T::value_type row_type;
- typedef typename row_type::value_type value_type;
+ typedef Real value_type;
 
    //
    // Tests with type real_concept take rather too long to run, so
@@ -415,12 +416,12 @@
 {
 #if !defined(TEST_DATA) || (TEST_DATA == 1)
 #include "ncbeta.ipp"
- do_test_nc_chi_squared(ncbeta, type_name, "Non Central Beta, medium parameters");
- quantile_sanity_check(ncbeta, type_name, "Non Central Beta, medium parameters");
+ do_test_nc_chi_squared<T>(ncbeta, type_name, "Non Central Beta, medium parameters");
+ quantile_sanity_check<T>(ncbeta, type_name, "Non Central Beta, medium parameters");
 #endif
 #if !defined(TEST_DATA) || (TEST_DATA == 2)
 #include "ncbeta_big.ipp"
- do_test_nc_chi_squared(ncbeta_big, type_name, "Non Central Beta, large parameters");
+ do_test_nc_chi_squared<T>(ncbeta_big, type_name, "Non Central Beta, large parameters");
     // Takes too long to run:
     // quantile_sanity_check(ncbeta_big, type_name, "Non Central Beta, large parameters");
 #endif

Modified: branches/quickbook-dev/libs/math/test/test_nc_chi_squared.cpp
==============================================================================
--- branches/quickbook-dev/libs/math/test/test_nc_chi_squared.cpp (original)
+++ branches/quickbook-dev/libs/math/test/test_nc_chi_squared.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -31,6 +31,7 @@
 #include "functor.hpp"
 #include "handle_test_result.hpp"
 #include "test_nccs_hooks.hpp"
+#include "table_type.hpp"
 
 #include <iostream>
 using std::cout;
@@ -357,38 +358,38 @@
    return cdf(complement(boost::math::non_central_chi_squared_distribution<T>(df, nc), x));
 }
 
-template <typename T>
+template <typename Real, typename T>
 void do_test_nc_chi_squared(T& data, const char* type_name, const char* test)
 {
    typedef typename T::value_type row_type;
- typedef typename row_type::value_type value_type;
+ typedef Real value_type;
 
    std::cout << "Testing: " << test << std::endl;
 
    value_type (*fp1)(value_type, value_type, value_type) = nccs_cdf;
    boost::math::tools::test_result<value_type> result;
 
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func(fp1, 0, 1, 2),
- extract_result(3));
+ bind_func<Real>(fp1, 0, 1, 2),
+ extract_result<Real>(3));
    handle_test_result(result, data[result.worst()], result.worst(),
       type_name, "CDF", test);
 
    fp1 = nccs_ccdf;
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func(fp1, 0, 1, 2),
- extract_result(4));
+ bind_func<Real>(fp1, 0, 1, 2),
+ extract_result<Real>(4));
    handle_test_result(result, data[result.worst()], result.worst(),
       type_name, "CCDF", test);
 
 #ifdef TEST_OTHER
    fp1 = other::nccs_cdf;
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func(fp1, 0, 1, 2),
- extract_result(3));
+ bind_func<Real>(fp1, 0, 1, 2),
+ extract_result<Real>(3));
    handle_test_result(result, data[result.worst()], result.worst(),
       type_name, "other::CDF", test);
 #endif
@@ -397,11 +398,11 @@
 
 }
 
-template <typename T>
+template <typename Real, typename T>
 void quantile_sanity_check(T& data, const char* type_name, const char* test)
 {
    typedef typename T::value_type row_type;
- typedef typename row_type::value_type value_type;
+ typedef Real value_type;
 
    //
    // Tests with type real_concept take rather too long to run, so
@@ -429,7 +430,7 @@
 
    for(unsigned i = 0; i < data.size(); ++i)
    {
- if(data[i][3] == 0)
+ if(Real(data[i][3]) == 0)
       {
          BOOST_CHECK(0 == quantile(boost::math::non_central_chi_squared_distribution<value_type>(data[i][0], data[i][1]), data[i][3]));
       }
@@ -500,12 +501,12 @@
 void test_accuracy(T, const char* type_name)
 {
 #include "nccs.ipp"
- do_test_nc_chi_squared(nccs, type_name, "Non Central Chi Squared, medium parameters");
- quantile_sanity_check(nccs, type_name, "Non Central Chi Squared, medium parameters");
+ do_test_nc_chi_squared<T>(nccs, type_name, "Non Central Chi Squared, medium parameters");
+ quantile_sanity_check<T>(nccs, type_name, "Non Central Chi Squared, medium parameters");
 
 #include "nccs_big.ipp"
- do_test_nc_chi_squared(nccs_big, type_name, "Non Central Chi Squared, large parameters");
- quantile_sanity_check(nccs_big, type_name, "Non Central Chi Squared, large parameters");
+ do_test_nc_chi_squared<T>(nccs_big, type_name, "Non Central Chi Squared, large parameters");
+ quantile_sanity_check<T>(nccs_big, type_name, "Non Central Chi Squared, large parameters");
 }
 
 int test_main(int, char* [])

Modified: branches/quickbook-dev/libs/math/test/test_nc_t.cpp
==============================================================================
--- branches/quickbook-dev/libs/math/test/test_nc_t.cpp (original)
+++ branches/quickbook-dev/libs/math/test/test_nc_t.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -29,6 +29,7 @@
 
 #include "functor.hpp"
 #include "handle_test_result.hpp"
+#include "table_type.hpp"
 
 #include <iostream>
 using std::cout;
@@ -343,29 +344,29 @@
    return cdf(complement(boost::math::non_central_t_distribution<T>(df, nc), x));
 }
 
-template <typename T>
+template <typename Real, typename T>
 void do_test_nc_t(T& data, const char* type_name, const char* test)
 {
    typedef typename T::value_type row_type;
- typedef typename row_type::value_type value_type;
+ typedef Real value_type;
 
    std::cout << "Testing: " << test << std::endl;
 
    value_type (*fp1)(value_type, value_type, value_type) = nct_cdf;
    boost::math::tools::test_result<value_type> result;
 
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func(fp1, 0, 1, 2),
- extract_result(3));
+ bind_func<Real>(fp1, 0, 1, 2),
+ extract_result<Real>(3));
    handle_test_result(result, data[result.worst()], result.worst(),
       type_name, "CDF", test);
 
    fp1 = nct_ccdf;
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func(fp1, 0, 1, 2),
- extract_result(4));
+ bind_func<Real>(fp1, 0, 1, 2),
+ extract_result<Real>(4));
    handle_test_result(result, data[result.worst()], result.worst(),
       type_name, "CCDF", test);
 
@@ -373,11 +374,11 @@
 
 }
 
-template <typename T>
+template <typename Real, typename T>
 void quantile_sanity_check(T& data, const char* type_name, const char* test)
 {
    typedef typename T::value_type row_type;
- typedef typename row_type::value_type value_type;
+ typedef Real value_type;
 
    //
    // Tests with type real_concept take rather too long to run, so
@@ -478,8 +479,8 @@
 void test_accuracy(T, const char* type_name)
 {
 #include "nct.ipp"
- do_test_nc_t(nct, type_name, "Non Central T");
- quantile_sanity_check(nct, type_name, "Non Central T");
+ do_test_nc_t<T>(nct, type_name, "Non Central T");
+ quantile_sanity_check<T>(nct, type_name, "Non Central T");
 }
 
 int test_main(int, char* [])

Modified: branches/quickbook-dev/libs/math/test/test_negative_binomial.cpp
==============================================================================
--- branches/quickbook-dev/libs/math/test/test_negative_binomial.cpp (original)
+++ branches/quickbook-dev/libs/math/test/test_negative_binomial.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -37,6 +37,7 @@
 
 #include <boost/test/test_exec_monitor.hpp> // for test_main
 #include <boost/test/floating_point_comparison.hpp> // for BOOST_CHECK_CLOSE
+#include "table_type.hpp"
 
 #include <iostream>
 using std::cout;

Modified: branches/quickbook-dev/libs/math/test/test_poisson.cpp
==============================================================================
--- branches/quickbook-dev/libs/math/test/test_poisson.cpp (original)
+++ branches/quickbook-dev/libs/math/test/test_poisson.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -33,6 +33,7 @@
 
 #include <boost/math/special_functions/gamma.hpp> // for (incomplete) gamma.
 // using boost::math::qamma_Q;
+#include "table_type.hpp"
 
 #include <iostream>
    using std::cout;

Modified: branches/quickbook-dev/libs/math/test/test_roots.cpp
==============================================================================
--- branches/quickbook-dev/libs/math/test/test_roots.cpp (original)
+++ branches/quickbook-dev/libs/math/test/test_roots.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -13,6 +13,7 @@
 #include <boost/test/results_collector.hpp>
 #include <boost/test/unit_test.hpp>
 #include <boost/array.hpp>
+#include "table_type.hpp"
 
 #define BOOST_CHECK_CLOSE_EX(a, b, prec, i) \
    {\
@@ -237,12 +238,12 @@
 }
 
 
-template <class T>
+template <class Real, class T>
 void test_inverses(const T& data)
 {
    using namespace std;
    typedef typename T::value_type row_type;
- typedef typename row_type::value_type value_type;
+ typedef Real value_type;
 
    value_type precision = static_cast<value_type>(ldexp(1.0, 1-boost::math::policies::digits<value_type, boost::math::policies::policy<> >()/2)) * 100;
    if(boost::math::policies::digits<value_type, boost::math::policies::policy<> >() < 50)
@@ -258,37 +259,37 @@
       //
       if(data[i][5] == 0)
       {
- BOOST_CHECK_EQUAL(inverse_ibeta_halley(data[i][0], data[i][1], data[i][5]), value_type(0));
- BOOST_CHECK_EQUAL(inverse_ibeta_schroeder(data[i][0], data[i][1], data[i][5]), value_type(0));
- BOOST_CHECK_EQUAL(inverse_ibeta_newton(data[i][0], data[i][1], data[i][5]), value_type(0));
- BOOST_CHECK_EQUAL(inverse_ibeta_bisect(data[i][0], data[i][1], data[i][5]), value_type(0));
+ BOOST_CHECK_EQUAL(inverse_ibeta_halley(Real(data[i][0]), Real(data[i][1]), Real(data[i][5])), value_type(0));
+ BOOST_CHECK_EQUAL(inverse_ibeta_schroeder(Real(data[i][0]), Real(data[i][1]), Real(data[i][5])), value_type(0));
+ BOOST_CHECK_EQUAL(inverse_ibeta_newton(Real(data[i][0]), Real(data[i][1]), Real(data[i][5])), value_type(0));
+ BOOST_CHECK_EQUAL(inverse_ibeta_bisect(Real(data[i][0]), Real(data[i][1]), Real(data[i][5])), value_type(0));
       }
       else if((1 - data[i][5] > 0.001)
          && (fabs(data[i][5]) > 2 * boost::math::tools::min_value<value_type>())
          && (fabs(data[i][5]) > 2 * boost::math::tools::min_value<double>()))
       {
- value_type inv = inverse_ibeta_halley(data[i][0], data[i][1], data[i][5]);
- BOOST_CHECK_CLOSE_EX(data[i][2], inv, precision, i);
- inv = inverse_ibeta_schroeder(data[i][0], data[i][1], data[i][5]);
- BOOST_CHECK_CLOSE_EX(data[i][2], inv, precision, i);
- inv = inverse_ibeta_newton(data[i][0], data[i][1], data[i][5]);
- BOOST_CHECK_CLOSE_EX(data[i][2], inv, precision, i);
- inv = inverse_ibeta_bisect(data[i][0], data[i][1], data[i][5]);
- BOOST_CHECK_CLOSE_EX(data[i][2], inv, precision, i);
+ value_type inv = inverse_ibeta_halley(Real(data[i][0]), Real(data[i][1]), Real(data[i][5]));
+ BOOST_CHECK_CLOSE_EX(Real(data[i][2]), inv, precision, i);
+ inv = inverse_ibeta_schroeder(Real(data[i][0]), Real(data[i][1]), Real(data[i][5]));
+ BOOST_CHECK_CLOSE_EX(Real(data[i][2]), inv, precision, i);
+ inv = inverse_ibeta_newton(Real(data[i][0]), Real(data[i][1]), Real(data[i][5]));
+ BOOST_CHECK_CLOSE_EX(Real(data[i][2]), inv, precision, i);
+ inv = inverse_ibeta_bisect(Real(data[i][0]), Real(data[i][1]), Real(data[i][5]));
+ BOOST_CHECK_CLOSE_EX(Real(data[i][2]), inv, precision, i);
       }
       else if(1 == data[i][5])
       {
- BOOST_CHECK_EQUAL(inverse_ibeta_halley(data[i][0], data[i][1], data[i][5]), value_type(1));
- BOOST_CHECK_EQUAL(inverse_ibeta_schroeder(data[i][0], data[i][1], data[i][5]), value_type(1));
- BOOST_CHECK_EQUAL(inverse_ibeta_newton(data[i][0], data[i][1], data[i][5]), value_type(1));
- BOOST_CHECK_EQUAL(inverse_ibeta_bisect(data[i][0], data[i][1], data[i][5]), value_type(1));
+ BOOST_CHECK_EQUAL(inverse_ibeta_halley(Real(data[i][0]), Real(data[i][1]), Real(data[i][5])), value_type(1));
+ BOOST_CHECK_EQUAL(inverse_ibeta_schroeder(Real(data[i][0]), Real(data[i][1]), Real(data[i][5])), value_type(1));
+ BOOST_CHECK_EQUAL(inverse_ibeta_newton(Real(data[i][0]), Real(data[i][1]), Real(data[i][5])), value_type(1));
+ BOOST_CHECK_EQUAL(inverse_ibeta_bisect(Real(data[i][0]), Real(data[i][1]), Real(data[i][5])), value_type(1));
       }
 
    }
 }
 
 #ifndef SC_
-#define SC_(x) static_cast<T>(BOOST_JOIN(x, L))
+#define SC_(x) static_cast<typename table_type<T>::type>(BOOST_JOIN(x, L))
 #endif
 
 template <class T>
@@ -302,15 +303,15 @@
    //
 # include "ibeta_small_data.ipp"
 
- test_inverses(ibeta_small_data);
+ test_inverses<T>(ibeta_small_data);
 
 # include "ibeta_data.ipp"
 
- test_inverses(ibeta_data);
+ test_inverses<T>(ibeta_data);
 
 # include "ibeta_large_data.ipp"
 
- test_inverses(ibeta_large_data);
+ test_inverses<T>(ibeta_large_data);
 }
 
 int test_main(int, char* [])

Modified: branches/quickbook-dev/libs/math/test/test_spherical_harmonic.cpp
==============================================================================
--- branches/quickbook-dev/libs/math/test/test_spherical_harmonic.cpp (original)
+++ branches/quickbook-dev/libs/math/test/test_spherical_harmonic.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,17 +3,18 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#include <pch.hpp>
+#include <pch_light.hpp>
 
 #include <boost/math/concepts/real_concept.hpp>
 #include <boost/test/test_exec_monitor.hpp>
 #include <boost/test/floating_point_comparison.hpp>
-#include <boost/math/special_functions/spherical_harmonic.hpp>
+#include <boost/math/special_functions/math_fwd.hpp>
 #include <boost/math/constants/constants.hpp>
 #include <boost/array.hpp>
 #include "functor.hpp"
 
 #include "handle_test_result.hpp"
+#include "table_type.hpp"
 
 //
 // DESCRIPTION:
@@ -96,11 +97,11 @@
       << BOOST_STDLIB << ", " << BOOST_PLATFORM << std::endl;
 }
 
-template <class T>
+template <class Real, class T>
 void do_test_spherical_harmonic(const T& data, const char* type_name, const char* test_name)
 {
    typedef typename T::value_type row_type;
- typedef typename row_type::value_type value_type;
+ typedef Real value_type;
 
    typedef value_type (*pg)(unsigned, int, value_type, value_type);
 #if defined(BOOST_MATH_NO_DEDUCED_FUNCTION_POINTERS)
@@ -117,10 +118,10 @@
    //
    // test Spheric Harmonic against data:
    //
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func_int2(funcp, 0, 1, 2, 3),
- extract_result(4));
+ bind_func_int2<Real>(funcp, 0, 1, 2, 3),
+ extract_result<Real>(4));
    handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::spherical_harmonic_r", test_name);
 
 #if defined(BOOST_MATH_NO_DEDUCED_FUNCTION_POINTERS)
@@ -131,20 +132,20 @@
    //
    // test Spheric Harmonic against data:
    //
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func_int2(funcp, 0, 1, 2, 3),
- extract_result(5));
+ bind_func_int2<Real>(funcp, 0, 1, 2, 3),
+ extract_result<Real>(5));
    handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::spherical_harmonic_i", test_name);
 
    std::cout << std::endl;
 }
 
-template <class T>
+template <class Real, class T>
 void test_complex_spherical_harmonic(const T& data, const char* /* name */, boost::mpl::true_ const &)
 {
    typedef typename T::value_type row_type;
- typedef typename row_type::value_type value_type;
+ typedef Real value_type;
 
    for(unsigned i = 0; i < sizeof(data) / sizeof(data[0]); ++i)
    {
@@ -155,24 +156,24 @@
       std::complex<value_type> r = boost::math::spherical_harmonic(
          boost::math::tools::real_cast<unsigned>(data[i][0]),
          boost::math::tools::real_cast<unsigned>(data[i][1]),
- data[i][2],
- data[i][3]);
+ Real(data[i][2]),
+ Real(data[i][3]));
       value_type re = boost::math::spherical_harmonic_r(
          boost::math::tools::real_cast<unsigned>(data[i][0]),
          boost::math::tools::real_cast<unsigned>(data[i][1]),
- data[i][2],
- data[i][3]);
+ Real(data[i][2]),
+ Real(data[i][3]));
       value_type im = boost::math::spherical_harmonic_i(
          boost::math::tools::real_cast<unsigned>(data[i][0]),
          boost::math::tools::real_cast<unsigned>(data[i][1]),
- data[i][2],
- data[i][3]);
+ Real(data[i][2]),
+ Real(data[i][3]));
       BOOST_CHECK_CLOSE_FRACTION(std::real(r), re, value_type(5));
       BOOST_CHECK_CLOSE_FRACTION(std::imag(r), im, value_type(5));
    }
 }
 
-template <class T>
+template <class Real, class T>
 void test_complex_spherical_harmonic(const T& /* data */, const char* /* name */, boost::mpl::false_ const &)
 {
    // T is not a built in type, can't use std::complex with it...
@@ -189,9 +190,9 @@
    //
 # include "spherical_harmonic.ipp"
 
- do_test_spherical_harmonic(spherical_harmonic, name, "Spherical Harmonics");
+ do_test_spherical_harmonic<T>(spherical_harmonic, name, "Spherical Harmonics");
 
- test_complex_spherical_harmonic(spherical_harmonic, name, boost::is_floating_point<T>());
+ test_complex_spherical_harmonic<T>(spherical_harmonic, name, boost::is_floating_point<T>());
 }
 
 template <class T>

Modified: branches/quickbook-dev/libs/math/test/test_tgamma_ratio.hpp
==============================================================================
--- branches/quickbook-dev/libs/math/test/test_tgamma_ratio.hpp (original)
+++ branches/quickbook-dev/libs/math/test/test_tgamma_ratio.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -16,25 +16,27 @@
 #include "functor.hpp"
 
 #include "handle_test_result.hpp"
+#include "table_type.hpp"
 
 #ifndef SC_
-#define SC_(x) static_cast<T>(BOOST_JOIN(x, L))
+#define SC_(x) static_cast<typename table_type<T>::type>(BOOST_JOIN(x, L))
 #endif
 
+template <class Real>
 struct negative_tgamma_ratio
 {
    template <class Row>
- typename Row::value_type operator()(const Row& row)
+ Real operator()(const Row& row)
    {
- return boost::math::tgamma_delta_ratio(row[0], -row[1]);
+ return boost::math::tgamma_delta_ratio(Real(row[0]), -Real(row[1]));
    }
 };
 
-template <class T>
+template <class Real, class T>
 void do_test_tgamma_delta_ratio(const T& data, const char* type_name, const char* test_name)
 {
    typedef typename T::value_type row_type;
- typedef typename row_type::value_type value_type;
+ typedef Real value_type;
 
    typedef value_type (*pg)(value_type, value_type);
 #if defined(BOOST_MATH_NO_DEDUCED_FUNCTION_POINTERS)
@@ -51,23 +53,23 @@
    //
    // test tgamma_delta_ratio against data:
    //
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func(funcp, 0, 1),
- extract_result(2));
+ bind_func<Real>(funcp, 0, 1),
+ extract_result<Real>(2));
    handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::tgamma_delta_ratio(a, delta)", test_name);
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- negative_tgamma_ratio(),
- extract_result(3));
+ negative_tgamma_ratio<Real>(),
+ extract_result<Real>(3));
    handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::tgamma_delta_ratio(a -delta)", test_name);
 }
 
-template <class T>
+template <class Real, class T>
 void do_test_tgamma_ratio(const T& data, const char* type_name, const char* test_name)
 {
    typedef typename T::value_type row_type;
- typedef typename row_type::value_type value_type;
+ typedef Real value_type;
 
    typedef value_type (*pg)(value_type, value_type);
 #if defined(BOOST_MATH_NO_DEDUCED_FUNCTION_POINTERS)
@@ -84,10 +86,10 @@
    //
    // test tgamma_ratio against data:
    //
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func(funcp, 0, 1),
- extract_result(2));
+ bind_func<Real>(funcp, 0, 1),
+ extract_result<Real>(2));
    handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::tgamma_ratio(a, b)", test_name);
 }
 
@@ -99,19 +101,19 @@
    //
 # include "tgamma_delta_ratio_data.ipp"
 
- do_test_tgamma_delta_ratio(tgamma_delta_ratio_data, name, "tgamma + small delta ratios");
+ do_test_tgamma_delta_ratio<T>(tgamma_delta_ratio_data, name, "tgamma + small delta ratios");
 
 # include "tgamma_delta_ratio_int.ipp"
 
- do_test_tgamma_delta_ratio(tgamma_delta_ratio_int, name, "tgamma + small integer ratios");
+ do_test_tgamma_delta_ratio<T>(tgamma_delta_ratio_int, name, "tgamma + small integer ratios");
 
 # include "tgamma_delta_ratio_int2.ipp"
 
- do_test_tgamma_delta_ratio(tgamma_delta_ratio_int2, name, "integer tgamma ratios");
+ do_test_tgamma_delta_ratio<T>(tgamma_delta_ratio_int2, name, "integer tgamma ratios");
 
 # include "tgamma_ratio_data.ipp"
 
- do_test_tgamma_ratio(tgamma_ratio_data, name, "tgamma ratios");
+ do_test_tgamma_ratio<T>(tgamma_ratio_data, name, "tgamma ratios");
 
 }
 

Modified: branches/quickbook-dev/libs/math/test/test_zeta.cpp
==============================================================================
--- branches/quickbook-dev/libs/math/test/test_zeta.cpp (original)
+++ branches/quickbook-dev/libs/math/test/test_zeta.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,6 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
+#include "pch_light.hpp"
 #include "test_zeta.hpp"
 
 //

Modified: branches/quickbook-dev/libs/math/test/test_zeta.hpp
==============================================================================
--- branches/quickbook-dev/libs/math/test/test_zeta.hpp (original)
+++ branches/quickbook-dev/libs/math/test/test_zeta.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -17,12 +17,13 @@
 
 #include "handle_test_result.hpp"
 #include "test_zeta_hooks.hpp"
+#include "table_type.hpp"
 
 #ifndef SC_
-#define SC_(x) static_cast<T>(BOOST_JOIN(x, L))
+#define SC_(x) static_cast<typename table_type<T>::type>(BOOST_JOIN(x, L))
 #endif
 
-template <class T>
+template <class Real, class T>
 void do_test_zeta(const T& data, const char* type_name, const char* test_name)
 {
    //
@@ -30,7 +31,7 @@
    //
    using namespace std;
    typedef typename T::value_type row_type;
- typedef typename row_type::value_type value_type;
+ typedef Real value_type;
 
    std::cout << test_name << " with type " << type_name << std::endl;
 
@@ -45,20 +46,20 @@
    //
    // test zeta against data:
    //
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
       data,
- bind_func(funcp, 0),
- extract_result(1));
+ bind_func<Real>(funcp, 0),
+ extract_result<Real>(1));
    handle_test_result(result, data[result.worst()], result.worst(), type_name, "boost::math::zeta", test_name);
 #ifdef TEST_OTHER
    if(boost::is_floating_point<value_type>::value)
    {
       funcp = other::zeta;
 
- result = boost::math::tools::test(
+ result = boost::math::tools::test_hetero<Real>(
          data,
- bind_func(funcp, 0),
- extract_result(1));
+ bind_func<Real>(funcp, 0),
+ extract_result<Real>(1));
       handle_test_result(result, data[result.worst()], result.worst(), type_name, "other::zeta", test_name);
    }
 #endif
@@ -71,13 +72,13 @@
    // The actual test data is rather verbose, so it's in a separate file
    //
 #include "zeta_data.ipp"
- do_test_zeta(zeta_data, name, "Zeta: Random values greater than 1");
+ do_test_zeta<T>(zeta_data, name, "Zeta: Random values greater than 1");
 #include "zeta_neg_data.ipp"
- do_test_zeta(zeta_neg_data, name, "Zeta: Random values less than 1");
+ do_test_zeta<T>(zeta_neg_data, name, "Zeta: Random values less than 1");
 #include "zeta_1_up_data.ipp"
- do_test_zeta(zeta_1_up_data, name, "Zeta: Values close to and greater than 1");
+ do_test_zeta<T>(zeta_1_up_data, name, "Zeta: Values close to and greater than 1");
 #include "zeta_1_below_data.ipp"
- do_test_zeta(zeta_1_below_data, name, "Zeta: Values close to and less than 1");
+ do_test_zeta<T>(zeta_1_below_data, name, "Zeta: Values close to and less than 1");
 }
 
 extern "C" double zetac(double);

Modified: branches/quickbook-dev/libs/math/test/tgamma_delta_ratio_data.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/tgamma_delta_ratio_data.ipp (original)
+++ branches/quickbook-dev/libs/math/test/tgamma_delta_ratio_data.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
- static const boost::array<boost::array<T, 4>, 560> tgamma_delta_ratio_data = { {
+ static const boost::array<boost::array<typename table_type<T>::type, 4>, 560> tgamma_delta_ratio_data = { {
       {{ SC_(0.2585242462158203125e2), SC_(0.5408298164866209845058619976043701171875e-7), SC_(0.9999998251530248995276873521622051469349e0), SC_(0.1000000174847005556584935896873247717521e1) }},
       {{ SC_(0.2585242462158203125e2), SC_(0.676797071719192899763584136962890625e-7), SC_(0.999999781195646858662207729479648955493e0), SC_(0.1000000218804400836041852388787649318772e1) }},
       {{ SC_(0.2585242462158203125e2), SC_(0.227188110102360951714217662811279296875e-6), SC_(0.9999992655149263979633607427932657111612e0), SC_(0.1000000734485611035140775476483228633931e1) }},

Modified: branches/quickbook-dev/libs/math/test/tgamma_delta_ratio_int.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/tgamma_delta_ratio_int.ipp (original)
+++ branches/quickbook-dev/libs/math/test/tgamma_delta_ratio_int.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
- static const boost::array<boost::array<T, 4>, 344> tgamma_delta_ratio_int = { {
+ static const boost::array<boost::array<typename table_type<T>::type, 4>, 344> tgamma_delta_ratio_int = { {
       {{ SC_(0.24302618503570556640625e1), SC_(0.1e1), SC_(0.4114782939349022594054088894256271572472e0), SC_(0.14302618503570556640625e1) }},
       {{ SC_(0.301645793914794921875e2), SC_(0.1e1), SC_(0.3315146506841289877594755891064182591548e-1), SC_(0.291645793914794921875e2) }},
       {{ SC_(0.301645793914794921875e2), SC_(0.3e1), SC_(0.3307223761155750711531487469609546246538e-4), SC_(0.2231320586281996185139958610577082254167e5) }},

Modified: branches/quickbook-dev/libs/math/test/tgamma_delta_ratio_int2.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/tgamma_delta_ratio_int2.ipp (original)
+++ branches/quickbook-dev/libs/math/test/tgamma_delta_ratio_int2.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
- static const boost::array<boost::array<T, 4>, 190> tgamma_delta_ratio_int2 = { {
+ static const boost::array<boost::array<typename table_type<T>::type, 4>, 190> tgamma_delta_ratio_int2 = { {
       {{ SC_(0.11e2), SC_(0.1e2), SC_(0.1491552059147518383844493235618106619139e-11), SC_(0.36288e7) }},
       {{ SC_(0.12e2), SC_(0.1e2), SC_(0.7812891738391762962994964567523415624059e-12), SC_(0.399168e8) }},
       {{ SC_(0.12e2), SC_(0.11e2), SC_(0.3551314426541710437724983894328825283663e-13), SC_(0.399168e8) }},

Modified: branches/quickbook-dev/libs/math/test/tgamma_ratio_data.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/tgamma_ratio_data.ipp (original)
+++ branches/quickbook-dev/libs/math/test/tgamma_ratio_data.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
- static const boost::array<boost::array<T, 3>, 400> tgamma_ratio_data = { {
+ static const boost::array<boost::array<typename table_type<T>::type, 3>, 400> tgamma_ratio_data = { {
       {{ SC_(6.68193912506103515625), SC_(6.68193912506103515625), SC_(1) }},
       {{ SC_(6.68193912506103515625), SC_(8.095367431640625), SC_(0.06544775114440229981894259276990196062764) }},
       {{ SC_(6.68193912506103515625), SC_(8.50289630889892578125), SC_(0.02833082889188931171456297874515804727699) }},

Modified: branches/quickbook-dev/libs/math/test/zeta_1_below_data.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/zeta_1_below_data.ipp (original)
+++ branches/quickbook-dev/libs/math/test/zeta_1_below_data.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
- static const boost::array<boost::array<T, 2>, 24> zeta_1_below_data = {{
+ static const boost::array<boost::array<typename table_type<T>::type, 2>, 24> zeta_1_below_data = {{
       {{ SC_(0.02141654491424560546875), SC_(-0.5201506602793944998316548018699690797681) }},
       {{ SC_(0.50472259521484375), SC_(-1.479059796502255763615575236860218694317) }},
       {{ SC_(0.753675937652587890625), SC_(-3.500701844470537839375475836745309608254) }},

Modified: branches/quickbook-dev/libs/math/test/zeta_1_up_data.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/zeta_1_up_data.ipp (original)
+++ branches/quickbook-dev/libs/math/test/zeta_1_up_data.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
- static const boost::array<boost::array<T, 2>, 24> zeta_1_up_data = {{
+ static const boost::array<boost::array<typename table_type<T>::type, 2>, 24> zeta_1_up_data = {{
       {{ SC_(1.00000011920928955078125), SC_(8388608.57721567358185799990090564625463) }},
       {{ SC_(1.0000002384185791015625), SC_(4194304.577215682262183001486952251646755) }},
       {{ SC_(1.000000476837158203125), SC_(2097152.577215699622832591533990692770612) }},

Modified: branches/quickbook-dev/libs/math/test/zeta_data.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/zeta_data.ipp (original)
+++ branches/quickbook-dev/libs/math/test/zeta_data.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
- static const boost::array<boost::array<T, 2>, 200> zeta_data = {{
+ static const boost::array<boost::array<typename table_type<T>::type, 2>, 200> zeta_data = {{
       {{ SC_(1.16628754138946533203125), SC_(6.602868183069916948720755731837247651904) }},
       {{ SC_(1.28222560882568359375), SC_(4.140637712279411074557164685415721499333) }},
       {{ SC_(1.7022221088409423828125), SC_(2.049914055577335303673424130546639695977) }},

Modified: branches/quickbook-dev/libs/math/test/zeta_neg_data.ipp
==============================================================================
--- branches/quickbook-dev/libs/math/test/zeta_neg_data.ipp (original)
+++ branches/quickbook-dev/libs/math/test/zeta_neg_data.ipp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -3,7 +3,7 @@
 // Boost Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
- static const boost::array<boost::array<T, 2>, 200> zeta_neg_data = {{
+ static const boost::array<boost::array<typename table_type<T>::type, 2>, 200> zeta_neg_data = {{
       {{ SC_(-29.912628173828125), SC_(-11411595.03734503626230312380285630491992) }},
       {{ SC_(-29.851711273193359375), SC_(-17491128.83255653477666248263741824395945) }},
       {{ SC_(-29.6310367584228515625), SC_(-29338557.80907609522626540806232745245856) }},

Modified: branches/quickbook-dev/libs/move/doc/move.qbk
==============================================================================
--- branches/quickbook-dev/libs/move/doc/move.qbk (original)
+++ branches/quickbook-dev/libs/move/doc/move.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -790,8 +790,11 @@
 [section:release_notes_boost_1_49_00 Boost 1.49 Release]
 
 * Fixed bugs
+ [@https://svn.boost.org/trac/boost/ticket/6417 #6417],
+ [@https://svn.boost.org/trac/boost/ticket/6183 #6183],
   [@https://svn.boost.org/trac/boost/ticket/6185 #6185],
- [@https://svn.boost.org/trac/boost/ticket/6183 #6183].
+ [@https://svn.boost.org/trac/boost/ticket/6395 #6395],
+ [@https://svn.boost.org/trac/boost/ticket/6396 #6396],
 
 [endsect]
 

Modified: branches/quickbook-dev/libs/mpi/src/python/datatypes.cpp
==============================================================================
--- branches/quickbook-dev/libs/mpi/src/python/datatypes.cpp (original)
+++ branches/quickbook-dev/libs/mpi/src/python/datatypes.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -17,7 +17,9 @@
 
 void export_datatypes()
 {
+#if PY_MAJOR_VERSION < 3
   register_serialized(long(0), &PyInt_Type);
+#endif
   register_serialized(false, &PyBool_Type);
   register_serialized(double(0.0), &PyFloat_Type);
 }

Modified: branches/quickbook-dev/libs/mpi/src/python/py_environment.cpp
==============================================================================
--- branches/quickbook-dev/libs/mpi/src/python/py_environment.cpp (original)
+++ branches/quickbook-dev/libs/mpi/src/python/py_environment.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -11,6 +11,9 @@
  * This file reflects the Boost.MPI "environment" class into Python
  * methods at module level.
  */
+
+#include <locale>
+#include <string>
 #include <boost/python.hpp>
 #include <boost/mpi.hpp>
 
@@ -50,11 +53,64 @@
 
   // If anything changed, convert C-style argc/argv into Python argv
   if (mpi_argv != my_argv)
+ {
+#if PY_MAJOR_VERSION >= 3
+
+ wchar_t **argv_copy = (wchar_t **)PyMem_Malloc(sizeof(wchar_t*)*mpi_argc);
+ /* We need a second copy, as Python might modify the first one. */
+ wchar_t **argv_copy2 = (wchar_t **)PyMem_Malloc(sizeof(wchar_t*)*mpi_argc);
+
+ if (!argv_copy || !argv_copy2) {
+ fprintf(stderr, "out of memory\n");
+ return false;
+ }
+
+ std::locale mylocale;
+ mbstate_t mystate;
+
+ const std::codecvt<char, wchar_t, mbstate_t>& myfacet =
+ std::use_facet<std::codecvt<char, wchar_t, mbstate_t> >(mylocale);
+
+ for (int i = 0; i < mpi_argc; i++)
+ {
+ size_t length = strlen(mpi_argv[i]);
+
+ wchar_t *dest = (wchar_t *) PyMem_Malloc(sizeof(wchar_t) * (length + 1));
+
+ const char *from_next;
+ wchar_t *to_next;
+
+ std::codecvt<wchar_t,char,mbstate_t>::result myresult =
+ myfacet.out(mystate,
+ mpi_argv[i], mpi_argv[i] + length + 1, from_next,
+ dest, dest+length+1, to_next);
+
+ if (myresult != std::codecvt<wchar_t,char,mbstate_t>::ok )
+ {
+ fprintf(stderr, "failure translating argv\n");
+ return 1;
+ }
+
+ argv_copy2[i] = argv_copy[i] = dest;
+ if (!argv_copy[i])
+ return false;
+ }
+
+ PySys_SetArgv(mpi_argc, argv_copy);
+
+ for (int i = 0; i < mpi_argc; i++) {
+ PyMem_Free(argv_copy2[i]);
+ }
+ PyMem_Free(argv_copy);
+ PyMem_Free(argv_copy2);
+#else
     PySys_SetArgv(mpi_argc, mpi_argv);
+#endif
+ }
 
- for (int arg = 0; arg < my_argc; ++arg)
- free(my_argv[arg]);
- delete [] my_argv;
+ for (int arg = 0; arg < mpi_argc; ++arg)
+ free(mpi_argv[arg]);
+ delete [] mpi_argv;
 
   return true;
 }

Modified: branches/quickbook-dev/libs/multi_array/doc/reference.html
==============================================================================
--- branches/quickbook-dev/libs/multi_array/doc/reference.html (original)
+++ branches/quickbook-dev/libs/multi_array/doc/reference.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,4 +1,4 @@
-<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Boost.MultiArray Reference Manual</title><meta name="generator" content="DocBook XSL Stylesheets V1.71.1"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="article" lang="en"><div class="titlepage"><div><div><h1 class="title"><a name="id730554"></a>Boost.MultiArray Reference Manual</h1></div><div><div class="author"><h3 class="author"><span class="firstname">Ronald</span> <span class="surname">Garcia</span></h3><div class="affiliation"><span class="orgname">Indiana University<br></span> <span class="orgdiv">Open Systems Lab<br></span></div></div></div><div><p class="copyright">Copyright © 2002 The Trustees of Indiana University</p></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1">Library Synopsis</span></dt><dt><span class="sect1">MultiArray Concept</span></dt><dd><dl><dt
><span class="sect2">Notation</span></dt><dt><span class="sect2">Associated Types</span></dt><dt><span class="sect2">Valid expressions</span></dt><dt><span class="sect2">Complexity guarantees</span></dt><dt><span class="sect2">Invariants</span></dt><dt><span class="sect2">Associated Types for Views</span></dt><dt><span class="sect2">Models</span></dt></dl></dd><dt><span class="sect1">Array Components</span></dt><dd><dl><dt><span class="sect2">multi_array</span></dt><dt><span class="sect2">multi_array_ref</span></dt><dt><span class="sect2">const_multi_array_ref</span></dt></dl></dd><dt><span class="sect1"><a href="#auxiliary">Auxiliary C
omponents</a></span></dt><dd><dl><dt><span class="sect2">multi_array_types</span></dt><dt><span class="sect2">extent_range</span></dt><dt><span class="sect2">extent_gen</span></dt><dt><span class="sect2">Global Objects</span></dt><dt><span class="sect2">View and SubArray Generators</span></dt><dt><span class="sect2">Memory Layout Specifiers</span></dt><dt><span class="sect2">Range Checking</span></dt></dl></dd></dl></div><p>Boost.MultiArray is composed of several components.
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Boost.MultiArray Reference Manual</title><meta name="generator" content="DocBook XSL Stylesheets V1.76.1"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="article" title="Boost.MultiArray Reference Manual"><div class="titlepage"><div><div><h2 class="title"><a name="idp2304"></a>Boost.MultiArray Reference Manual</h2></div><div><div class="author"><h3 class="author"><span class="firstname">Ronald</span> <span class="surname">Garcia</span></h3><div class="affiliation"><span class="orgname">Indiana University<br></span> <span class="orgdiv">Open Systems Lab<br></span></div></div></div><div><p class="copyright">Copyright © 2002 The Trustees of Indiana University</p></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="sect1">Library Synopsis</span></dt><dt><span class="sect1"><a href="#MultiArray">MultiArray Con
cept</a></span></dt><dd><dl><dt><span class="sect2">Notation</span></dt><dt><span class="sect2">Associated Types</span></dt><dt><span class="sect2">Valid expressions</span></dt><dt><span class="sect2">Complexity guarantees</span></dt><dt><span class="sect2">Invariants</span></dt><dt><span class="sect2">Associated Types for Views</span></dt><dt><span class="sect2">Models</span></dt></dl></dd><dt><span class="sect1">Array Components</span></dt><dd><dl><dt><span class="sect2">multi_array</span></dt><dt><span class="sect2">multi_array_ref</span></dt><dt><span class="sect2">const_multi_array_ref</span></dt></dl></dd><
dt><span class="sect1">Auxiliary Components</span></dt><dd><dl><dt><span class="sect2">multi_array_types</span></dt><dt><span class="sect2">extent_range</span></dt><dt><span class="sect2">extent_gen</span></dt><dt><span class="sect2">Global Objects</span></dt><dt><span class="sect2">View and SubArray Generators</span></dt><dt><span class="sect2">Memory Layout Specifiers</span></dt><dt><span class="sect2">Range Checking</span></dt></dl></dd></dl></div><p>Boost.MultiArray is composed of several components.
 The MultiArray concept defines a generic interface to multidimensional
 containers.
 <code class="literal">multi_array</code> is a general purpose container class
@@ -11,7 +11,7 @@
 <code class="literal">multi_array_ref</code> in that its elements cannot
 be modified through its interface. Finally, several auxiliary classes are used
 to create and specialize arrays and some global objects are defined as
-part of the library interface.</p><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="synopsis"></a>Library Synopsis</h2></div></div></div><p>To use Boost.MultiArray, you must include the header
+part of the library interface.</p><div class="sect1" title="Library Synopsis"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="synopsis"></a>Library Synopsis</h2></div></div></div><p>To use Boost.MultiArray, you must include the header
 <code class="filename">boost/multi_array.hpp</code> in your source. This file
 brings the following declarations into scope:</p><pre class="programlisting">
 namespace boost {
@@ -52,7 +52,7 @@
   template &lt;std::size_t NumDims&gt; class general_storage_order;
 
 }
-</pre></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="MultiArray"></a>MultiArray Concept</h2></div></div></div><p>The MultiArray
+</pre></div><div class="sect1" title="MultiArray Concept"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="MultiArray"></a>MultiArray Concept</h2></div></div></div><p>The MultiArray
 concept defines an interface to hierarchically nested
 containers. It specifies operations for accessing elements,
 traversing containers, and creating views
@@ -150,17 +150,23 @@
 dimensional array can be stored by row (i.e., the elements of each row
 are stored contiguously) or by column (i.e., the elements of each
 column are stored contiguously).
-</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id835332"></a>Notation</h3></div></div></div><p>What follows are the descriptions of symbols that will be used
-to describe the MultiArray interface.</p><div class="table"><a name="id835342"></a><p class="title"><b>Table 1. Notation</b></p><div class="table-contents"><table summary="Notation" border="1"><colgroup><col><col></colgroup><tbody><tr><td><code class="literal">A</code></td><td>A type that is a model of MultiArray
+</p><p>
+Two concept checking classes for the MultiArray concepts
+(<code class="literal">ConstMultiArrayConcept</code> and
+<code class="literal">MutableMultiArrayConcept</code>) are in the namespace
+<code class="literal">boost::multi_array_concepts</code> in
+<code class="literal">&lt;boost/multi_array/concept_checks.hpp&gt;</code>.
+</p><div class="sect2" title="Notation"><div class="titlepage"><div><div><h3 class="title"><a name="idp18427760"></a>Notation</h3></div></div></div><p>What follows are the descriptions of symbols that will be used
+to describe the MultiArray interface.</p><div class="table"><a name="idp18428768"></a><p class="title"><b>Table 1. Notation</b></p><div class="table-contents"><table summary="Notation" border="1"><colgroup><col><col></colgroup><tbody><tr><td><code class="literal">A</code></td><td>A type that is a model of MultiArray
 </td></tr><tr><td><code class="literal">a,b</code></td><td>Objects of type <code class="literal">A</code></td></tr><tr><td><code class="literal">NumDims</code></td><td>The numeric dimension parameter associated with
 <code class="literal">A</code>.</td></tr><tr><td><code class="literal">Dims</code></td><td>Some numeric dimension parameter such that
 <code class="literal">0&lt;Dims&lt;NumDims</code>.
 </td></tr><tr><td><code class="literal">indices</code></td><td>An object created by some number of chained calls
 to <code class="literal">index_gen::operator[](index_range)</code>.</td></tr><tr><td><code class="literal">index_list</code></td><td>An object whose type models
-Collection
+<a class="ulink" href="../../utility/Collection.html" target="_top">Collection</a>
 </td></tr><tr><td><code class="literal">idx</code></td><td>A signed integral value.</td></tr><tr><td><code class="literal">tmp</code></td><td>An object of type
- <code class="literal">boost::array&lt;index,NumDims&gt;</code></td></tr></tbody></table></div></div><br class="table-break"></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id835500"></a>Associated Types</h3></div></div></div><p>
-</p><div class="table"><a name="id835508"></a><p class="title"><b>Table 2. Associated Types</b></p><div class="table-contents"><table summary="Associated Types" border="1"><colgroup><col><col></colgroup><thead><tr><th>Type</th><th>Description</th></tr></thead><tbody><tr><td><code class="literal">value_type</code></td><td>This is the value type of the container.
+ <code class="literal">boost::array&lt;index,NumDims&gt;</code></td></tr></tbody></table></div></div><br class="table-break"></div><div class="sect2" title="Associated Types"><div class="titlepage"><div><div><h3 class="title"><a name="idp18446208"></a>Associated Types</h3></div></div></div><p>
+</p><div class="table"><a name="idp18447104"></a><p class="title"><b>Table 2. Associated Types</b></p><div class="table-contents"><table summary="Associated Types" border="1"><colgroup><col><col></colgroup><thead><tr><th>Type</th><th>Description</th></tr></thead><tbody><tr><td><code class="literal">value_type</code></td><td>This is the value type of the container.
   If <code class="literal">NumDims == 1</code>, then this is
 <code class="literal">element</code>. Otherwise, this is the value type of the
 immediately nested containers.
@@ -192,15 +198,17 @@
 </td></tr><tr><td><code class="literal">iterator</code></td><td>
 This is an iterator over the values of <code class="literal">A</code>.
 If <code class="literal">NumDims == 1</code>, then it models
-<a href="http://www.sgi.com/tech/stl/RandomAccessIterator.html" target="_top">
+<a class="ulink" href="http://www.boost.org/doc/html/RandomAccessIterator.html" target="_top">
 <code class="literal">Random Access Iterator</code></a>.
 Otherwise it models
-<a href="./iterator_categories.html#concept_RandomAccessTraversalIterator" target="_top">
+<a class="ulink" href="./iterator_categories.html#concept_RandomAccessTraversalIterator" target="_top">
 Random Access Traversal Iterator</a>,
-<a href="./iterator_categories.html#concept_ReadableIterator" target="_top">
-Readable Iterator</a>, and
-<a href="./iterator_categories.html#concept_WritableIterator" target="_top">
-Writable Iterator</a>.
+<a class="ulink" href="./iterator_categories.html#concept_ReadableIterator" target="_top">
+Readable Iterator</a>,
+<a class="ulink" href="./iterator_categories.html#concept_WritableIterator" target="_top">
+Writable Iterator</a>, and
+<a class="ulink" href="http://www.boost.org/doc/html/OutputIterator.html" target="_top">
+<code class="literal">Output Iterator</code></a>.
 </td></tr><tr><td>
 <code class="literal">const_iterator</code>
 </td><td>
@@ -260,7 +268,7 @@
 const_array_view&lt;Dims&gt;::type</code>
 </td><td>
 This is the const view type with <code class="literal">Dims</code> dimensions.
-</td></tr></tbody></table></div></div><br class="table-break"></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id836010"></a>Valid expressions</h3></div></div></div><div class="table"><a name="id836014"></a><p class="title"><b>Table 3. Valid Expressions</b></p><div class="table-contents"><table summary="Valid Expressions" border="1"><colgroup><col><col><col></colgroup><thead><tr><th>Expression</th><th>Return type</th><th>Semantics</th></tr></thead><tbody><tr><td><code class="literal">A::dimensionality</code></td><td><code class="literal">size_type</code></td><td>This compile-time constant represents the number of
+</td></tr></tbody></table></div></div><br class="table-break"></div><div class="sect2" title="Valid expressions"><div class="titlepage"><div><div><h3 class="title"><a name="idp18501744"></a>Valid expressions</h3></div></div></div><div class="table"><a name="idp18502256"></a><p class="title"><b>Table 3. Valid Expressions</b></p><div class="table-contents"><table summary="Valid Expressions" border="1"><colgroup><col><col><col></colgroup><thead><tr><th>Expression</th><th>Return type</th><th>Semantics</th></tr></thead><tbody><tr><td><code class="literal">A::dimensionality</code></td><td><code class="literal">size_type</code></td><td>This compile-time constant represents the number of
 dimensions of the array (note that
 <code class="literal">A::dimensionality == NumDims</code>).</td></tr><tr><td><code class="literal">a.shape()</code></td><td><code class="literal">const size_type*</code></td><td>
 This returns a list of <code class="literal">NumDims</code> elements specifying the
@@ -345,26 +353,26 @@
  used to construct <code class="literal">indices</code>.
 </td></tr><tr><td><code class="literal">a == b</code></td><td>bool</td><td>This performs a lexicographical comparison of the
 values of <code class="literal">a</code> and <code class="literal">b</code>. The element
-type must model EqualityComparable for this
+type must model <a class="ulink" href="http://www.sgi.com/tech/stl/EqualityComparable.html" target="_top">EqualityComparable</a> for this
 expression to be valid.</td></tr><tr><td><code class="literal">a &lt; b</code></td><td>bool</td><td>This performs a lexicographical comparison of the
 values of <code class="literal">a</code> and <code class="literal">b</code>. The element
-type must model LessThanComparable for this
+type must model <a class="ulink" href="http://www.sgi.com/tech/stl/LessThanComparable.html" target="_top">LessThanComparable</a> for this
 expression to be valid.</td></tr><tr><td><code class="literal">a &lt;= b</code></td><td>bool</td><td>This performs a lexicographical comparison of the
 values of <code class="literal">a</code> and <code class="literal">b</code>. The element
-type must model EqualityComparable and
-LessThanComparable for this
+type must model <a class="ulink" href="http://www.sgi.com/tech/stl/EqualityComparable.html" target="_top">EqualityComparable</a> and
+<a class="ulink" href="http://www.sgi.com/tech/stl/LessThanComparable.html" target="_top">LessThanComparable</a> for this
 expression to be valid.</td></tr><tr><td><code class="literal">a &gt; b</code></td><td>bool</td><td>This performs a lexicographical comparison of the
 values of <code class="literal">a</code> and <code class="literal">b</code>. The element
-type must model EqualityComparable and
-LessThanComparable for this
+type must model <a class="ulink" href="http://www.sgi.com/tech/stl/EqualityComparable.html" target="_top">EqualityComparable</a> and
+<a class="ulink" href="http://www.sgi.com/tech/stl/LessThanComparable.html" target="_top">LessThanComparable</a> for this
 expression to be valid.</td></tr><tr><td><code class="literal">a &gt;= b</code></td><td>bool</td><td>This performs a lexicographical comparison of the
 values of <code class="literal">a</code> and <code class="literal">b</code>. The element
-type must model LessThanComparable for this
-expression to be valid.</td></tr></tbody></table></div></div><br class="table-break"></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id836828"></a>Complexity guarantees</h3></div></div></div><code class="literal">begin()</code> and <code class="literal">end()</code> execute in amortized
+type must model <a class="ulink" href="http://www.sgi.com/tech/stl/LessThanComparable.html" target="_top">LessThanComparable</a> for this
+expression to be valid.</td></tr></tbody></table></div></div><br class="table-break"></div><div class="sect2" title="Complexity guarantees"><div class="titlepage"><div><div><h3 class="title"><a name="idp18588736"></a>Complexity guarantees</h3></div></div></div><code class="literal">begin()</code> and <code class="literal">end()</code> execute in amortized
 constant time.
 <code class="literal">size()</code> executes in at most linear time in the
 MultiArray's size.
-</div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id836852"></a>Invariants</h3></div></div></div><div class="table"><a name="id836858"></a><p class="title"><b>Table 4. Invariants</b></p><div class="table-contents"><table summary="Invariants" border="1"><colgroup><col><col></colgroup><tbody><tr><td>Valid range</td><td><code class="literal">[a.begin(),a.end())</code> is a valid range.
+</div><div class="sect2" title="Invariants"><div class="titlepage"><div><div><h3 class="title"><a name="idp18591264"></a>Invariants</h3></div></div></div><div class="table"><a name="idp18591904"></a><p class="title"><b>Table 4. Invariants</b></p><div class="table-contents"><table summary="Invariants" border="1"><colgroup><col><col></colgroup><tbody><tr><td>Valid range</td><td><code class="literal">[a.begin(),a.end())</code> is a valid range.
             </td></tr><tr><td>Range size</td><td>
 <code class="literal">a.size() == std::distance(a.begin(),a.end());</code>.
 </td></tr><tr><td>Completeness</td><td>
@@ -375,11 +383,11 @@
 Calling <code class="literal">a[a1][a2]...[aN]</code> where <code class="literal">N==NumDims</code>
 yields the same result as calling
 <code class="literal">a(index_list)</code>, where <code class="literal">index_list</code>
-is a Collection containing the values <code class="literal">a1...aN</code>.
-</td></tr></tbody></table></div></div><br class="table-break"></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="view_types"></a>Associated Types for Views</h3></div></div></div><p>The following MultiArray associated
+is a <a class="ulink" href="../../utility/Collection.html" target="_top">Collection</a> containing the values <code class="literal">a1...aN</code>.
+</td></tr></tbody></table></div></div><br class="table-break"></div><div class="sect2" title="Associated Types for Views"><div class="titlepage"><div><div><h3 class="title"><a name="view_types"></a>Associated Types for Views</h3></div></div></div><p>The following MultiArray associated
 types define the interface for creating views of existing
 MultiArrays. Their interfaces and roles in the
-concept are described below.</p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="index_range"></a><code class="literal">index_range</code></h4></div></div></div><p><code class="literal">index_range</code> objects represent half-open
+concept are described below.</p><div class="sect3" title="index_range"><div class="titlepage"><div><div><h4 class="title"><a name="index_range"></a><code class="literal">index_range</code></h4></div></div></div><p><code class="literal">index_range</code> objects represent half-open
 strided intervals. They are aggregated (using an
 <code class="literal">index_gen</code> object) and passed to
 a MultiArray's <code class="literal">operator[]</code>
@@ -403,10 +411,10 @@
 
 The following describes the
 <code class="literal">index_range</code> interface.
-</p><div class="table"><a name="id837086"></a><p class="title"><b>Table 5. Notation</b></p><div class="table-contents"><table summary="Notation" border="1"><colgroup><col><col></colgroup><tbody><tr><td><code class="literal">i</code></td><td>An object of type <code class="literal">index_range</code>.</td></tr><tr><td><code class="literal">idx,idx1,idx2,idx3</code></td><td>Objects of type <code class="literal">index</code>.</td></tr></tbody></table></div></div><br class="table-break"><div class="table"><a name="id837139"></a><p class="title"><b>Table 6. Associated Types</b></p><div class="table-contents"><table summary="Associated Types" border="1"><colgroup><col><col></colgroup><thead><tr><th>Type</th><th>Description</th></tr></thead><tbody><tr><td><code class="literal">index</code></td><td>This is a signed integral type. It is used to
+</p><div class="table"><a name="idp18614960"></a><p class="title"><b>Table 5. Notation</b></p><div class="table-contents"><table summary="Notation" border="1"><colgroup><col><col></colgroup><tbody><tr><td><code class="literal">i</code></td><td>An object of type <code class="literal">index_range</code>.</td></tr><tr><td><code class="literal">idx,idx1,idx2,idx3</code></td><td>Objects of type <code class="literal">index</code>.</td></tr></tbody></table></div></div><br class="table-break"><div class="table"><a name="idp18620944"></a><p class="title"><b>Table 6. Associated Types</b></p><div class="table-contents"><table summary="Associated Types" border="1"><colgroup><col><col></colgroup><thead><tr><th>Type</th><th>Description</th></tr></thead><tbody><tr><td><code class="literal">index</code></td><td>This is a signed integral type. It is used to
 specify the start, finish, and stride values.</td></tr><tr><td><code class="literal">size_type</code></td><td>This is an unsigned integral type. It is used to
 report the size of the range an <code class="literal">index_range</code>
-represents.</td></tr></tbody></table></div></div><br class="table-break"><div class="table"><a name="id837202"></a><p class="title"><b>Table 7. Valid Expressions</b></p><div class="table-contents"><table summary="Valid Expressions" border="1"><colgroup><col><col><col></colgroup><thead><tr><th>Expression</th><th>Return type</th><th>Semantics</th></tr></thead><tbody><tr><td><code class="literal">index_range(idx1,idx2,idx3)</code></td><td><code class="literal">index_range</code></td><td>This constructs an <code class="literal">index_range</code>
+represents.</td></tr></tbody></table></div></div><br class="table-break"><div class="table"><a name="idp18627920"></a><p class="title"><b>Table 7. Valid Expressions</b></p><div class="table-contents"><table summary="Valid Expressions" border="1"><colgroup><col><col><col></colgroup><thead><tr><th>Expression</th><th>Return type</th><th>Semantics</th></tr></thead><tbody><tr><td><code class="literal">index_range(idx1,idx2,idx3)</code></td><td><code class="literal">index_range</code></td><td>This constructs an <code class="literal">index_range</code>
             representing the interval <code class="literal">[idx1,idx2)</code>
  with stride <code class="literal">idx3</code>.</td></tr><tr><td><code class="literal">index_range(idx1,idx2)</code></td><td><code class="literal">index_range</code></td><td>This constructs an <code class="literal">index_range</code>
             representing the interval <code class="literal">[idx1,idx2)</code>
@@ -438,14 +446,14 @@
 of <code class="literal">i</code> up by <code class="literal">idx</code>. It is equivalent to
 <code class="literal">index_range(r.start()+idx1, r.finish()+idx, r.stride())</code></td></tr><tr><td><code class="literal">i - idx</code></td><td><code class="literal">index</code></td><td>This expression shifts the start and finish values
 of <code class="literal">i</code> up by <code class="literal">idx</code>. It is equivalent to
-<code class="literal">index_range(r.start()-idx1, r.finish()-idx, r.stride())</code></td></tr></tbody></table></div></div><br class="table-break"></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="index_gen"></a><code class="literal">index_gen</code></h4></div></div></div><p> <code class="literal">index_gen</code> aggregates
+<code class="literal">index_range(r.start()-idx1, r.finish()-idx, r.stride())</code></td></tr></tbody></table></div></div><br class="table-break"></div><div class="sect3" title="index_gen"><div class="titlepage"><div><div><h4 class="title"><a name="index_gen"></a><code class="literal">index_gen</code></h4></div></div></div><p> <code class="literal">index_gen</code> aggregates
 <code class="literal">index_range</code> objects in order to specify view
 parameters. Chained calls to <code class="literal">operator[]</code> store
 range and dimension information used to
 instantiate a new view into a MultiArray.
-</p><div class="table"><a name="id837868"></a><p class="title"><b>Table 8. Notation</b></p><div class="table-contents"><table summary="Notation" border="1"><colgroup><col><col></colgroup><tbody><tr><td><code class="literal">Dims,Ranges</code></td><td>Unsigned integral values.</td></tr><tr><td><code class="literal">x</code></td><td>An object of type
+</p><div class="table"><a name="idp18699808"></a><p class="title"><b>Table 8. Notation</b></p><div class="table-contents"><table summary="Notation" border="1"><colgroup><col><col></colgroup><tbody><tr><td><code class="literal">Dims,Ranges</code></td><td>Unsigned integral values.</td></tr><tr><td><code class="literal">x</code></td><td>An object of type
 <code class="literal">template gen_type&lt;Dims,Ranges&gt;::type</code>.</td></tr><tr><td><code class="literal">i</code></td><td>An object of type
-<code class="literal">index_range</code>.</td></tr><tr><td><code class="literal">idx</code></td><td>Objects of type <code class="literal">index</code>.</td></tr></tbody></table></div></div><br class="table-break"><div class="table"><a name="id837954"></a><p class="title"><b>Table 9. Associated Types</b></p><div class="table-contents"><table summary="Associated Types" border="1"><colgroup><col><col></colgroup><thead><tr><th>Type</th><th>Description</th></tr></thead><tbody><tr><td><code class="literal">index</code></td><td>This is a signed integral type. It is used to
+<code class="literal">index_range</code>.</td></tr><tr><td><code class="literal">idx</code></td><td>Objects of type <code class="literal">index</code>.</td></tr></tbody></table></div></div><br class="table-break"><div class="table"><a name="idp18709408"></a><p class="title"><b>Table 9. Associated Types</b></p><div class="table-contents"><table summary="Associated Types" border="1"><colgroup><col><col></colgroup><thead><tr><th>Type</th><th>Description</th></tr></thead><tbody><tr><td><code class="literal">index</code></td><td>This is a signed integral type. It is used to
 specify degenerate dimensions.</td></tr><tr><td><code class="literal">size_type</code></td><td>This is an unsigned integral type. It is used to
 report the size of the range an <code class="literal">index_range</code>
 represents.</td></tr><tr><td>
@@ -456,7 +464,7 @@
 degenerate ranges specified (i.e. calls to
 <code class="literal">operator[](index)</code>). Note that
 <code class="classname">index_gen</code> and
-<code class="classname">gen_type&lt;0,0&gt;::type</code> are the same type.</td></tr></tbody></table></div></div><br class="table-break"><div class="table"><a name="id838066"></a><p class="title"><b>Table 10. Valid Expressions</b></p><div class="table-contents"><table summary="Valid Expressions" border="1"><colgroup><col><col><col></colgroup><thead><tr><th>Expression</th><th>Return type</th><th>Semantics</th></tr></thead><tbody><tr><td><code class="literal">index_gen()</code></td><td><code class="literal">gen_type&lt;0,0&gt;::type</code></td><td>This constructs an <code class="literal">index_gen</code>
+<code class="classname">gen_type&lt;0,0&gt;::type</code> are the same type.</td></tr></tbody></table></div></div><br class="table-break"><div class="table"><a name="idp18721296"></a><p class="title"><b>Table 10. Valid Expressions</b></p><div class="table-contents"><table summary="Valid Expressions" border="1"><colgroup><col><col><col></colgroup><thead><tr><th>Expression</th><th>Return type</th><th>Semantics</th></tr></thead><tbody><tr><td><code class="literal">index_gen()</code></td><td><code class="literal">gen_type&lt;0,0&gt;::type</code></td><td>This constructs an <code class="literal">index_gen</code>
 object. This object can then be used to generate tuples of
 <code class="literal">index_range</code> values.</td></tr><tr><td><code class="literal">x[i]</code></td><td><code class="literal">gen_type&lt;Dims+1,Ranges+1&gt;::type</code>
 </td><td>Returns a new object containing all previous
@@ -470,7 +478,7 @@
 equivalent to <code class="literal">x[index_range(idx,idx)].</code>, which will
 return an object of type
 <code class="literal">gen_type&lt;Dims+1,Ranges+1&gt;::type</code>.
-</td></tr></tbody></table></div></div><br class="table-break"></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id838222"></a>Models</h3></div></div></div><div class="itemizedlist"><ul type="disc"><li><code class="literal">multi_array</code></li><li><code class="literal">multi_array_ref</code></li><li><code class="literal">const_multi_array_ref</code></li><li><code class="literal">template array_view&lt;Dims&gt;::type</code></li><li><code class="literal">template const_array_view&lt;Dims&gt;::type</code></li><li><code class="literal">template subarray&lt;Dims&gt;::type</code></li><li><code class="literal">template const_subarray&lt;Dims&gt;::type</code></li></ul></div></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="array_types"></a>Array Components</h2></div></div></div><p>
+</td></tr></tbody></table></div></div><br class="table-break"></div></div><div class="sect2" title="Models"><div class="titlepage"><div><div><h3 class="title"><a name="idp18737792"></a>Models</h3></div></div></div><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><code class="literal">multi_array</code></li><li class="listitem"><code class="literal">multi_array_ref</code></li><li class="listitem"><code class="literal">const_multi_array_ref</code></li><li class="listitem"><code class="literal">template array_view&lt;Dims&gt;::type</code></li><li class="listitem"><code class="literal">template const_array_view&lt;Dims&gt;::type</code></li><li class="listitem"><code class="literal">template subarray&lt;Dims&gt;::type</code></li><li class="listitem"><code class="literal">template const_subarray&lt;Dims&gt;::type</code></li></ul></div></div></div><div class="sect1" title="Array Components"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="array_type
s"></a>Array Components</h2></div></div></div><p>
 Boost.MultiArray defines an array class,
 <code class="literal">multi_array</code>, and two adapter classes,
 <code class="literal">multi_array_ref</code> and
@@ -487,7 +495,7 @@
 properties, including the array shape and index bases, can be altered.
 Functionality the classes have in common is described
 below.
-</p><p><b>Note: Preconditions, Effects, and Implementation. </b>
+</p><p title="Note: Preconditions, Effects, and Implementation"><b>Note: Preconditions, Effects, and Implementation. </b>
 Throughout the following sections, small pieces of C++ code are
 used to specify constraints such as preconditions, effects, and
 postconditions. These do not necessarily describe the underlying
@@ -498,7 +506,7 @@
 (i.e. copy constructors, etc.) must be mimicked exactly. The code
 snippets for effects intend to capture the essence of the described
 operation.
-</p><p><b>Queries. </b></p><div class="variablelist"><dl><dt><span class="term"><pre class="programlisting">element* data();
+</p><p title="Queries"><b>Queries. </b></p><div class="variablelist"><dl><dt><span class="term"><pre class="programlisting">element* data();
 const element* data() const;</pre></span></dt><dd><p>This returns a pointer to the beginning of the
 contiguous block that contains the array's data. If all dimensions of
 the array are 0-indexed and stored in ascending order, this is
@@ -516,7 +524,7 @@
 <code class="literal">multi_array</code>. (Required by MultiArray)
 </p></dd><dt><span class="term"><code class="function">const size_type* shape();</code></span></dt><dd><p>This returns the shape of the
 <code class="literal">multi_array</code>. (Required by MultiArray)
-</p></dd></dl></div><p><b>Comparators. </b></p><div class="variablelist"><dl><dt><span class="term"><pre class="programlisting">
+</p></dd></dl></div><p title="Comparators"><b>Comparators. </b></p><div class="variablelist"><dl><dt><span class="term"><pre class="programlisting">
 bool operator==(const *array-type*&amp; rhs);
 bool operator!=(const *array-type*&amp; rhs);
 bool operator&lt;(const *array-type*&amp; rhs);
@@ -525,9 +533,9 @@
 bool operator&lt;=(const *array-type*&amp; rhs);</pre></span></dt><dd><p>Each comparator executes a lexicographical compare over
 the value types of the two arrays.
 (Required by MultiArray)
-</p><p><b>Preconditions. </b><code class="literal">element</code> must support the
+</p><p title="Preconditions"><b>Preconditions. </b><code class="literal">element</code> must support the
 comparator corresponding to that called on
-<code class="literal">multi_array</code>.</p><p><b>Complexity. </b>O(<code class="literal">num_elements()</code>).</p></dd></dl></div><p><b>Modifiers. </b></p><div class="variablelist"><dl><dt><span class="term">
+<code class="literal">multi_array</code>.</p><p title="Complexity"><b>Complexity. </b>O(<code class="literal">num_elements()</code>).</p></dd></dl></div><p title="Modifiers"><b>Modifiers. </b></p><div class="variablelist"><dl><dt><span class="term">
 <pre class="programlisting">
 
 template &lt;typename SizeList&gt;
@@ -537,12 +545,12 @@
 </span></dt><dd><p>This changes the shape of the <code class="literal">multi_array</code>. The
 number of elements and the index bases remain the same, but the number
 of values at each level of the nested container hierarchy may
-change.</p><p><b><code class="literal">SizeList</code> Requirements. </b><code class="literal">SizeList</code> must model
-Collection.</p><p><b>Preconditions. </b>
+change.</p><p title="SizeList Requirements"><b><code class="literal">SizeList</code> Requirements. </b><code class="literal">SizeList</code> must model
+<a class="ulink" href="../../utility/Collection.html" target="_top">Collection</a>.</p><p title="Preconditions"><b>Preconditions. </b>
 </p><pre class="programlisting">
-std::accumulate(sizes.begin(),sizes.end(),size_type(1),std::multiplies&lt;size_type&gt;()) == this-&gt;num_elements();
+std::accumulate(sizes.begin(),sizes.end(),size_type(1),std::times&lt;size_type&gt;()) == this-&gt;num_elements();
 sizes.size() == NumDims;
-</pre><p><b>Postconditions. </b>
+</pre><p title="Postconditions"><b>Postconditions. </b>
 <code class="literal">std::equal(sizes.begin(),sizes.end(),this-&gt;shape) == true;</code>
 </p></dd><dt><span class="term">
 <pre class="programlisting">
@@ -552,8 +560,8 @@
 
 </pre>
 </span></dt><dd><p>This changes the index bases of the <code class="literal">multi_array</code> to
-correspond to the the values in <code class="literal">values</code>.</p><p><b><code class="literal">BaseList</code> Requirements. </b><code class="literal">BaseList</code> must model
-Collection.</p><p><b>Preconditions. </b><code class="literal">values.size() == NumDims;</code></p><p><b>Postconditions. </b><code class="literal">std::equal(values.begin(),values.end(),this-&gt;index_bases());
+correspond to the the values in <code class="literal">values</code>.</p><p title="BaseList Requirements"><b><code class="literal">BaseList</code> Requirements. </b><code class="literal">BaseList</code> must model
+<a class="ulink" href="../../utility/Collection.html" target="_top">Collection</a>.</p><p title="Preconditions"><b>Preconditions. </b><code class="literal">values.size() == NumDims;</code></p><p title="Postconditions"><b>Postconditions. </b><code class="literal">std::equal(values.begin(),values.end(),this-&gt;index_bases());
 </code></p></dd><dt><span class="term">
 <pre class="programlisting">
 
@@ -561,15 +569,15 @@
 
 </pre>
 </span></dt><dd><p>This changes the index bases of all dimensions of the
-<code class="literal">multi_array</code> to <code class="literal">value</code>.</p><p><b>Postconditions. </b>
+<code class="literal">multi_array</code> to <code class="literal">value</code>.</p><p title="Postconditions"><b>Postconditions. </b>
 </p><pre class="programlisting">
 
 std::count_if(this-&gt;index_bases(),this-&gt;index_bases()+this-&gt;num_dimensions(),
               std::bind_2nd(std::equal_to&lt;index&gt;(),value)) ==
               this-&gt;num_dimensions();
 
-</pre><p>
-</p></dd></dl></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="multi_array"></a><code class="literal">multi_array</code></h3></div></div></div><p>
+</pre><p title="Postconditions">
+</p></dd></dl></div><div class="sect2" title="multi_array"><div class="titlepage"><div><div><h3 class="title"><a name="multi_array_class"></a><code class="literal">multi_array</code></h3></div></div></div><p>
 <code class="literal">multi_array</code> is a multi-dimensional container that
 supports random access iteration. Its number of dimensions is
 fixed at compile time, but its shape and the number of elements it
@@ -578,11 +586,11 @@
 <code class="literal">multi_array</code>'s lifetime, but the shape of the container can
 be changed. A <code class="literal">multi_array</code> manages its data elements
 using a replaceable allocator.
-</p><p><b>Model Of. </b>
-MultiArray,
-CopyConstructible. Depending on the element type,
-it may also model EqualityComparable and LessThanComparable.
-</p><p><b>Synopsis. </b></p><pre class="programlisting">
+</p><p title="Model Of."><b>Model Of. </b>
+<a class="link" href="#MultiArray" title="MultiArray Concept">MultiArray</a>,
+<a class="ulink" href="../../../libs/utility/CopyConstructible.html" target="_top">CopyConstructible</a>. Depending on the element type,
+it may also model <a class="ulink" href="http://www.sgi.com/tech/stl/EqualityComparable.html" target="_top">EqualityComparable</a> and <a class="ulink" href="http://www.sgi.com/tech/stl/LessThanComparable.html" target="_top">LessThanComparable</a>.
+</p><p title="Synopsis"><b>Synopsis. </b></p><pre class="programlisting">
 
 namespace boost {
 
@@ -608,7 +616,7 @@
   typedef multi_array_types::extent_gen extent_gen;
   typedef multi_array_types::extent_range extent_range;
   typedef *unspecified* storage_order_type;
-
+
 
   // template typedefs
   template &lt;std::size_t Dims&gt; struct subarray;
@@ -617,6 +625,9 @@
   template &lt;std::size_t Dims&gt; struct const_array_view;
   
 
+ static const std::size_t dimensionality = NumDims;
+
+
   // constructors and destructors
 
   multi_array();
@@ -699,7 +710,7 @@
   multi_array&amp; resize(extents_tuple&amp; extents);
 };
 
-</pre><p><b>Constructors. </b></p><div class="variablelist"><dl><dt><span class="term"><pre class="programlisting">template &lt;typename ExtentList&gt;
+</pre><p title="Constructors"><b>Constructors. </b></p><div class="variablelist"><dl><dt><span class="term"><pre class="programlisting">template &lt;typename ExtentList&gt;
 explicit multi_array(const ExtentList&amp; sizes,
                      const storage_order_type&amp; store = c_storage_order(),
                      const Allocator&amp; alloc = Allocator());
@@ -710,9 +721,9 @@
 specifies the storage order or layout in memory of the array
 dimensions. <code class="literal">alloc</code> is used to
 allocate the contained elements.
-</p><p><b><code class="literal">ExtentList</code> Requirements. </b>
-<code class="literal">ExtentList</code> must model Collection.
-</p><p><b>Preconditions. </b><code class="literal">sizes.size() == NumDims;</code></p></dd><dt><span class="term">
+</p><p title="ExtentList Requirements"><b><code class="literal">ExtentList</code> Requirements. </b>
+<code class="literal">ExtentList</code> must model <a class="ulink" href="../../utility/Collection.html" target="_top">Collection</a>.
+</p><p title="Preconditions"><b>Preconditions. </b><code class="literal">sizes.size() == NumDims;</code></p></dd><dt><span class="term">
 <pre class="programlisting">explicit multi_array(extent_gen::gen_type&lt;NumDims&gt;::type ranges,
                      const storage_order_type&amp; store = c_storage_order(),
                      const Allocator&amp; alloc = Allocator());
@@ -736,34 +747,34 @@
 multi_array(const array_view&lt;NumDims&gt;::type&amp; x);
 </pre></span></dt><dd><p>These constructors all constructs a <code class="literal">multi_array</code> and
 perform a deep copy of <code class="literal">x</code>.
-</p><p><b>Complexity. </b> This performs O(<code class="literal">x.num_elements()</code>) calls to
+</p><p title="Complexity"><b>Complexity. </b> This performs O(<code class="literal">x.num_elements()</code>) calls to
 <code class="literal">element</code>'s copy
 constructor.
 </p></dd><dt><span class="term"><pre class="programlisting">
 multi_array();
 </pre></span></dt><dd><p>This constructs a <code class="literal">multi_array</code> whose shape is (0,...,0) and contains no elements.
-</p></dd></dl></div><p><b>Note on Constructors. </b>
+</p></dd></dl></div><p title="Note on Constructors"><b>Note on Constructors. </b>
 The <code class="literal">multi_array</code> construction expressions,
 </p><pre class="programlisting">
      multi_array&lt;int,3&gt; A(boost::extents[5][4][3]);
-</pre><p>
+</pre><p title="Note on Constructors">
 and
 </p><pre class="programlisting">
      boost::array&lt;multi_array_base::index,3&gt; my_extents = {{5, 4, 3}};
      multi_array&lt;int,3&gt; A(my_extents);
-</pre><p>
+</pre><p title="Note on Constructors">
 are equivalent.
-</p><p><b>Modifiers. </b></p><div class="variablelist"><dl><dt><span class="term"><pre class="programlisting">
+</p><p title="Modifiers"><b>Modifiers. </b></p><div class="variablelist"><dl><dt><span class="term"><pre class="programlisting">
 multi_array&amp; operator=(const multi_array&amp; x);
 template &lt;class Array&gt; multi_array&amp; operator=(const Array&amp; x);
 </pre>
 </span></dt><dd><p>This performs an element-wise copy of <code class="literal">x</code>
-into the current <code class="literal">multi_array</code>.</p><p><b><code class="literal">Array</code> Requirements. </b><code class="literal">Array</code> must model MultiArray.
-</p><p><b>Preconditions. </b>
+into the current <code class="literal">multi_array</code>.</p><p title="Array Requirements"><b><code class="literal">Array</code> Requirements. </b><code class="literal">Array</code> must model MultiArray.
+</p><p title="Preconditions"><b>Preconditions. </b>
 </p><pre class="programlisting">std::equal(this-&gt;shape(),this-&gt;shape()+this-&gt;num_dimensions(),
-x.shape());</pre><p><b>Postconditions. </b>
-</p><pre class="programlisting">(*.this) == x;</pre><p>
-</p><p><b>Complexity. </b>The assignment operators perform
+x.shape());</pre><p title="Postconditions"><b>Postconditions. </b>
+</p><pre class="programlisting">(*.this) == x;</pre><p title="Postconditions">
+</p><p title="Complexity"><b>Complexity. </b>The assignment operators perform
 O(<code class="literal">x.num_elements()</code>) calls to <code class="literal">element</code>'s
 copy constructor.</p></dd><dt><span class="term">
 <pre class="programlisting">
@@ -774,8 +785,8 @@
 </span></dt><dd><p>This copies the elements in the range
 <code class="literal">[begin,end)</code> into the array. It is equivalent to
 <code class="literal">std::copy(begin,end,this-&gt;data())</code>.
-</p><p><b>Preconditions. </b><code class="literal">std::distance(begin,end) == this-&gt;num_elements();</code>
-</p><p><b>Complexity. </b>
+</p><p title="Preconditions"><b>Preconditions. </b><code class="literal">std::distance(begin,end) == this-&gt;num_elements();</code>
+</p><p title="Complexity"><b>Complexity. </b>
 The <code class="literal">assign</code> member function performs
 O(<code class="literal">this-&gt;num_elements()</code>) calls to
 <code class="literal">ValueType</code>'s copy constructor.
@@ -792,25 +803,25 @@
 array size is smaller, then some data will be lost. Any new elements
 created by resizing the array are initialized with the
 <code class="literal">element</code> default constructor.
-</p></dd></dl></div><p><b>Queries. </b></p><div class="variablelist"><dl><dt><span class="term"><pre class="programlisting">
+</p></dd></dl></div><p title="Queries"><b>Queries. </b></p><div class="variablelist"><dl><dt><span class="term"><pre class="programlisting">
 storage_order_type&amp; storage_order() const;
 </pre>
 </span></dt><dd><p>This query returns the storage order object associated with the
-<code class="literal">multi_array</code> in question. It can be used to construct a new array with the same storage order.</p></dd></dl></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="multi_array_ref"></a><code class="literal">multi_array_ref</code></h3></div></div></div><p>
+<code class="literal">multi_array</code> in question. It can be used to construct a new array with the same storage order.</p></dd></dl></div></div><div class="sect2" title="multi_array_ref"><div class="titlepage"><div><div><h3 class="title"><a name="multi_array_ref"></a><code class="literal">multi_array_ref</code></h3></div></div></div><p>
 <code class="literal">multi_array_ref</code> is a multi-dimensional container
 adaptor. It provides the MultiArray interface over any contiguous
 block of elements. <code class="literal">multi_array_ref</code> exports the
 same interface as <code class="literal">multi_array</code>, with the exception
 of the constructors.
-</p><p><b>Model Of. </b>
+</p><p title="Model Of."><b>Model Of. </b>
 <code class="literal">multi_array_ref</code> models
-MultiArray,
-CopyConstructible.
+<a class="link" href="#MultiArray" title="MultiArray Concept">MultiArray</a>,
+<a class="ulink" href="../../../libs/utility/CopyConstructible.html" target="_top">CopyConstructible</a>.
 and depending on the element type, it may also model
-EqualityComparable and LessThanComparable.
+<a class="ulink" href="http://www.sgi.com/tech/stl/EqualityComparable.html" target="_top">EqualityComparable</a> and <a class="ulink" href="http://www.sgi.com/tech/stl/LessThanComparable.html" target="_top">LessThanComparable</a>.
 Detailed descriptions are provided here only for operations that are
 not described in the <code class="literal">multi_array</code> reference.
-</p><p><b>Synopsis. </b></p><pre class="programlisting">
+</p><p title="Synopsis"><b>Synopsis. </b></p><pre class="programlisting">
 
 namespace boost {
 
@@ -843,7 +854,10 @@
   template &lt;std::size_t Dims&gt; struct const_array_view;
   
 
- // structors
+ static const std::size_t dimensionality = NumDims;
+
+
+ // constructors and destructors
 
   template &lt;typename ExtentList&gt;
   explicit multi_array_ref(element* data, const ExtentList&amp; sizes,
@@ -910,7 +924,7 @@
   void reindex(index value);
 };
 
-</pre><p><b>Constructors. </b></p><div class="variablelist"><dl><dt><span class="term"><pre class="programlisting">template &lt;typename ExtentList&gt;
+</pre><p title="Constructors"><b>Constructors. </b></p><div class="variablelist"><dl><dt><span class="term"><pre class="programlisting">template &lt;typename ExtentList&gt;
 explicit multi_array_ref(element* data,
                      const ExtentList&amp; sizes,
                      const storage_order&amp; store = c_storage_order(),
@@ -922,9 +936,9 @@
 specifies the storage order or layout in memory of the array
 dimensions. <code class="literal">alloc</code> is used to
 allocate the contained elements.
-</p><p><b><code class="literal">ExtentList</code> Requirements. </b>
-<code class="literal">ExtentList</code> must model Collection.
-</p><p><b>Preconditions. </b><code class="literal">sizes.size() == NumDims;</code></p></dd><dt><span class="term">
+</p><p title="ExtentList Requirements"><b><code class="literal">ExtentList</code> Requirements. </b>
+<code class="literal">ExtentList</code> must model <a class="ulink" href="../../utility/Collection.html" target="_top">Collection</a>.
+</p><p title="Preconditions"><b>Preconditions. </b><code class="literal">sizes.size() == NumDims;</code></p></dd><dt><span class="term">
 <pre class="programlisting">explicit multi_array_ref(element* data,
                      extent_gen::gen_type&lt;NumDims&gt;::type ranges,
                      const storage_order&amp; store = c_storage_order());
@@ -939,36 +953,36 @@
 </p></dd><dt><span class="term"><pre class="programlisting">
 multi_array_ref(const multi_array_ref&amp; x);
 </pre></span></dt><dd><p>This constructs a shallow copy of <code class="literal">x</code>.
-</p><p><b>Complexity. </b> Constant time (for contrast, compare this to
+</p><p title="Complexity"><b>Complexity. </b> Constant time (for contrast, compare this to
 the <code class="literal">multi_array</code> class copy constructor.
-</p></dd></dl></div><p><b>Modifiers. </b></p><div class="variablelist"><dl><dt><span class="term"><pre class="programlisting">
+</p></dd></dl></div><p title="Modifiers"><b>Modifiers. </b></p><div class="variablelist"><dl><dt><span class="term"><pre class="programlisting">
 multi_array_ref&amp; operator=(const multi_array_ref&amp; x);
 template &lt;class Array&gt; multi_array_ref&amp; operator=(const Array&amp; x);
 </pre>
 </span></dt><dd><p>This performs an element-wise copy of <code class="literal">x</code>
-into the current <code class="literal">multi_array_ref</code>.</p><p><b><code class="literal">Array</code> Requirements. </b><code class="literal">Array</code> must model MultiArray.
-</p><p><b>Preconditions. </b>
+into the current <code class="literal">multi_array_ref</code>.</p><p title="Array Requirements"><b><code class="literal">Array</code> Requirements. </b><code class="literal">Array</code> must model MultiArray.
+</p><p title="Preconditions"><b>Preconditions. </b>
 </p><pre class="programlisting">std::equal(this-&gt;shape(),this-&gt;shape()+this-&gt;num_dimensions(),
-x.shape());</pre><p><b>Postconditions. </b>
-</p><pre class="programlisting">(*.this) == x;</pre><p>
-</p><p><b>Complexity. </b>The assignment operators perform
+x.shape());</pre><p title="Postconditions"><b>Postconditions. </b>
+</p><pre class="programlisting">(*.this) == x;</pre><p title="Postconditions">
+</p><p title="Complexity"><b>Complexity. </b>The assignment operators perform
 O(<code class="literal">x.num_elements()</code>) calls to <code class="literal">element</code>'s
-copy constructor.</p></dd></dl></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="const_multi_array_ref"></a><code class="literal">const_multi_array_ref</code></h3></div></div></div><p>
+copy constructor.</p></dd></dl></div></div><div class="sect2" title="const_multi_array_ref"><div class="titlepage"><div><div><h3 class="title"><a name="const_multi_array_ref"></a><code class="literal">const_multi_array_ref</code></h3></div></div></div><p>
 <code class="literal">const_multi_array_ref</code> is a multi-dimensional container
 adaptor. It provides the MultiArray interface over any contiguous
 block of elements. <code class="literal">const_multi_array_ref</code> exports the
 same interface as <code class="literal">multi_array</code>, with the exception
 of the constructors.
-</p><p><b>Model Of. </b>
+</p><p title="Model Of."><b>Model Of. </b>
 <code class="literal">const_multi_array_ref</code> models
-MultiArray,
-CopyConstructible.
+<a class="link" href="#MultiArray" title="MultiArray Concept">MultiArray</a>,
+<a class="ulink" href="../../../libs/utility/CopyConstructible.html" target="_top">CopyConstructible</a>.
 and depending on the element type, it may also model
-EqualityComparable and LessThanComparable.
+<a class="ulink" href="http://www.sgi.com/tech/stl/EqualityComparable.html" target="_top">EqualityComparable</a> and <a class="ulink" href="http://www.sgi.com/tech/stl/LessThanComparable.html" target="_top">LessThanComparable</a>.
 
 Detailed descriptions are provided here only for operations that are
 not described in the <code class="literal">multi_array</code> reference.
-</p><p><b>Synopsis. </b></p><pre class="programlisting">
+</p><p title="Synopsis"><b>Synopsis. </b></p><pre class="programlisting">
 
 namespace boost {
 
@@ -1054,7 +1068,7 @@
   void reindex(index value);
 };
 
-</pre><p><b>Constructors. </b></p><div class="variablelist"><dl><dt><span class="term"><pre class="programlisting">template &lt;typename ExtentList&gt;
+</pre><p title="Constructors"><b>Constructors. </b></p><div class="variablelist"><dl><dt><span class="term"><pre class="programlisting">template &lt;typename ExtentList&gt;
 explicit const_multi_array_ref(TPtr data,
                      const ExtentList&amp; sizes,
                      const storage_order&amp; store = c_storage_order());
@@ -1064,13 +1078,13 @@
 constructed <code class="literal">const_multi_array_ref</code>. <code class="literal">store</code>
 specifies the storage order or layout in memory of the array
 dimensions.
-</p><p><b><code class="literal">ExtentList</code> Requirements. </b>
-<code class="literal">ExtentList</code> must model Collection.
-</p><p><b>Preconditions. </b><code class="literal">sizes.size() == NumDims;</code></p></dd><dt><span class="term">
+</p><p title="ExtentList Requirements"><b><code class="literal">ExtentList</code> Requirements. </b>
+<code class="literal">ExtentList</code> must model <a class="ulink" href="../../utility/Collection.html" target="_top">Collection</a>.
+</p><p title="Preconditions"><b>Preconditions. </b><code class="literal">sizes.size() == NumDims;</code></p></dd><dt><span class="term">
 <pre class="programlisting">explicit const_multi_array_ref(TPtr data,
                      extent_gen::gen_type&lt;NumDims&gt;::type ranges,
                      const storage_order&amp; store = c_storage_order());
-</pre></span></dt><dd><p><b>Effects. </b>
+</pre></span></dt><dd><p title="Effects"><b>Effects. </b>
 This constructs a <code class="literal">const_multi_array_ref</code> using the specified
     parameters. <code class="literal">ranges</code> specifies the shape and
 index bases of the constructed const_multi_array_ref. It is the result of
@@ -1080,8 +1094,8 @@
 dimensions.
 </p></dd><dt><span class="term"><pre class="programlisting">
 const_multi_array_ref(const const_multi_array_ref&amp; x);
-</pre></span></dt><dd><p><b>Effects. </b>This constructs a shallow copy of <code class="literal">x</code>.
-</p></dd></dl></div></div></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="auxiliary"></a>Auxiliary Components</h2></div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="multi_array_types"></a><code class="literal">multi_array_types</code></h3></div></div></div><pre class="programlisting">
+</pre></span></dt><dd><p title="Effects"><b>Effects. </b>This constructs a shallow copy of <code class="literal">x</code>.
+</p></dd></dl></div></div></div><div class="sect1" title="Auxiliary Components"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="auxiliary"></a>Auxiliary Components</h2></div></div></div><div class="sect2" title="multi_array_types"><div class="titlepage"><div><div><h3 class="title"><a name="multi_array_types"></a><code class="literal">multi_array_types</code></h3></div></div></div><pre class="programlisting">
 namespace multi_array_types {
   typedef *unspecified* index;
   typedef *unspecified* size_type;
@@ -1103,14 +1117,14 @@
 same name required by MultiArray and are described in its
 concept definition. <code class="literal">extent_gen</code> and
 <code class="literal">extent_range</code> are described below.
-</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="extent_range"></a><code class="classname">extent_range</code></h3></div></div></div><p><code class="classname">extent_range</code> objects define half open
+</p></div><div class="sect2" title="extent_range"><div class="titlepage"><div><div><h3 class="title"><a name="extent_range"></a><code class="classname">extent_range</code></h3></div></div></div><p><code class="classname">extent_range</code> objects define half open
 intervals. They provide shape and index base information to
 <code class="literal">multi_array</code>, <code class="literal">multi_array_ref</code>,
  and <code class="literal">const_multi_array_ref</code> constructors.
 <code class="classname">extent_range</code>s are passed in
 aggregate to an array constructor (see
 <code class="classname">extent_gen</code> for more details).
-</p><p><b>Synopsis. </b></p><pre class="programlisting">
+</p><p title="Synopsis"><b>Synopsis. </b></p><pre class="programlisting">
 class extent_range {
 public:
   typedef multi_array_types::index index;
@@ -1125,14 +1139,14 @@
   index start();
   index finish();
   size_type size();
-};</pre><p><b>Model Of. </b>DefaultConstructible,CopyConstructible</p><p><b>Methods and Types. </b></p><div class="variablelist"><dl><dt><span class="term"><code class="function">extent_range(index start, index finish)</code></span></dt><dd><p> This constructor defines the half open interval
+};</pre><p title="Model Of"><b>Model Of. </b>DefaultConstructible,CopyConstructible</p><p title="Methods and Types"><b>Methods and Types. </b></p><div class="variablelist"><dl><dt><span class="term"><code class="function">extent_range(index start, index finish)</code></span></dt><dd><p> This constructor defines the half open interval
 <code class="literal">[start,finish)</code>. The expression
 <code class="literal">finish</code> must be greater than <code class="literal">start</code>.
 </p></dd><dt><span class="term"><code class="function">extent_range(index finish)</code></span></dt><dd><p>This constructor defines the half open interval
 <code class="literal">[0,finish)</code>. The value of <code class="literal">finish</code>
 must be positive.</p></dd><dt><span class="term"><code class="function">index start()</code></span></dt><dd><p>This function returns the first index represented by the range</p></dd><dt><span class="term"><code class="function">index finish()</code></span></dt><dd><p>This function returns the upper boundary value of the half-open
 interval. Note that the range does not include this value.</p></dd><dt><span class="term"><code class="function">size_type size()</code></span></dt><dd><p>This function returns the size of the specified range. It is
-equivalent to <code class="literal">finish()-start()</code>.</p></dd></dl></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="extent_gen"></a><code class="classname">extent_gen</code></h3></div></div></div><p>The <code class="classname">extent_gen</code> class defines an
+equivalent to <code class="literal">finish()-start()</code>.</p></dd></dl></div></div><div class="sect2" title="extent_gen"><div class="titlepage"><div><div><h3 class="title"><a name="extent_gen"></a><code class="classname">extent_gen</code></h3></div></div></div><p>The <code class="classname">extent_gen</code> class defines an
 interface for aggregating array shape and indexing information to be
 passed to a <code class="literal">multi_array</code>,
 <code class="literal">multi_array_ref</code>, or <code class="literal">const_multi_array_ref</code>
@@ -1144,7 +1158,7 @@
 </p><pre class="programlisting">int A[3][4][5],</pre><p>
 a similar <code class="classname">multi_array</code> would be declared:
 </p><pre class="programlisting">multi_array&lt;int,3&gt; A(extents[3][4][5]).</pre><p>
-</p><p><b>Synopsis. </b></p><pre class="programlisting">
+</p><p title="Synopsis"><b>Synopsis. </b></p><pre class="programlisting">
 template &lt;std::size_t NumRanges&gt;
 class *implementation_defined* {
 public:
@@ -1158,7 +1172,7 @@
 };
 
 typedef *implementation_defined*&lt;0&gt; extent_gen;
-</pre><p><b>Methods and Types. </b></p><div class="variablelist"><dl><dt><span class="term"><code class="function">template gen_type&lt;Ranges&gt;::type</code></span></dt><dd><p>This type generator is used to specify the result of
+</pre><p title="Methods and Types"><b>Methods and Types. </b></p><div class="variablelist"><dl><dt><span class="term"><code class="function">template gen_type&lt;Ranges&gt;::type</code></span></dt><dd><p>This type generator is used to specify the result of
 <code class="literal">Ranges</code> chained calls to
 <code class="literal">extent_gen::operator[].</code> The types
 <code class="classname">extent_gen</code> and
@@ -1172,7 +1186,7 @@
 <code class="classname">extent_range</code> objects in addition to
 <code class="literal">extent_range(0,idx).</code> This function gives the array
 constructors a similar syntax to traditional C multidimensional array
-declaration.</p></dd></dl></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id862830"></a>Global Objects</h3></div></div></div><p>For syntactic convenience, Boost.MultiArray defines two
+declaration.</p></dd></dl></div></div><div class="sect2" title="Global Objects"><div class="titlepage"><div><div><h3 class="title"><a name="idp19487120"></a>Global Objects</h3></div></div></div><p>For syntactic convenience, Boost.MultiArray defines two
 global objects as part of its
 interface. These objects play the role of object generators;
 expressions involving them create other objects of interest.
@@ -1180,7 +1194,7 @@
 considered excessive overhead. Their construction can be prevented by
 defining the preprocessor symbol
 <code class="literal">BOOST_MULTI_ARRAY_NO_GENERATORS</code> before including
-<code class="filename">boost/multi_array.hpp.</code></p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="extents"></a><code class="literal">extents</code></h4></div></div></div><pre class="programlisting">
+<code class="filename">boost/multi_array.hpp.</code></p><div class="sect3" title="extents"><div class="titlepage"><div><div><h4 class="title"><a name="extents"></a><code class="literal">extents</code></h4></div></div></div><pre class="programlisting">
 namespace boost {
   multi_array_base::extent_gen extents;
 }
@@ -1192,7 +1206,7 @@
 </p><pre class="programlisting">multi_array&lt;int,3&gt; A(extents[3][3][3]);</pre><p>
 The same array could also be created by explicitly declaring an <code class="literal">extent_gen</code>
 object locally,, but the global object makes this declaration unnecessary.
-</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="indices"></a><code class="literal">indices</code></h4></div></div></div><pre class="programlisting">
+</p></div><div class="sect3" title="indices"><div class="titlepage"><div><div><h4 class="title"><a name="indices"></a><code class="literal">indices</code></h4></div></div></div><pre class="programlisting">
 namespace boost {
   multi_array_base::index_gen indices;
 }
@@ -1207,7 +1221,7 @@
 </p><pre class="programlisting">
 A[indices[index_range(0,5)][2][index_range(2,4)]];
 </pre><p>
-</p></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="generators"></a>View and SubArray Generators</h3></div></div></div><p>
+</p></div></div><div class="sect2" title="View and SubArray Generators"><div class="titlepage"><div><div><h3 class="title"><a name="generators"></a>View and SubArray Generators</h3></div></div></div><p>
 Boost.MultiArray provides traits classes, <code class="literal">subarray_gen</code>,
 <code class="literal">const_subarray_gen</code>,
 <code class="literal">array_view_gen</code>,
@@ -1233,7 +1247,7 @@
 
 In the above example, <code class="literal">view1_t</code> and
 <code class="literal">view2_t</code> have the same type.
-</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="memory_layout"></a>Memory Layout Specifiers</h3></div></div></div><p>
+</p></div><div class="sect2" title="Memory Layout Specifiers"><div class="titlepage"><div><div><h3 class="title"><a name="memory_layout"></a>Memory Layout Specifiers</h3></div></div></div><p>
 While a multidimensional array represents a hierarchy of containers of
 elements, at some point the elements must be laid out in
 memory. As a result, a single multidimensional array
@@ -1321,7 +1335,7 @@
 manipulated naturally at both the C++ and Fortran levels. The
 following sections describe the Boost.MultiArray components used to
 specify memory layout.
-</p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="c_storage_order"></a><code class="literal">c_storage_order</code></h4></div></div></div><pre class="programlisting">
+</p><div class="sect3" title="c_storage_order"><div class="titlepage"><div><div><h4 class="title"><a name="c_storage_order"></a><code class="literal">c_storage_order</code></h4></div></div></div><pre class="programlisting">
 class c_storage_order {
   c_storage_order();
 };
@@ -1329,14 +1343,14 @@
 array should store its elements using the same layout as that used by
 primitive C++ multidimensional arrays, that is, from last dimension
 to first. This is the default storage order for the arrays provided by
-this library.</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="fortran_storage_order"></a><code class="literal">fortran_storage_order</code></h4></div></div></div><pre class="programlisting">
+this library.</p></div><div class="sect3" title="fortran_storage_order"><div class="titlepage"><div><div><h4 class="title"><a name="fortran_storage_order"></a><code class="literal">fortran_storage_order</code></h4></div></div></div><pre class="programlisting">
 class fortran_storage_order {
   fortran_storage_order();
 };
 </pre><p><code class="literal">fortran_storage_order</code> is used to specify that
 an array should store its elements using the same memory layout as a
 Fortran multidimensional array would, that is, from first dimension to
-last.</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="general_storage_order"></a><code class="literal">general_storage_order</code></h4></div></div></div><pre class="programlisting">
+last.</p></div><div class="sect3" title="general_storage_order"><div class="titlepage"><div><div><h4 class="title"><a name="general_storage_order"></a><code class="literal">general_storage_order</code></h4></div></div></div><pre class="programlisting">
 template &lt;std::size_t NumDims&gt;
 class general_storage_order {
 
@@ -1356,7 +1370,7 @@
 order while <code class="literal">false</code> means that a dimension is stored
 in descending order. <code class="literal">OrderingIter</code> specifies the
 order in which dimensions are stored.
-</p></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="range_checking"></a>Range Checking</h3></div></div></div><p>
+</p></div></div><div class="sect2" title="Range Checking"><div class="titlepage"><div><div><h3 class="title"><a name="range_checking"></a>Range Checking</h3></div></div></div><p>
 By default, the array access methods <code class="literal">operator()</code> and
 <code class="literal">operator[]</code> perform range
 checking. If a supplied index is out of the range defined for an

Modified: branches/quickbook-dev/libs/multi_array/doc/xml/MultiArray.xml
==============================================================================
--- branches/quickbook-dev/libs/multi_array/doc/xml/MultiArray.xml (original)
+++ branches/quickbook-dev/libs/multi_array/doc/xml/MultiArray.xml 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -248,15 +248,17 @@
 <entry>
 This is an iterator over the values of <literal>A</literal>.
 If <literal>NumDims == 1</literal>, then it models
-<ulink url="http://www.sgi.com/tech/stl/RandomAccessIterator.html">
+<ulink url="http://www.boost.org/doc/html/RandomAccessIterator.html">
 <literal>Random Access Iterator</literal></ulink>.
 Otherwise it models
 <ulink url="./iterator_categories.html#concept_RandomAccessTraversalIterator">
 Random Access Traversal Iterator</ulink>,
 <ulink url="./iterator_categories.html#concept_ReadableIterator">
-Readable Iterator</ulink>, and
+Readable Iterator</ulink>,
 <ulink url="./iterator_categories.html#concept_WritableIterator">
-Writable Iterator</ulink>.
+Writable Iterator</ulink>, and
+<ulink url="http://www.boost.org/doc/html/OutputIterator.html">
+<literal>Output Iterator</literal></ulink>.
 </entry>
 </row>
 

Modified: branches/quickbook-dev/libs/multi_array/doc/xml/multi_array.xml
==============================================================================
--- branches/quickbook-dev/libs/multi_array/doc/xml/multi_array.xml (original)
+++ branches/quickbook-dev/libs/multi_array/doc/xml/multi_array.xml 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -51,7 +51,7 @@
   typedef multi_array_types::extent_gen extent_gen;
   typedef multi_array_types::extent_range extent_range;
   typedef *unspecified* storage_order_type;
-
+
 
   // template typedefs
   template <std::size_t Dims> struct subarray;
@@ -60,6 +60,9 @@
   template <std::size_t Dims> struct const_array_view;
   
 
+ static const std::size_t dimensionality = NumDims;
+
+
   // constructors and destructors
 
   multi_array();

Modified: branches/quickbook-dev/libs/multi_array/doc/xml/multi_array_ref.xml
==============================================================================
--- branches/quickbook-dev/libs/multi_array/doc/xml/multi_array_ref.xml (original)
+++ branches/quickbook-dev/libs/multi_array/doc/xml/multi_array_ref.xml 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -59,7 +59,10 @@
   template <std::size_t Dims> struct const_array_view;
   
 
- // structors
+ static const std::size_t dimensionality = NumDims;
+
+
+ // constructors and destructors
 
   template <typename ExtentList>
   explicit multi_array_ref(element* data, const ExtentList& sizes,

Modified: branches/quickbook-dev/libs/proto/doc/acknowledgements.qbk
==============================================================================
--- branches/quickbook-dev/libs/proto/doc/acknowledgements.qbk (original)
+++ branches/quickbook-dev/libs/proto/doc/acknowledgements.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -7,22 +7,17 @@
 
 [section:acknowledgements Appendix E: Acknowledgements]
 
-I'd like to thank Joel de Guzman and Hartmut Kaiser for being willing to take a
-chance on using Proto for their work on Spirit-2 and Karma when Proto was
-little more than a vision. Their requirements and feedback have been
-indespensable.
-
-Thanks to Daniel James for providing a patch to remove the dependence on
-deprecated configuration macros for C++0x features.
-
-Thanks to Dave Abrahams for an especially detailed review, and for making a
-VM with msvc-7.1 available so I could track down portability issues on that
-compiler.
-
-Many thanks to Daniel Wallin who first implemented the code used to find the
-common domain among a set, accounting for super- and sub-domains. Thanks also
-to Jeremiah Willcock, John Bytheway and Krishna Achuthan who offered alternate
-solutions to this tricky programming problem.
+I'd like to thank Joel de Guzman and Hartmut Kaiser for being willing to take a chance on using Proto for their work on Spirit-2 and Karma when Proto was little more than a vision. Their requirements and feedback have been indespensable.
+
+Thanks also to Thomas Heller and again to Hartmut for their feedback and suggestions during the redesign of Phoenix. That effort yielded several valuable advanced features such as sub-domains, external transforms, and per-domain `as_child` customization.
+
+Thanks to Daniel James for providing a patch to remove the dependence on deprecated configuration macros for C++0x features.
+
+Thanks to Joel Falcou and Christophe Henry for their enthusiasm, support, feedback, and humor; and for volunteering to be Proto's co-maintainers.
+
+Thanks to Dave Abrahams for an especially detailed review, and for making a VM with msvc-7.1 available so I could track down portability issues on that compiler.
+
+Many thanks to Daniel Wallin who first implemented the code used to find the common domain among a set, accounting for super- and sub-domains. Thanks also to Jeremiah Willcock, John Bytheway and Krishna Achuthan who offered alternate solutions to this tricky programming problem.
 
 Thanks also to the developers of _PETE_. I found many good ideas there.
 

Modified: branches/quickbook-dev/libs/proto/doc/back_end.qbk
==============================================================================
--- branches/quickbook-dev/libs/proto/doc/back_end.qbk (original)
+++ branches/quickbook-dev/libs/proto/doc/back_end.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1164,9 +1164,9 @@
 
 [note This is an advanced topic that is only necessary for people defining large EDSLs. Feel free to skip this if you're just getting started with Proto.]
 
-So far, we've seen examples of grammars with embedded transforms. In practice, grammars can get pretty large, and you may want to use them to drive several different computations. For instance, you may have a grammar for a linear algebra domain, and you may want to use it to compute the shape of the result (vector or matrix?) and also to compute the result optimally. You don't want to have to copy and paste the whole shebang just to tweak one of the embedded transforms. What you want instead is to define the grammar once, and specify the transforms later when you're ready to evaluate an expression. For that, you use /external transforms/.
+So far, we've seen examples of grammars with embedded transforms. In practice, grammars can get pretty large, and you may want to use them to drive several different computations. For instance, you may have a grammar for a linear algebra domain, and you may want to use it to compute the shape of the result (vector or matrix?) and also to compute the result optimally. You don't want to have to copy and paste the whole shebang just to tweak one of the embedded transforms. What you want instead is to define the grammar once, and specify the transforms later when you're ready to evaluate an expression. For that, you use /external transforms/. The pattern you'll use is this: replace one or more of the transforms in your grammar with the special placeholder _external_transform_. Then, you'll create a bundle of transforms that you will pass to the grammar in the data parameter (the 3rd parameter after the expression and state) when evaluating it.
 
-Let's begin this exercise by revisiting our old friend the calculator EDSL. Here is a bare-bones front end that defines a domain, a grammar, an expression wrapper, and some placeholder terminals.
+To illustrate external transforms, we'll build a calculator evaluator that can be configured to throw an exception on division by zero. Here is a bare-bones front end that defines a domain, a grammar, an expression wrapper, and some placeholder terminals.
 
     #include <boost/assert.hpp>
     #include <boost/mpl/int.hpp>
@@ -1248,9 +1248,9 @@
     int result = calc_grammar()(_1 + _2, fusion::make_vector(3, 4));
     BOOST_ASSERT(result == 7);
 
-Now, imagine we want an alternative evaluation strategy that checks for division by zero and throws an exception. Just how rediculous would it be to copy the entire `calc_grammar` just to change the one line that transforms division expressions?! There are a few ways to solve this problem. One would be to make `calc_grammar` a template parameterized on the division transform. Instead, let's use an external transform.
+We also want an alternative evaluation strategy that checks for division by zero and throws an exception. Just how ridiculous would it be to copy the entire `calc_grammar` just to change the one line that transforms division expressions?! External transforms are ideally suited to this problem.
 
-First, we give the division rule in our grammar a "name"; that is, we make it a struct. We'll use this type later to dispatch to the right transforms.
+First, we give the division rule in our grammar a "name"; that is, we make it a struct. We'll use this unique type later to dispatch to the right transforms.
 
     struct calc_grammar;
     struct divides_rule : proto::divides<calc_grammar, calc_grammar> {};
@@ -1269,9 +1269,9 @@
>
     {};
 
-The use of `proto::external_transform` above makes the handling of division expressions externally parameterizeable.
+The use of _external_transform_ above makes the handling of division expressions externally parameterizeable.
 
-Next, we use `proto::external_transforms<>` (note the trailing 's') to capture our evaluation strategy in a bundle that we can pass along to the transform in the data parameter. Read on for the explanation.
+Next, we use _external_transforms_ (note the trailing 's') to capture our evaluation strategy in a bundle that we can pass along to the transform in the data parameter. Read on for the explanation.
 
     // Evaluate division nodes as before
     struct non_checked_division
@@ -1322,7 +1322,7 @@
         std::cout << "caught division by zero!\n";
     }
 
-The above code demonstrates how a single grammar can be used with different transforms specified externally. This makes it possibly to reuse a grammar to drive several different computations.
+The above code demonstrates how a single grammar can be used with different transforms specified externally. This makes it possible to reuse a grammar to drive several different computations.
 
 [endsect]
 

Modified: branches/quickbook-dev/libs/proto/doc/front_end.qbk
==============================================================================
--- branches/quickbook-dev/libs/proto/doc/front_end.qbk (original)
+++ branches/quickbook-dev/libs/proto/doc/front_end.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -272,11 +272,18 @@
 
 [endsect]
 
-[/==============================================]
-[section Adding Members by Extending Expressions]
-[/==============================================]
-
-In this section, we'll see how to associate Proto expressions with a /domain/, how to add members to expressions within a domain, and how to control which operators are overloaded in a domain.
+[/=============================================]
+[section Customizing Expressions in Your Domain]
+[/=============================================]
+
+In this section, we'll learn all about /domains/. In particular, we'll learn:
+
+* How to associate Proto expressions with a domain,
+* How to add members to expressions within a domain,
+* How to use a /generator/ to post-process all new expressions created in your domain,
+* How to control which operators are overloaded in a domain,
+* How to specify capturing policies for child expressions and non-Proto objects, and
+* How to make expressions from separate domains interoperate.
 
 [/==============]
 [section Domains]
@@ -591,6 +598,255 @@
 
 [endsect]
 
+[/=========================================================================]
+[section:per_domain_as_child Controlling How Child Expressions Are Captured]
+[/=========================================================================]
+
+[note This is an advanced topic. Feel free to skip this if you're just getting started with Proto.]
+
+Proto's operator overloads build expressions from sub-expressions. The sub-expressions become children of the new expression. By default, the children are stored in the parent by reference. This section describes how to change that default.
+
+[/-----------------------------------------]
+[heading Primer: [^as_child] vs. [^as_expr]]
+[/-----------------------------------------]
+
+Proto lets you independently customize the behavior of _as_child_ and _as_expr_. Both accept an object [^x] and return a Proto expression by turning [^x] it into a Proto terminal if necessary. Although similar, the two functions are used in different situations and have subtly different behavior by default. It's important to understand the difference so that you know which to customize to achieve the behavior you want.
+
+To wit: _as_expr_ is typically used by /you/ to turn an object into a Proto expression that is to be held in a local variable, as so:
+
+ auto l = proto::as_expr(x); // Turn x into a Proto expression, hold the result in a local
+
+The above works regardless of whether `x` is already a Proto expression or not. The object `l` is guaranteed to be a valid Proto expression. If `x` is a non-Proto object, it is turned into a terminal expression that holds `x` /by value/.[footnote It's not always possible to hold something by value. By default, _as_expr_ makes an exception for functions, abstract types, and iostreams (types derived from `std::ios_base`). These objects are held by reference. All others are held by value, even arrays.] If `x` is a Proto object already, _as_expr_ returns it /by value/ unmodified.
+
+In contrast, _as_child_ is used internally by Proto to pre-process objects before making them children of another expression. Since it's internal to Proto, you don't see it explicitly, but it's there behind the scenes in expressions like this:
+
+ x + y; // Consider that y is a Proto expression, but x may or may not be.
+
+In this case, Proto builds a plus node from the two children. Both are pre-processed by passing them to _as_child_ before making them children of the new node. If `x` is not a Proto expression, it becomes one by being wrapped in a Proto terminal that holds it /by reference/. If `x` is already a Proto expression, _as_child_ returns it /by reference/ unmodified. Contrast this with the above description for _as_expr_.
+
+The table below summarizes the above description.
+
+[table proto::as_expr() vs. proto::as_child()
+[[[*Function]] [[*When [^t] is not a Proto expr...]] [[*When [^t] is a Proto expr...]]]
+[[[^proto::as_expr(t)]] [Return (by value) a new Proto terminal holding [^t] by value.] [Return [^t] by value unmodified.]]
+[[[^proto::as_child(t)]] [Return (by value) a new Proto terminal holding [^t] by reference.] [Return [^t] by reference unmodified.]]
+]
+
+[note There is one important place where Proto uses both `as_expr` /and/ `as_child`: _make_expr_. The _make_expr_ function requires you to specify for each child whether it should be held by value or by reference. Proto uses _as_expr_ to pre-process the children to be held by value, and _as_child_ for the ones to be held by reference.]
+
+Now that you know what _as_child_ and _as_expr_ are, where they are used, and what they do by default, you may decide that one or both of these functions should have different behavior for your domain. For instance, given the above description of _as_child_, the following code is always wrong:
+
+ proto::literal<int> i(0);
+ auto l = i + 42; // This is WRONG! Don't do this.
+
+Why is this wrong? Because _as_child_ will turn the integer literal 42 into a Proto terminal that holds a reference to a temporary integer initialized with 42. The lifetime of that temporary ends at the semicolon, guaranteeing that the local `l` is left holding a dangling reference to a deceased integer. What to do? One answer is to use _deep_copy_. Another is to customize the behavior of _as_child_ for your domain. Read on for the details.
+
+[/-----------------------------]
+[heading Per-Domain [^as_child]]
+[/-----------------------------]
+
+To control how Proto builds expressions out of sub-expressions in your domain, define your domain as usual, and then define a nested `as_child<>` class template within it, as follows:
+
+[def __unspecified_expression_type__ ['[^unspecified-Proto-expr-type]]]
+[def __unspecified_expression__ ['[^unspecified-Proto-expr-object]]]
+
+ class my_domain
+ : proto::domain< my_generator, my_grammar >
+ {
+ // Here is where you define how Proto should handle
+ // sub-expressions that are about to be glommed into
+ // a larger expression.
+ template< typename T >
+ struct as_child
+ {
+ typedef __unspecified_expression_type__ result_type;
+
+ result_type operator()( T & t ) const
+ {
+ return __unspecified_expression__;
+ }
+ };
+ };
+
+There's one important thing to note: in the above code, the template parameter [^T] may or may not be a Proto expression type, but the result /must/ be a Proto expression type, or a reference to one. That means that most user-defined [^as_child<>] templates will need to check whether [^T] is an expression or not (using _is_expr_), and then turn non-expressions into Proto terminals by wrapping them as `proto::terminal< /* ... */ >::type` or equivalent.
+
+[/----------------------------]
+[heading Per-Domain [^as_expr]]
+[/----------------------------]
+
+Although less common, Proto also lets you customize the behavior of _as_expr_ on a per-domain basis. The technique is identical to that for [^as_child]. See below:
+
+ class my_domain
+ : proto::domain< my_generator, my_grammar >
+ {
+ // Here is where you define how Proto should handle
+ // objects that are to be turned into expressions
+ // fit for storage in local variables.
+ template< typename T >
+ struct as_expr
+ {
+ typedef __unspecified_expression_type__ result_type;
+
+ result_type operator()( T & t ) const
+ {
+ return __unspecified_expression__;
+ }
+ };
+ };
+
+
+[/--------------------------------------------]
+[heading Making Proto Expressions [^auto]-safe]
+[/--------------------------------------------]
+
+Let's look again at the problem described above involving the C++11 `auto` keyword and the default behavior of _as_child_.
+
+ proto::literal<int> i(0);
+ auto l = i + 42; // This is WRONG! Don't do this.
+
+Recall that the problem is the lifetime of the temporary integer created to hold the value 42. The local `l` will be left holding a dangling reference to it after its lifetime is over. What if we want Proto to make expressions safe to store this way in local variables? We can do so very easily by making _as_child_ behave just like _as_expr_. The following code achieves this:
+
+ template< typename E >
+ struct my_expr;
+
+ struct my_generator
+ : proto::pod_generator< my_expr >
+ {};
+
+ struct my_domain
+ : proto::domain< my_generator >
+ {
+ // Make as_child() behave like as_expr() in my_domain.
+ // (proto_base_domain is a typedef for proto::domain< my_generator >
+ // that is defined in proto::domain<>.)
+ template< typename T >
+ struct as_child
+ : proto_base_domain::as_expr< T >
+ {};
+ };
+
+ template< typename E >
+ struct my_expr
+ {
+ BOOST_PROTO_EXTENDS( E, my_expr< E >, my_domain )
+ };
+
+ /* ... */
+
+ proto::literal< int, my_domain > i(0);
+ auto l = i + 42; // OK! Everything is stored by value here.
+
+Notice that `my_domain::as_child<>` simply defers to the default implementation of `as_expr<>` found in _domain_. By simply cross-wiring our domain's `as_child<>` to `as_expr<>`, we guarantee that all terminals that can be held by value are, and that all child expressions are also held by value. This increases copying and may incur a runtime performance cost, but it eliminates any spector of lifetime management issues.
+
+For another example, see the definition of `lldomain` in [^libs/proto/example/lambda.hpp]. That example is a complete reimplementation of the Boost Lambda Library (BLL) on top of Boost.Proto. The function objects the BLL generates are safe to be stored in local variables. To emulate this with Proto, the `lldomain` cross-wires `as_child<>` to `as_expr<>` as above, but with one extra twist: objects with array type are also stored by reference. Check it out.
+
+[endsect]
+
+[/======================================================]
+[section:subdomains EDSL Interoperatability: Sub-Domains]
+[/======================================================]
+
+[note This is an advanced topic. Feel free to skip this if you're just getting started with Proto.]
+
+The ability to /compose/ different EDSLs is one of their most exciting features. Consider how you build a parser using yacc. You write your grammar rules in yacc's domain-specific language. Then you embed semantic actions written in C within your grammar. Boost's Spirit parser generator gives you the same ability. You write grammar rules using Spirit.Qi and embed semantic actions using the Phoenix library. Phoenix and Spirit are both Proto-based domain-specific languages with their own distinct syntax and semantics. But you can freely embed Phoenix expressions within Spirit expressions. This section describes Proto's /sub-domain/ feature that lets you define families of interoperable domains.
+
+[/======================]
+[heading Dueling Domains]
+[/======================]
+
+When you try to create an expression from two sub-expressions in different domains, what is the domain of the resulting expression? This is the fundamental problem that is addressed by sub-domains. Consider the following code:
+
+ #include <boost/proto/proto.hpp>
+ namespace proto = boost::proto;
+
+ // Forward-declare two expression wrappers
+ template<typename E> struct spirit_expr;
+ template<typename E> struct phoenix_expr;
+
+ // Define two domains
+ struct spirit_domain : proto::domain<proto::generator<spirit_expr> > {};
+ struct phoenix_domain : proto::domain<proto::generator<phoenix_expr> > {};
+
+ // Implement the two expression wrappers
+ template<typename E>
+ struct spirit_expr
+ : proto::extends<E, spirit_expr<E>, spirit_domain>
+ {
+ spirit_expr(E const &e = E()) : spirit_expr::proto_extends(e) {}
+ };
+
+ template<typename E>
+ struct phoenix_expr
+ : proto::extends<E, phoenix_expr<E>, phoenix_domain>
+ {
+ phoenix_expr(E const &e = E()) : phoenix_expr::proto_extends(e) {}
+ };
+
+ int main()
+ {
+ proto::literal<int, spirit_domain> sp(0);
+ proto::literal<int, phoenix_domain> phx(0);
+
+ // Whoops! What does it mean to add two expressions in different domains?
+ sp + phx; // ERROR
+ }
+
+Above, we define two domains called `spirit_domain` and `phoenix_domain` and declare two int literals in each. Then we try to compose them into a larger expression using Proto's binary plus operator, and it fails. Proto can't figure out whether the resulting expression should be in the Spirit domain or the Phoenix domain, and thus whether it should be an instance of `spirit_expr<>` or `phoenix_expr<>`. We have to tell Proto how to resolve the conflict. We can do that by declaring that Phoenix is a sub-domain of Spirit as in the following definition of `phoenix_domain`:
+
+[def __spirit_domain__ [*spirit_domain]]
+
+ // Declare that phoenix_domain is a sub-domain of spirit_domain
+ struct phoenix_domain
+ : proto::domain<proto::generator<phoenix_expr>, proto::_, __spirit_domain__>
+ {};
+
+The third template parameter to _domain_ is the super-domain. By defining `phoenix_domain` as above, we are saying that Phoenix expressions can be combined with Spirit expressions, and that when that happens, the resulting expression should be a Spirit expression.
+
+[note If you are wondering what the purpose of `proto::_` is in the definition of `phoenix_domain` above, recall that the second template parameter to _domain_ is the domain's grammar. ["`proto::_`] is the default and signifies that the domain places no restrictions on the expressions that are valid within it.]
+
+[/------------------------]
+[heading Domain Resolution]
+[/------------------------]
+
+When there are multiple domains in play within a given expression, Proto uses some rules to figure out which domain "wins". The rules are loosely modeled on the rules for C++ inheritance. `Phoenix_domain` is a sub-domain of `spirit_domain`. You can liken that to a derived/base relationship that gives Phoenix expressions a kind of implicit conversion to Spirit expressions. And since Phoenix expressions can be "converted" to Spirit expressions, they can be freely combined with Spirit expressions and the result is a Spirit expression.
+
+[note Super- and sub-domains are not actually implemented using inheritance. This is only a helpful mental model.]
+
+The analogy with inheritance holds even in the case of three domains when two are sub-domains of the third. Imagine another domain called `foobar_domain` that was also a sub-domain of `spirit_domain`. Expressions in the `foobar_domain` could be combined with expressions in the `phoenix_domain` and the resulting expression would be in the `spirit_domain`. That's because expressions in the two sub-domains both have "conversions" to the super-domain, so the operation is allowed and the super-domain wins.
+
+[/-------------------------]
+[heading The Default Domain]
+[/-------------------------]
+
+When you don't assign a Proto expression to a particular domain, Proto considers it a member of the so-called default domain, `proto::default_domain`. Even non-Proto objects are treated as terminals in the default domain. Consider:
+
+ int main()
+ {
+ proto::literal<int, spirit_domain> sp(0);
+
+ // Add 1 to a spirit expression. Result is a spirit expression.
+ sp + 1;
+ }
+
+Expressions in the default domain (or non-expressions like [^1]) have a kind of implicit conversion to expressions every other domain type. What's more, you can define your domain to be a sub-domain of the default domain. In so doing, you give expressions in your domain conversions to expressions in every other domain. This is like a ["free love] domain, because it will freely mix with all other domains.
+
+Let's think again about the Phoenix EDSL. Since it provides generally useful lambda functionality, it's reasonable to assume that lots of other EDSLs besides Spirit might want the ability to embed Phoenix expressions. In other words, `phoenix_domain` should be a sub-domain of `proto::default_domain`, not `spirit_domain`:
+
+ // Declare that phoenix_domain is a sub-domain of proto::default_domain
+ struct phoenix_domain
+ : proto::domain<proto::generator<phoenix_expr>, proto::_, proto::default_domain>
+ {};
+
+That's much better. Phoenix expressions can now be put anywhere.
+
+[/-------------------------]
+[heading Sub-Domain Summary]
+[/-------------------------]
+
+Use Proto sub-domains to make it possible to mix expressions from multiple domains. And when you want expressions in your domain to freely combine with /all/ expressions, make it a sub-domain of `proto::default_domain`.
+
+[endsect]
+
 [endsect]
 
 [section:define_operators Adapting Existing Types to Proto]
@@ -732,105 +988,4 @@
 
 [endsect]
 
-[/======================================================]
-[section:subdomains EDSL Interoperatability: Sub-Domains]
-[/======================================================]
-
-The ability to /compose/ different EDSLs is one of their most exciting features. Consider how you build a parser using yacc. You write your grammar rules in yacc's domain-specific language. Then you embed semantic actions written in C within your grammar. Boost's Spirit parser generator gives you the same ability. You write grammar rules using Spirit and embed semantic actions using the Phoenix library. Phoenix and Spirit are both Proto-based domain-specific languages with their own distinct syntax and semantics. But you can freely embed Phoenix expressions within Spirit expressions. This section describes Proto's /sub-domain/ feature that lets you define famalies of interoperable domains.
-
-[/======================]
-[heading Dueling Domains]
-[/======================]
-
-Sub-domains solve a specific problem that only comes up when you try to create an expression from two sub-expressions in different domains: what is the domain of the resulting expression? Consider the following code:
-
- #include <boost/proto/proto.hpp>
- namespace proto = boost::proto;
-
- // Forward-declare two expression wrappers
- template<typename E> struct spirit_expr;
- template<typename E> struct phoenix_expr;
-
- // Define two domains
- struct spirit_domain : proto::domain<proto::generator<spirit_expr> > {};
- struct phoenix_domain : proto::domain<proto::generator<phoenix_expr> > {};
-
- // Implement the two expresison wrappers
- template<typename E>
- struct spirit_expr
- : proto::extends<E, spirit_expr<E>, spirit_domain>
- {
- spirit_expr(E const &e = E()) : spirit_expr::proto_extends(e) {}
- };
-
- template<typename E>
- struct phoenix_expr
- : proto::extends<E, phoenix_expr<E>, phoenix_domain>
- {
- phoenix_expr(E const &e = E()) : phoenix_expr::proto_extends(e) {}
- };
-
- int main()
- {
- proto::literal<int, spirit_domain> sp(0);
- proto::literal<int, phoenix_domain> phx(0);
-
- // Whoops! What does it mean to add two expression in different domains?
- sp + phx; // ERROR
- }
-
-Above, we define two domains called `spirit_domain` and `phoenix_domain` and declare two int literals in each. Then we try to compose them into a larger expression using Proto's binary plus operator, and it fails. Proto can't figure out whether the resulting expression should be in the Spirit domain or the Phoenix domain, and thus whether it should be an instance of `spirit_expr<>` or `pheonix_expr<>`. We have to tell Proto how to resolve the conflict. We can do that by declaring that Phoenix is a sub-domain of Spirit as in the following definition of `phoenix_domain`:
-
- // Declare that phoenix_domain is a sub-somain of spirit_domain
- struct phoenix_domain
- : proto::domain<proto::generator<phoenix_expr>, proto::_, spirit_domain>
- {};
-
-The third template parameter to _domain_ is the super-domain. By defining `phoenix_domain` as above, we are saying that Phoenix expressions can be combined with Spirit expressions, and that when that happens, the resulting expression should be a Spirit expression.
-
-[note If you are wondering what the purpose of `proto::_` is in the definition of `phoenix_domain` above, recall that the second template parameter to _domain_ is the domain's grammar. ["`proto::_`] is the default and signifies that the domain places no restrictions on the expressions that are valid within it.]
-
-[/------------------------]
-[heading Domain Resolution]
-[/------------------------]
-
-When there are multiple domains in play within a given expression, Proto uses some rules to figure out which domain "wins". The rules are loosly modeled on the rules for C++ inheritance. `Phoenix_domain` is a sub-domain of `spirit_domain`. You can liken that to a derived/base relationship that gives Phoenix expressions a kind of implicit conversion to Spirit expressions. And since Phoenix expressions can be "converted" to Spirit expressions, they can be freely combined with Spirit expressions and the result is a Spirit expression.
-
-[note Super- and sub-domains are not actually implemented using inheritance. This is only a helpful mental model.]
-
-The analogy with inheritance holds even in the case of three domains when two are sub-domains of the third. Imagine another domain called `foobar_domain` that was also a sub-domain of `spirit_domain`. Expressions in the `foobar_domain` could be combined with expressions in the `phoenix_domain` and the resulting expression would be in the `spirit_domain`. That's because expressions in the two sub-domains both have "conversions" to the super-domain, so the operation is allowed and the super-domain wins.
-
-[/-------------------------]
-[heading The Default Domain]
-[/-------------------------]
-
-When you don't assign a Proto expression to a particular domain, Proto considers it a member of the so-called default domain, `proto::default_domain`. Even non-Proto objects are treated as terminals in the default domain. Consider:
-
- int main()
- {
- proto::literal<int, spirit_domain> sp(0);
-
- // Add 1 to a spirit expression. Result is a spirit expression.
- sp + 1;
- }
-
-In light of the above discussion about sub-domains, you might consider `proto::default_domain` as a sub-domain of every other domain. Expressions in the default domain have a kind of implicit conversion to every other domain type. That's exactly how Proto sees it! What's more, you can define your domain to be a sub-domain of the default domain. In so doing, you give expression in your domain conversions to expressions in /every other domain/. This is like a "free love" domain, because it will freely mix with all other domains.
-
-Let's think again about the Phoenix EDSL. Since it provides generally useful lambda functionionality, it's reasonable to assume that lots of other EDSLs besides Spirit might want the ability to embed Phoenix expressions. In other words, `phoenix_domain` should be a sub-domain of `proto::default_domain`, not `spirit_domain`:
-
- // Declare that phoenix_domain is a sub-somain of proto::default_domain
- struct phoenix_domain
- : proto::domain<proto::generator<phoenix_expr>, proto::_, proto::default_domain>
- {};
-
-That's much better. Phoenix expressions can now be put anywhere.
-
-[/-------------------------]
-[heading Sub-Domain Summary]
-[/-------------------------]
-
-Use Proto sub-domains to make it possible to mix expressions from multiple domains. And when you want expressions in your domain to freely combine with /all/ expressions, make it a sub-domain of `proto::default_domain`.
-
-[endsect]
-
 [endsect]

Modified: branches/quickbook-dev/libs/proto/doc/proto.qbk
==============================================================================
--- branches/quickbook-dev/libs/proto/doc/proto.qbk (original)
+++ branches/quickbook-dev/libs/proto/doc/proto.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -57,6 +57,10 @@
   [classref boost::proto::default_domain `proto::default_domain`]]
 [def _extends_
   [classref boost::proto::extends `proto::extends<>`]]
+[def _external_transform_
+ [classref boost::proto::external_transform `proto::external_transform`]]
+[def _external_transforms_
+ [classref boost::proto::external_transforms `proto::external_transforms<>`]]
 [def _as_expr_
   [funcref boost::proto::as_expr `proto::as_expr()`]]
 [def _as_child_

Modified: branches/quickbook-dev/libs/proto/doc/reference.xml
==============================================================================
--- branches/quickbook-dev/libs/proto/doc/reference.xml (original)
+++ branches/quickbook-dev/libs/proto/doc/reference.xml 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1160,6 +1160,7 @@
   <xi:include href="reference/repeat.xml"/>
   <xi:include href="reference/tags.xml"/>
   <xi:include href="reference/traits.xml"/>
+ <xi:include href="reference/transform.xml"/>
   <xi:include href="reference/transform/arg.xml"/>
   <xi:include href="reference/transform/call.xml"/>
   <xi:include href="reference/transform/default.xml"/>
@@ -1171,6 +1172,7 @@
   <xi:include href="reference/transform/make.xml"/>
   <xi:include href="reference/transform/pass_through.xml"/>
   <xi:include href="reference/transform/when.xml"/>
+ <xi:include href="reference/context.xml"/>
   <xi:include href="reference/context/callable.xml"/>
   <xi:include href="reference/context/default.xml"/>
   <xi:include href="reference/context/null.xml"/>

Modified: branches/quickbook-dev/libs/proto/doc/reference/args.xml
==============================================================================
--- branches/quickbook-dev/libs/proto/doc/reference/args.xml (original)
+++ branches/quickbook-dev/libs/proto/doc/reference/args.xml 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,4 +1,11 @@
 ï»¿<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/args.hpp">
   <para>
     Contains definitions of the <computeroutput>

Modified: branches/quickbook-dev/libs/proto/doc/reference/concepts/CallableTransform.xml
==============================================================================
--- branches/quickbook-dev/libs/proto/doc/reference/concepts/CallableTransform.xml (original)
+++ branches/quickbook-dev/libs/proto/doc/reference/concepts/CallableTransform.xml 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,12 +1,12 @@
 <?xml version="1.0" ?>
-<concept name="CallableTransform" category="utility">
- <!--
+<!--
   Copyright 2008 Eric Niebler
 
   Distributed under the Boost
   Software License, Version 1.0. (See accompanying
   file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
   -->
+<concept name="CallableTransform" category="utility">
   <param name="Fn" role="polymorphic-function-object-type" />
   <param name="Tn" role="transform-type" />
   <param name="Expr" role="expression-type" />

Modified: branches/quickbook-dev/libs/proto/doc/reference/concepts/Domain.xml
==============================================================================
--- branches/quickbook-dev/libs/proto/doc/reference/concepts/Domain.xml (original)
+++ branches/quickbook-dev/libs/proto/doc/reference/concepts/Domain.xml 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,12 +1,12 @@
 <?xml version="1.0" ?>
-<concept name="Domain" category="utility">
- <!--
+<!--
   Copyright 2010 Eric Niebler
 
   Distributed under the Boost
   Software License, Version 1.0. (See accompanying
   file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
   -->
+<concept name="Domain" category="utility">
   <param name="Domain" role="domain-type" />
   <param name="Expr" role="expression-type" />
   <param name="Object" role="object-type" />

Modified: branches/quickbook-dev/libs/proto/doc/reference/concepts/Expr.xml
==============================================================================
--- branches/quickbook-dev/libs/proto/doc/reference/concepts/Expr.xml (original)
+++ branches/quickbook-dev/libs/proto/doc/reference/concepts/Expr.xml 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,12 +1,12 @@
 <?xml version="1.0" ?>
-<concept name="Expr" category="utility">
- <!--
+<!--
   Copyright 2010 Eric Niebler
 
   Distributed under the Boost
   Software License, Version 1.0. (See accompanying
   file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
   -->
+<concept name="Expr" category="utility">
   <param name="Expr" role="expession-type"/>
   <param name="Tag" role="tag-type"/>
   <param name="Domain" role="domain-type"/>

Modified: branches/quickbook-dev/libs/proto/doc/reference/concepts/ObjectTransform.xml
==============================================================================
--- branches/quickbook-dev/libs/proto/doc/reference/concepts/ObjectTransform.xml (original)
+++ branches/quickbook-dev/libs/proto/doc/reference/concepts/ObjectTransform.xml 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,4 @@
 <?xml version="1.0" ?>
-<concept name="ObjectTransform" category="utility">
   <!--
   Copyright 2008 Eric Niebler
 
@@ -7,6 +6,7 @@
   Software License, Version 1.0. (See accompanying
   file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
   -->
+<concept name="ObjectTransform" category="utility">
   <param name="Obj" role="object-type" />
   <param name="Tn" role="transform-type" />
   <param name="Expr" role="expression-type" />

Modified: branches/quickbook-dev/libs/proto/doc/reference/concepts/PolymorphicFunctionObject.xml
==============================================================================
--- branches/quickbook-dev/libs/proto/doc/reference/concepts/PolymorphicFunctionObject.xml (original)
+++ branches/quickbook-dev/libs/proto/doc/reference/concepts/PolymorphicFunctionObject.xml 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,12 +1,12 @@
 <?xml version="1.0" ?>
-<concept name="PolymorphicFunctionObject" category="utility">
- <!--
+<!--
   Copyright 2008 Eric Niebler
 
   Distributed under the Boost
   Software License, Version 1.0. (See accompanying
   file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
   -->
+<concept name="PolymorphicFunctionObject" category="utility">
   <param name="Fn" role="polymorphic-function-object-type" />
 
   <models-sentence>

Modified: branches/quickbook-dev/libs/proto/doc/reference/concepts/PrimitiveTransform.xml
==============================================================================
--- branches/quickbook-dev/libs/proto/doc/reference/concepts/PrimitiveTransform.xml (original)
+++ branches/quickbook-dev/libs/proto/doc/reference/concepts/PrimitiveTransform.xml 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,12 +1,12 @@
 <?xml version="1.0" ?>
-<concept name="PrimitiveTransform" category="utility">
- <!--
+<!--
   Copyright 2008 Eric Niebler
 
   Distributed under the Boost
   Software License, Version 1.0. (See accompanying
   file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
   -->
+<concept name="PrimitiveTransform" category="utility">
   <param name="Fn" role="primitive-transform-type" />
   <param name="Expr" role="expression-type" />
   <param name="State" role="state-type" />

Modified: branches/quickbook-dev/libs/proto/doc/reference/concepts/Transform.xml
==============================================================================
--- branches/quickbook-dev/libs/proto/doc/reference/concepts/Transform.xml (original)
+++ branches/quickbook-dev/libs/proto/doc/reference/concepts/Transform.xml 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,12 +1,12 @@
 <?xml version="1.0" ?>
-<concept name="Transform" category="utility">
- <!--
+<!--
   Copyright 2008 Eric Niebler
 
   Distributed under the Boost
   Software License, Version 1.0. (See accompanying
   file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
   -->
+<concept name="Transform" category="utility">
   <param name="Tn" role="transform-type" />
   <param name="Expr" role="expression-type" />
   <param name="State" role="state-type" />

Modified: branches/quickbook-dev/libs/proto/doc/reference/context/callable.xml
==============================================================================
--- branches/quickbook-dev/libs/proto/doc/reference/context/callable.xml (original)
+++ branches/quickbook-dev/libs/proto/doc/reference/context/callable.xml 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,4 +1,11 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/context/callable.hpp">
   <para>Definintion of <computeroutput><classname alt="boost::proto::context::callable_context">proto::context::callable_context&lt;&gt;</classname></computeroutput>,
     an evaluation context for <computeroutput><functionname alt="boost::proto::eval">proto::eval()</functionname></computeroutput>

Modified: branches/quickbook-dev/libs/proto/doc/reference/context/default.xml
==============================================================================
--- branches/quickbook-dev/libs/proto/doc/reference/context/default.xml (original)
+++ branches/quickbook-dev/libs/proto/doc/reference/context/default.xml 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,4 +1,11 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/context/default.hpp">
   <namespace name="boost">
     <namespace name="proto">

Modified: branches/quickbook-dev/libs/proto/doc/reference/context/null.xml
==============================================================================
--- branches/quickbook-dev/libs/proto/doc/reference/context/null.xml (original)
+++ branches/quickbook-dev/libs/proto/doc/reference/context/null.xml 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,4 +1,11 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/context/null.hpp">
   <para>
     Definintion of

Modified: branches/quickbook-dev/libs/proto/doc/reference/core.xml
==============================================================================
--- branches/quickbook-dev/libs/proto/doc/reference/core.xml (original)
+++ branches/quickbook-dev/libs/proto/doc/reference/core.xml 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,4 +1,11 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/core.hpp">
   <para>Includes all of Proto, except the contexts, transforms, debug utilities and Boost.Typeof registrations.</para>
 </header>

Modified: branches/quickbook-dev/libs/proto/doc/reference/debug.xml
==============================================================================
--- branches/quickbook-dev/libs/proto/doc/reference/debug.xml (original)
+++ branches/quickbook-dev/libs/proto/doc/reference/debug.xml 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,4 +1,11 @@
 ï»¿<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/debug.hpp">
   <para>Utilities for debugging Proto expression trees </para>
   <namespace name="boost">

Modified: branches/quickbook-dev/libs/proto/doc/reference/deep_copy.xml
==============================================================================
--- branches/quickbook-dev/libs/proto/doc/reference/deep_copy.xml (original)
+++ branches/quickbook-dev/libs/proto/doc/reference/deep_copy.xml 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,4 +1,11 @@
 ï»¿<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/deep_copy.hpp">
   <para>Replace all nodes stored by reference by nodes stored by value.</para>
   <namespace name="boost">

Modified: branches/quickbook-dev/libs/proto/doc/reference/domain.xml
==============================================================================
--- branches/quickbook-dev/libs/proto/doc/reference/domain.xml (original)
+++ branches/quickbook-dev/libs/proto/doc/reference/domain.xml 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,4 +1,11 @@
 ï»¿<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/domain.hpp">
   <para>
     Contains definition of the <computeroutput><classname alt="boost::proto::domain">proto::domain&lt;&gt;</classname>

Modified: branches/quickbook-dev/libs/proto/doc/reference/eval.xml
==============================================================================
--- branches/quickbook-dev/libs/proto/doc/reference/eval.xml (original)
+++ branches/quickbook-dev/libs/proto/doc/reference/eval.xml 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,4 +1,11 @@
 ï»¿<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/eval.hpp">
   <para>
     Contains the

Modified: branches/quickbook-dev/libs/proto/doc/reference/expr.xml
==============================================================================
--- branches/quickbook-dev/libs/proto/doc/reference/expr.xml (original)
+++ branches/quickbook-dev/libs/proto/doc/reference/expr.xml 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,4 +1,11 @@
 ï»¿<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/expr.hpp">
   <namespace name="boost">
     <namespace name="proto">

Modified: branches/quickbook-dev/libs/proto/doc/reference/extends.xml
==============================================================================
--- branches/quickbook-dev/libs/proto/doc/reference/extends.xml (original)
+++ branches/quickbook-dev/libs/proto/doc/reference/extends.xml 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,4 +1,11 @@
 ï»¿<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/extends.hpp">
   <para>Macros and a base class for defining end-user expression types </para>
   <namespace name="boost">
@@ -72,12 +79,10 @@
       , my_domain // The domain associated with this expression extension
     &gt;
 {
- typedef proto::extends&lt; Expr, my_expr&lt; Expr &gt;, my_domain &gt; base_type;
-
     // An expression extension is constructed from the expression
     // it is extending.
     my_expr( Expr const &amp; e = Expr() )
- : base_type( e )
+ : my_expr::proto_extends( e )
     {}
     
     // Unhide proto::extends::operator=
@@ -127,6 +132,9 @@
         <typedef name="proto_derived_expr">
           <type>Derived</type>
         </typedef>
+ <typedef name="proto_extends">
+ <type>extends</type>
+ </typedef>
         <typedef name="proto_tag">
           <type>typename proto_base_expr::proto_tag</type>
         </typedef>

Modified: branches/quickbook-dev/libs/proto/doc/reference/functional.xml
==============================================================================
--- branches/quickbook-dev/libs/proto/doc/reference/functional.xml (original)
+++ branches/quickbook-dev/libs/proto/doc/reference/functional.xml 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,4 +1,11 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/functional.hpp">
   <para>Includes all the functional extensions of Proto.</para>
 </header>

Modified: branches/quickbook-dev/libs/proto/doc/reference/functional/fusion.xml
==============================================================================
--- branches/quickbook-dev/libs/proto/doc/reference/functional/fusion.xml (original)
+++ branches/quickbook-dev/libs/proto/doc/reference/functional/fusion.xml 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,4 +1,11 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/functional/fusion.hpp">
   <para>Includes all the functional extensions to Proto for the Boost.Fusion library.</para>
 </header>

Modified: branches/quickbook-dev/libs/proto/doc/reference/functional/fusion/at.xml
==============================================================================
--- branches/quickbook-dev/libs/proto/doc/reference/functional/fusion/at.xml (original)
+++ branches/quickbook-dev/libs/proto/doc/reference/functional/fusion/at.xml 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,4 +1,11 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/functional/fusion/at.hpp">
   <para>Includes Proto callable <computeroutput><classname>boost::proto::functional::at</classname></computeroutput>.</para>
 

Modified: branches/quickbook-dev/libs/proto/doc/reference/functional/fusion/pop_back.xml
==============================================================================
--- branches/quickbook-dev/libs/proto/doc/reference/functional/fusion/pop_back.xml (original)
+++ branches/quickbook-dev/libs/proto/doc/reference/functional/fusion/pop_back.xml 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,4 +1,11 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/functional/fusion/pop_back.hpp">
   <para>Includes Proto callable <computeroutput><classname>boost::proto::functional::pop_back</classname></computeroutput>.</para>
 

Modified: branches/quickbook-dev/libs/proto/doc/reference/functional/fusion/pop_front.xml
==============================================================================
--- branches/quickbook-dev/libs/proto/doc/reference/functional/fusion/pop_front.xml (original)
+++ branches/quickbook-dev/libs/proto/doc/reference/functional/fusion/pop_front.xml 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,4 +1,11 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/functional/fusion/pop_front.hpp">
   <para>Includes Proto callable <computeroutput><classname>boost::proto::functional::pop_front</classname></computeroutput>.</para>
 

Modified: branches/quickbook-dev/libs/proto/doc/reference/functional/fusion/push_back.xml
==============================================================================
--- branches/quickbook-dev/libs/proto/doc/reference/functional/fusion/push_back.xml (original)
+++ branches/quickbook-dev/libs/proto/doc/reference/functional/fusion/push_back.xml 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,4 +1,11 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/functional/fusion/push_back.hpp">
   <para>Includes Proto callable <computeroutput><classname>boost::proto::functional::push_back</classname></computeroutput>.</para>
 

Modified: branches/quickbook-dev/libs/proto/doc/reference/functional/fusion/push_front.xml
==============================================================================
--- branches/quickbook-dev/libs/proto/doc/reference/functional/fusion/push_front.xml (original)
+++ branches/quickbook-dev/libs/proto/doc/reference/functional/fusion/push_front.xml 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,4 +1,11 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/functional/fusion/push_front.hpp">
   <para>Includes Proto callable <computeroutput><classname>boost::proto::functional::push_front</classname></computeroutput>.</para>
 

Modified: branches/quickbook-dev/libs/proto/doc/reference/functional/fusion/reverse.xml
==============================================================================
--- branches/quickbook-dev/libs/proto/doc/reference/functional/fusion/reverse.xml (original)
+++ branches/quickbook-dev/libs/proto/doc/reference/functional/fusion/reverse.xml 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,4 +1,11 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/functional/fusion/reverse.hpp">
   <para>Includes Proto callable <computeroutput><classname>boost::proto::functional::reverse</classname></computeroutput>.</para>
 

Modified: branches/quickbook-dev/libs/proto/doc/reference/functional/std.xml
==============================================================================
--- branches/quickbook-dev/libs/proto/doc/reference/functional/std.xml (original)
+++ branches/quickbook-dev/libs/proto/doc/reference/functional/std.xml 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,4 +1,11 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/functional/std.hpp">
   <para>Includes all the functional extensions to Proto for the standard library.</para>
 </header>

Modified: branches/quickbook-dev/libs/proto/doc/reference/functional/std/utility.xml
==============================================================================
--- branches/quickbook-dev/libs/proto/doc/reference/functional/std/utility.xml (original)
+++ branches/quickbook-dev/libs/proto/doc/reference/functional/std/utility.xml 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,4 +1,11 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/functional/std/utility.hpp">
   <para>Defines Proto callables <computeroutput><classname>boost::proto::functional::make_pair</classname></computeroutput>,
   <computeroutput><classname>boost::proto::functional::first</classname></computeroutput> and

Modified: branches/quickbook-dev/libs/proto/doc/reference/fusion.xml
==============================================================================
--- branches/quickbook-dev/libs/proto/doc/reference/fusion.xml (original)
+++ branches/quickbook-dev/libs/proto/doc/reference/fusion.xml 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,4 +1,11 @@
 ï»¿<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/fusion.hpp">
   <para>Make any Proto expression a valid Fusion sequence </para>
   <namespace name="boost">

Modified: branches/quickbook-dev/libs/proto/doc/reference/generate.xml
==============================================================================
--- branches/quickbook-dev/libs/proto/doc/reference/generate.xml (original)
+++ branches/quickbook-dev/libs/proto/doc/reference/generate.xml 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,4 +1,11 @@
 ï»¿<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/generate.hpp">
   <para>Contains definition of
     <computeroutput><classname alt="boost::proto::default_generator">proto::default_generator</classname></computeroutput>,

Modified: branches/quickbook-dev/libs/proto/doc/reference/literal.xml
==============================================================================
--- branches/quickbook-dev/libs/proto/doc/reference/literal.xml (original)
+++ branches/quickbook-dev/libs/proto/doc/reference/literal.xml 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,4 +1,11 @@
 ï»¿<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/literal.hpp">
   <para>
     The

Modified: branches/quickbook-dev/libs/proto/doc/reference/make_expr.xml
==============================================================================
--- branches/quickbook-dev/libs/proto/doc/reference/make_expr.xml (original)
+++ branches/quickbook-dev/libs/proto/doc/reference/make_expr.xml 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,4 +1,11 @@
 ï»¿<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/make_expr.hpp">
   <para>
     Definition of the <computeroutput><functionname alt="boost::proto::make_expr">proto::make_expr()</functionname>

Modified: branches/quickbook-dev/libs/proto/doc/reference/matches.xml
==============================================================================
--- branches/quickbook-dev/libs/proto/doc/reference/matches.xml (original)
+++ branches/quickbook-dev/libs/proto/doc/reference/matches.xml 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,4 +1,11 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/matches.hpp">
   <para>
     Contains definition of the
@@ -441,7 +448,7 @@
           An expression type <computeroutput>E</computeroutput> matches
             <computeroutput>proto::switch_&lt;C,T&gt;</computeroutput> if
           <computeroutput>E</computeroutput> matches
- <computeroutput>C::case_&lt;boost::result_of&lt;T(E)&gt;::type&gt;</computeroutput>.
+ <computeroutput>C::case_&lt;boost::result_of&lt;<classname>proto::when</classname>&lt;<classname>proto::_</classname>,T&gt;(E)&gt;::type&gt;</computeroutput>.
           </para>
         <para>
           When applying <computeroutput>proto::switch_&lt;C,T&gt;</computeroutput> as a
@@ -449,7 +456,7 @@
             <computeroutput>E</computeroutput>, state <computeroutput>s</computeroutput> of
             type <computeroutput>S</computeroutput> and data <computeroutput>d</computeroutput>
             of type <computeroutput>D</computeroutput>, it is equivalent to
- <computeroutput>C::case_&lt;boost::result_of&lt;T(E,S,D)&gt;::type&gt;()(e, s, d)</computeroutput>.
+ <computeroutput>C::case_&lt;boost::result_of&lt;<classname>proto::when</classname>&lt;<classname>proto::_</classname>,T&gt;(E,S,D)&gt;::type&gt;()(e, s, d)</computeroutput>.
           </para>
         </description>
         <struct name="impl">
@@ -699,14 +706,15 @@
                   <computeroutput>
                     <classname>proto::switch_</classname>&lt;C, T&gt;
                   </computeroutput> if
- <computeroutput>E</computeroutput> matches <computeroutput>C::case_&lt;boost::result_of&lt;T(E)&gt;::type&gt;</computeroutput>.
+ <computeroutput>E</computeroutput> matches <computeroutput>C::case_&lt;boost::result_of&lt;<classname>proto::when</classname>&lt;<classname>proto::_</classname>,T&gt;(E)&gt;::type&gt;</computeroutput>.
                   Note: <computeroutput>T</computeroutput> defaults to <computeroutput><classname>proto::tag_of</classname>&lt;<classname>proto::_</classname>&gt;()</computeroutput>
                 </para>
               </listitem>
             </itemizedlist>
           </para>
           <para>
- A terminal expression
+ A terminal expression can trivially match the grammar <classname>proto::_</classname>. In addition,
+ a terminal expression
             <computeroutput>
               <classname>proto::basic_expr</classname>&lt;AT,
               <classname>proto::term</classname>&lt;A&gt; &gt;

Modified: branches/quickbook-dev/libs/proto/doc/reference/operators.xml
==============================================================================
--- branches/quickbook-dev/libs/proto/doc/reference/operators.xml (original)
+++ branches/quickbook-dev/libs/proto/doc/reference/operators.xml 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,4 +1,11 @@
 ï»¿<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/operators.hpp">
   <para>Contains all the overloaded operators that make it possible to build Proto expression trees. </para>
   <namespace name="boost">

Modified: branches/quickbook-dev/libs/proto/doc/reference/proto.xml
==============================================================================
--- branches/quickbook-dev/libs/proto/doc/reference/proto.xml (original)
+++ branches/quickbook-dev/libs/proto/doc/reference/proto.xml 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,4 +1,11 @@
 ï»¿<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/proto.hpp">
   <para>Includes all of Proto, except the Boost.Typeof registrations.</para>
 </header>

Modified: branches/quickbook-dev/libs/proto/doc/reference/proto_fwd.xml
==============================================================================
--- branches/quickbook-dev/libs/proto/doc/reference/proto_fwd.xml (original)
+++ branches/quickbook-dev/libs/proto/doc/reference/proto_fwd.xml 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,4 +1,11 @@
 ï»¿<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/proto_fwd.hpp">
   <para>Forward declarations of all of proto's public types and functions. </para>
   <namespace name="boost">

Modified: branches/quickbook-dev/libs/proto/doc/reference/proto_typeof.xml
==============================================================================
--- branches/quickbook-dev/libs/proto/doc/reference/proto_typeof.xml (original)
+++ branches/quickbook-dev/libs/proto/doc/reference/proto_typeof.xml 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,4 +1,11 @@
 ï»¿<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/proto_typeof.hpp">
   <para>Boost.Typeof registrations for Proto's types, and definition of the
     <computeroutput><macroname>BOOST_PROTO_AUTO</macroname>()</computeroutput> macro.</para>

Modified: branches/quickbook-dev/libs/proto/doc/reference/repeat.xml
==============================================================================
--- branches/quickbook-dev/libs/proto/doc/reference/repeat.xml (original)
+++ branches/quickbook-dev/libs/proto/doc/reference/repeat.xml 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,4 +1,11 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/repeat.hpp">
   <para>
     Contains macros to ease the generation of repetitious code constructs.

Modified: branches/quickbook-dev/libs/proto/doc/reference/tags.xml
==============================================================================
--- branches/quickbook-dev/libs/proto/doc/reference/tags.xml (original)
+++ branches/quickbook-dev/libs/proto/doc/reference/tags.xml 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,4 +1,11 @@
 ï»¿<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/tags.hpp">
   <para>Contains the tags for all the overloadable operators in C++ </para>
   <namespace name="boost">

Modified: branches/quickbook-dev/libs/proto/doc/reference/traits.xml
==============================================================================
--- branches/quickbook-dev/libs/proto/doc/reference/traits.xml (original)
+++ branches/quickbook-dev/libs/proto/doc/reference/traits.xml 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,4 +1,11 @@
 ï»¿<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/traits.hpp">
   <para>
     Contains definitions for various expression traits and utilities like

Modified: branches/quickbook-dev/libs/proto/doc/reference/transform/arg.xml
==============================================================================
--- branches/quickbook-dev/libs/proto/doc/reference/transform/arg.xml (original)
+++ branches/quickbook-dev/libs/proto/doc/reference/transform/arg.xml 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,4 +1,11 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/transform/arg.hpp">
   <para>Contains definition of the childN transforms and friends.</para>
   <namespace name="boost">

Modified: branches/quickbook-dev/libs/proto/doc/reference/transform/call.xml
==============================================================================
--- branches/quickbook-dev/libs/proto/doc/reference/transform/call.xml (original)
+++ branches/quickbook-dev/libs/proto/doc/reference/transform/call.xml 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,4 +1,11 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/transform/call.hpp">
   <para>Contains definition of the call&lt;&gt; transform. </para>
   <namespace name="boost">

Modified: branches/quickbook-dev/libs/proto/doc/reference/transform/default.xml
==============================================================================
--- branches/quickbook-dev/libs/proto/doc/reference/transform/default.xml (original)
+++ branches/quickbook-dev/libs/proto/doc/reference/transform/default.xml 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,4 +1,11 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/transform/default.hpp">
   <namespace name="boost">
     <namespace name="proto">

Modified: branches/quickbook-dev/libs/proto/doc/reference/transform/fold.xml
==============================================================================
--- branches/quickbook-dev/libs/proto/doc/reference/transform/fold.xml (original)
+++ branches/quickbook-dev/libs/proto/doc/reference/transform/fold.xml 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,4 +1,11 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/transform/fold.hpp">
   <para>Contains definition of the
     <computeroutput>

Modified: branches/quickbook-dev/libs/proto/doc/reference/transform/fold_tree.xml
==============================================================================
--- branches/quickbook-dev/libs/proto/doc/reference/transform/fold_tree.xml (original)
+++ branches/quickbook-dev/libs/proto/doc/reference/transform/fold_tree.xml 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,4 +1,11 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/transform/fold_tree.hpp">
   <para>
     Contains definition of the

Modified: branches/quickbook-dev/libs/proto/doc/reference/transform/impl.xml
==============================================================================
--- branches/quickbook-dev/libs/proto/doc/reference/transform/impl.xml (original)
+++ branches/quickbook-dev/libs/proto/doc/reference/transform/impl.xml 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,4 +1,11 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/transform/impl.hpp">
   <para>Contains definition of transform&lt;&gt; and transform_impl&lt;&gt; helpers. </para>
   <namespace name="boost">

Modified: branches/quickbook-dev/libs/proto/doc/reference/transform/integral_c.xml
==============================================================================
--- branches/quickbook-dev/libs/proto/doc/reference/transform/integral_c.xml (original)
+++ branches/quickbook-dev/libs/proto/doc/reference/transform/integral_c.xml 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,4 +1,11 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/transform/integral_c.hpp">
   <para>Contains definition of the integral_c transform and friends.</para>
   <namespace name="boost">

Modified: branches/quickbook-dev/libs/proto/doc/reference/transform/lazy.xml
==============================================================================
--- branches/quickbook-dev/libs/proto/doc/reference/transform/lazy.xml (original)
+++ branches/quickbook-dev/libs/proto/doc/reference/transform/lazy.xml 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,4 +1,11 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/transform/lazy.hpp">
   <para>
     Contains definition of the

Modified: branches/quickbook-dev/libs/proto/doc/reference/transform/make.xml
==============================================================================
--- branches/quickbook-dev/libs/proto/doc/reference/transform/make.xml (original)
+++ branches/quickbook-dev/libs/proto/doc/reference/transform/make.xml 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,4 +1,11 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/transform/make.hpp">
   <para>
     Contains definition of the

Modified: branches/quickbook-dev/libs/proto/doc/reference/transform/pass_through.xml
==============================================================================
--- branches/quickbook-dev/libs/proto/doc/reference/transform/pass_through.xml (original)
+++ branches/quickbook-dev/libs/proto/doc/reference/transform/pass_through.xml 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,4 +1,11 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/transform/pass_through.hpp">
   <para>Definition of the
     <computeroutput><classname alt="boost::proto::pass_through">proto::pass_through&lt;&gt;</classname></computeroutput>

Modified: branches/quickbook-dev/libs/proto/doc/reference/transform/when.xml
==============================================================================
--- branches/quickbook-dev/libs/proto/doc/reference/transform/when.xml (original)
+++ branches/quickbook-dev/libs/proto/doc/reference/transform/when.xml 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,4 +1,11 @@
 <?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright 2012 Eric Niebler
+
+ Distributed under the Boost
+ Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ -->
 <header name="boost/proto/transform/when.hpp">
   <para>
     Definition of the

Modified: branches/quickbook-dev/libs/proto/example/lambda.hpp
==============================================================================
--- branches/quickbook-dev/libs/proto/example/lambda.hpp (original)
+++ branches/quickbook-dev/libs/proto/example/lambda.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,10 +1,17 @@
 #ifndef BOOST_PP_IS_ITERATING
+ ///////////////////////////////////////////////////////////////////////////////
+ // Copyright 2008 Eric Niebler. Distributed under the Boost
+ // Software License, Version 1.0. (See accompanying file
+ // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+ //
+ // This example contains a full-featured reimplementation of the old,
+ // now-deprecated Boost Lambda Library (BLL) on top of Boost.Proto. It
+ // is necessarily complex to accomodate all the quirks and inconsistencies
+ // of that old library, but it is a good example of how to build a
+ // complete and full-featured EDLS using Proto.
     #ifndef BOOST_LAMBDA_HPP_EAN_04_19_2008
     #define BOOST_LAMBDA_HPP_EAN_04_19_2008
 
- #define BOOST_PROTO_MAX_ARITY 10
- #define BOOST_PROTO_MAX_FUNCTION_CALL_ARITY 5
-
     #include <iosfwd>
     #include <typeinfo>
     #include <algorithm>
@@ -17,7 +24,6 @@
     #include <boost/mpl/next_prior.hpp>
     #include <boost/mpl/min_max.hpp>
     #include <boost/mpl/assert.hpp>
- #include <boost/mpl/apply_wrap.hpp>
     #include <boost/preprocessor.hpp>
     #include <boost/utility/enable_if.hpp>
     #include <boost/utility/result_of.hpp>
@@ -26,9 +32,6 @@
     #include <boost/type_traits/remove_reference.hpp>
     #include <boost/type_traits/remove_const.hpp>
     #include <boost/type_traits/is_same.hpp>
- #include <boost/type_traits/is_abstract.hpp>
- #include <boost/type_traits/is_array.hpp>
- #include <boost/type_traits/is_function.hpp>
     #include <boost/proto/proto.hpp>
 
     #ifndef BOOST_LAMBDA_MAX_ARITY
@@ -102,27 +105,6 @@
               , proto::otherwise<proto::fold<proto::_, mpl::true_(), mpl::and_<proto::_state, IsNullary>()> >
>
         {};
-
- struct at : proto::callable
- {
- template<class Sig>
- struct result;
-
- template<class This, class Cont, class Int>
- struct result<This(Cont, Int)>
- : fusion::result_of::at<
- typename remove_reference<Cont>::type
- , typename remove_reference<Int>::type
- >
- {};
-
- template<typename Cont, typename Int>
- typename fusion::result_of::at<Cont, Int>::type
- operator ()(Cont &cont, Int const &) const
- {
- return fusion::at<Int>(cont);
- }
- };
 
         struct Eval;
 
@@ -268,7 +250,7 @@
         {
             template<typename Expr, typename State, typename Data, long Arity, typename BackTag>
             struct impl2;
-
+
             #define M0(Z, N, DATA) \
                 case proto::tag_of<typename proto::result_of::child_c<Expr, N>::type>::type::value: \
                     Eval()(proto::child_c<N>(expr), state, data); \
@@ -350,23 +332,23 @@
                 throw e;
             }
         };
-
+
         struct unwrap_ref : proto::callable
         {
             template<typename Sig>
             struct result;
-
+
             template<typename This, typename T>
             struct result<This(reference_wrapper<T>)>
             {
- typedef T &type;
+ typedef T &type;
             };
-
+
             template<typename This, typename T>
             struct result<This(T &)>
               : result<This(T)>
             {};
-
+
             template<typename T>
             T &operator()(reference_wrapper<T> const &ref) const
             {
@@ -429,7 +411,7 @@
           : proto::or_<
                 proto::when<
                     proto::terminal<placeholder<proto::_> >
- , at(proto::_data, proto::_value)
+ , proto::functional::at(proto::_data, proto::_value)
>
               , proto::when<
                     proto::terminal<exception_placeholder>
@@ -490,58 +472,29 @@
 
         using exprns_::llexpr;
 
- template<typename T>
- struct is_stream
- {
- private:
- static T &t;
- typedef char yes_type;
- typedef char (&no_type)[2];
- static no_type test_is_stream(...);
- template<typename Char, typename Traits>
- static yes_type test_is_stream(std::basic_istream<Char, Traits> &);
- template<typename Char, typename Traits>
- static yes_type test_is_stream(std::basic_ostream<Char, Traits> &);
- public:
- typedef bool value_type;
- static const bool value = sizeof(yes_type == sizeof(test_is_stream(t)));
- typedef mpl::bool_<value> type;
- };
-
- // These terminal types are always stored by reference
- template<typename Value>
- struct store_by_ref
- : mpl::or_<
- is_abstract<Value>
- , is_array<Value>
- , is_function<Value>
- , is_stream<Value>
- >
- {};
-
- // Wrap expressions in lambda::llexpr<>, and hold children nodes
- // and some terminal types by value.
+ // Wrap expressions in lambda::llexpr<>.
         struct Generator
- : proto::or_<
- proto::when<
- proto::and_<
- proto::terminal<proto::_>
- , proto::if_<store_by_ref<proto::_value>()>
- >
- , proto::pod_generator<llexpr>(proto::_)
- >
- , proto::otherwise<
- proto::compose_generators<
- proto::by_value_generator
- , proto::pod_generator<llexpr>
- >(proto::_)
- >
- >
+ : proto::pod_generator<llexpr>
         {};
 
+ // The domain for the lambda library.
         struct lldomain
- : proto::domain<Generator, Grammar>
- {};
+ : proto::domain<Generator, Grammar, proto::default_domain>
+ {
+ // Make all terminals and children held by value instead of by reference.
+ // Proto::domain<>::as_expr<> holds everything it can by value; the only
+ // exceptions are function types, abstract types, and iostreams.
+ template<typename T>
+ struct as_child
+ : proto_base_domain::as_expr<T>
+ {};
+
+ // The exception is arrays, which should still be held by reference
+ template<typename T, std::size_t N>
+ struct as_child<T[N]>
+ : proto_base_domain::as_child<T[N]>
+ {};
+ };
 
         template<typename Sig>
         struct llresult;
@@ -653,7 +606,7 @@
         {
             template<typename Sig>
             struct result;
-
+
             template<typename This, typename T>
             struct result<This(T &)>
             {
@@ -745,7 +698,7 @@
         {
             typedef llexpr<typename proto::terminal<T &>::type> type;
         };
-
+
         template<typename T>
         llexpr<typename proto::terminal<T &>::type> const
         var(T &t)
@@ -776,7 +729,7 @@
         {
             typedef llexpr<typename proto::terminal<T const &>::type> type;
         };
-
+
         template<typename T>
         llexpr<typename proto::terminal<T const &>::type> const
         constant_ref(T const &t)
@@ -1142,7 +1095,7 @@
         {
             return t;
         }
-
+
         #define M1(N, typename_A, A_const_ref, A_const_ref_a, ref_a) \
         template<typename_A(N)> \
         typename proto::result_of::make_expr< \
@@ -1741,7 +1694,7 @@
         }
 
     }}
-
+
     namespace boost
     {
         template<typename Expr>

Modified: branches/quickbook-dev/libs/proto/example/mini_lambda.cpp
==============================================================================
--- branches/quickbook-dev/libs/proto/example/mini_lambda.cpp (original)
+++ branches/quickbook-dev/libs/proto/example/mini_lambda.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -183,7 +183,7 @@
     { return T(); }
 
     // Generate BOOST_PROTO_MAX_ARITY overloads of the
- // followig function call operator.
+ // following function call operator.
 #define BOOST_PROTO_LOCAL_MACRO(N, typename_A, A_const_ref, A_const_ref_a, a)\
     template<typename_A(N)> \
     T operator()(A_const_ref_a(N)) const \

Modified: branches/quickbook-dev/libs/python/doc/tutorial/doc/html/index.html
==============================================================================
--- branches/quickbook-dev/libs/python/doc/tutorial/doc/html/index.html (original)
+++ branches/quickbook-dev/libs/python/doc/tutorial/doc/html/index.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -66,6 +66,7 @@
 <dt><span class="section">Derived Object types</span></dt>
 <dt><span class="section">Extracting C++ objects</span></dt>
 <dt><span class="section">Enums</span></dt>
+<dt><span class="section">Creating boost::python::object from PyObject*</span></dt>
 </dl></dd>
 <dt><span class="section">Embedding</span></dt>
 <dd><dl><dt><span class="section">Using the interpreter</span></dt></dl></dd>
@@ -132,7 +133,7 @@
 </div>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
-<td align="left"><p><small>Last revised: December 26, 2011 at 21:51:27 GMT</small></p></td>
+<td align="left"><p><small>Last revised: December 26, 2011 at 21:58:39 GMT</small></p></td>
 <td align="right"><div class="copyright-footer"></div></td>
 </tr></table>
 <hr>

Modified: branches/quickbook-dev/libs/python/doc/tutorial/doc/html/python/object.html
==============================================================================
--- branches/quickbook-dev/libs/python/doc/tutorial/doc/html/python/object.html (original)
+++ branches/quickbook-dev/libs/python/doc/tutorial/doc/html/python/object.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -30,6 +30,7 @@
 <dt><span class="section">Derived Object types</span></dt>
 <dt><span class="section">Extracting C++ objects</span></dt>
 <dt><span class="section">Enums</span></dt>
+<dt><span class="section">Creating boost::python::object from PyObject*</span></dt>
 </dl></div>
 <p>
       Python is dynamically typed, unlike C++ which is statically typed. Python variables
@@ -314,6 +315,32 @@
     <span class="special">;</span>
 </pre>
 </div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="python.creating_python_object"></a>Creating <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">python</span><span class="special">::</span><span class="identifier">object</span></code> from <code class="computeroutput"><span class="identifier">PyObject</span><span class="special">*</span></code>
+</h3></div></div></div>
+<p>
+ When you want a <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">python</span><span class="special">::</span><span class="identifier">object</span></code> to manage a pointer to <code class="computeroutput"><span class="identifier">PyObject</span><span class="special">*</span></code>
+ pyobj one does:
+ </p>
+<pre class="programlisting"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">python</span><span class="special">::</span><span class="identifier">object</span> <span class="identifier">o</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">python</span><span class="special">::</span><span class="identifier">handle</span><span class="special">&lt;&gt;(</span><span class="identifier">pyobj</span><span class="special">));</span>
+</pre>
+<p>
+ In this case, the <code class="computeroutput"><span class="identifier">o</span></code> object,
+ manages the <code class="computeroutput"><span class="identifier">pyobj</span></code>, it won&#8217;t
+ increase the reference count on construction.
+ </p>
+<p>
+ Otherwise, to use a borrowed reference:
+ </p>
+<pre class="programlisting"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">python</span><span class="special">::</span><span class="identifier">object</span> <span class="identifier">o</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">python</span><span class="special">::</span><span class="identifier">handle</span><span class="special">&lt;&gt;(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">python</span><span class="special">::</span><span class="identifier">borrowed</span><span class="special">(</span><span class="identifier">pyobj</span><span class="special">)));</span>
+</pre>
+<p>
+ In this case, <code class="computeroutput"><span class="identifier">Py_INCREF</span></code> is
+ called, so <code class="computeroutput"><span class="identifier">pyobj</span></code> is not destructed
+ when object o goes out of scope.
+ </p>
+</div>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>

Modified: branches/quickbook-dev/libs/python/doc/tutorial/doc/tutorial.qbk
==============================================================================
--- branches/quickbook-dev/libs/python/doc/tutorial/doc/tutorial.qbk (original)
+++ branches/quickbook-dev/libs/python/doc/tutorial/doc/tutorial.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1302,6 +1302,23 @@
 [def PyModule_GetDict [@http://www.python.org/doc/current/api/moduleObjects.html#l2h-594 PyModule_GetDict]]
 
 [endsect]
+
+[section:creating_python_object Creating `boost::python::object` from `PyObject*`]
+
+When you want a `boost::python::object` to manage a pointer to `PyObject*` pyobj one does:
+
+ boost::python::object o(boost::python::handle<>(pyobj));
+
+In this case, the `o` object, manages the `pyobj`, it won’t increase the reference count on construction.
+
+Otherwise, to use a borrowed reference:
+
+ boost::python::object o(boost::python::handle<>(boost::python::borrowed(pyobj)));
+
+In this case, `Py_INCREF` is called, so `pyobj` is not destructed when object o goes out of scope.
+
+[endsect] [/ creating_python_object ]
+
 [endsect] [/ Object Interface]
 
 [section Embedding]

Modified: branches/quickbook-dev/libs/regex/build/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/regex/build/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/regex/build/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -48,17 +48,21 @@
    }
    else
    {
- lib icuuc : : <link>shared <runtime-link>shared <conditional>@path_options ;
- lib icuuc : : <toolset>msvc <variant>debug <name>icuucd <link>shared <runtime-link>shared <conditional>@path_options ;
+ lib icuuc : : <link>shared <runtime-link>shared <conditional>@path_options ;
+ lib icuuc : : <toolset>msvc <variant>debug <name>icuucd <link>shared <runtime-link>shared <conditional>@path_options ;
+ lib icuuc : : <toolset>intel <target-os>windows <variant>debug <name>icuucd <link>shared <runtime-link>shared <conditional>@path_options ;
       lib icuuc : : <name>this_is_an_invalid_library_name ;
 
- lib icudt : : <name>icudata <link>shared <runtime-link>shared <conditional>@path_options ;
- lib icudt : : <name>icudt <toolset>msvc <link>shared <runtime-link>shared <conditional>@path_options ;
+ lib icudt : : <name>icudata <link>shared <runtime-link>shared <conditional>@path_options ;
+ lib icudt : : <name>icudt <toolset>msvc <link>shared <runtime-link>shared <conditional>@path_options ;
+ lib icudt : : <name>icudt <toolset>intel <target-os>windows <link>shared <runtime-link>shared <conditional>@path_options ;
       lib icudt : : <name>this_is_an_invalid_library_name ;
 
- lib icuin : : <name>icui18n <link>shared <runtime-link>shared <conditional>@path_options ;
- lib icuin : : <toolset>msvc <variant>debug <name>icuind <link>shared <runtime-link>shared <conditional>@path_options ;
- lib icuin : : <toolset>msvc <variant>release <name>icuin <link>shared <runtime-link>shared <conditional>@path_options ;
+ lib icuin : : <name>icui18n <link>shared <runtime-link>shared <conditional>@path_options ;
+ lib icuin : : <toolset>msvc <variant>debug <name>icuind <link>shared <runtime-link>shared <conditional>@path_options ;
+ lib icuin : : <toolset>msvc <variant>release <name>icuin <link>shared <runtime-link>shared <conditional>@path_options ;
+ lib icuin : : <toolset>intel <target-os>windows <variant>debug <name>icuind <link>shared <runtime-link>shared <conditional>@path_options ;
+ lib icuin : : <toolset>intel <target-os>windows <variant>release <name>icuin <link>shared <runtime-link>shared <conditional>@path_options ;
       lib icuin : : <name>this_is_an_invalid_library_name ;
 
       if $(ICU_PATH)
@@ -151,3 +155,4 @@
 
 
 
+

Modified: branches/quickbook-dev/libs/spirit/doc/what_s_new.qbk
==============================================================================
--- branches/quickbook-dev/libs/spirit/doc/what_s_new.qbk (original)
+++ branches/quickbook-dev/libs/spirit/doc/what_s_new.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 [/==============================================================================
     Copyright (C) 2001-2011 Joel de Guzman
- Copyright (C) 2001-2011 Hartmut Kaiser
+ Copyright (C) 2001-2012 Hartmut Kaiser
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -20,6 +20,15 @@
 * Added the possibility to match a token range when parsing with a lexer by
   using `qi::token(min, max)`, or `qi::tokenid(min, max)`. Both parsers match
   any token with a token id in the range [min, max].
+* Fixed a problem in [karma_align `center`]`(num)[a]` and
+ [karma_align `center`]`(num, g)[a]` if used inside a compound generator (such
+ as sequences, Kleene, list, or plus.
+* Fixed `karma::subrule` from the [@../../repository/doc/html/index.html repository]
+ (thanks to Lee Clagett for submitting a patch).
+* Fixed __karma__ examples (thanks to Lee Clagett for submitting a patch).
+* Fixed #6368: [multi_pass] clear_queue isn't forwarded to the storage policy.
+* Fixed a problem in __karma__ when a variant holding a container was used as
+ a generator inside a sequence.
 
 [endsect]
 

Modified: branches/quickbook-dev/libs/spirit/repository/example/karma/calc2_ast.hpp
==============================================================================
--- branches/quickbook-dev/libs/spirit/repository/example/karma/calc2_ast.hpp (original)
+++ branches/quickbook-dev/libs/spirit/repository/example/karma/calc2_ast.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 /*=============================================================================
     Copyright (c) 2001-2010 Joel de Guzman
- Copyright (c) 2001-2010 Hartmut Kaiser
+ Copyright (c) 2001-2012 Hartmut Kaiser
 
     Distributed under the Boost Software License, Version 1.0. (See accompanying
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -19,10 +19,11 @@
 #define SPIRIT_EXAMPLE_CALC2_AST_APR_30_2008_1011AM
 
 #include <boost/variant.hpp>
-#include <boost/variant/get.hpp>
 #include <boost/spirit/include/phoenix_operator.hpp>
 #include <boost/spirit/include/phoenix_function.hpp>
 #include <boost/spirit/include/phoenix_statement.hpp>
+#include <boost/spirit/home/karma/domain.hpp>
+#include <boost/spirit/include/support_attributes_fwd.hpp>
 
 ///////////////////////////////////////////////////////////////////////////////
 // Our AST
@@ -42,7 +43,7 @@
>
     type;
 
- // expose variant types
+ // expose variant types
     typedef type::types types;
 
     // expose variant functionality
@@ -82,16 +83,26 @@
         return boost::get<T>(expr.expr);
     }
 
- // the specialization below tells Spirit to handle expression_ast as if it
+ // the specialization below tells Spirit to handle expression_ast as if it
     // where a 'real' variant
     namespace spirit { namespace traits
     {
- template <typename T>
- struct not_is_variant;
-
+ // the specialization below tells Spirit to handle expression_ast as
+ // if it where a 'real' variant (if used with Spirit.Karma)
         template <>
- struct not_is_variant<expression_ast>
+ struct not_is_variant<expression_ast, karma::domain>
           : mpl::false_ {};
+
+ // the specialization of variant_which allows to generically extract
+ // the current type stored in the given variant like type
+ template <>
+ struct variant_which<expression_ast>
+ {
+ static int call(expression_ast const& v)
+ {
+ return v.which();
+ }
+ };
     }}
 }
 

Modified: branches/quickbook-dev/libs/spirit/test/Jamfile
==============================================================================
--- branches/quickbook-dev/libs/spirit/test/Jamfile (original)
+++ branches/quickbook-dev/libs/spirit/test/Jamfile 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 #==============================================================================
 # Copyright (c) 2001-2011 Joel de Guzman
-# Copyright (c) 2001-2011 Hartmut Kaiser
+# Copyright (c) 2001-2012 Hartmut Kaiser
 # Copyright (c) 2011 Bryce Lelbach
 #
 # Use, modification and distribution is subject to the Boost Software
@@ -248,6 +248,8 @@
      [ run karma/regression_optional_double.cpp : : : : karma_regression_optional_double ]
      [ run karma/regression_semantic_action_attribute.cpp : : : : karma_regression_semantic_action_attribute ]
      [ run karma/regression_real_scientific.cpp : : : : karma_regression_real_scientific ]
+ [ run karma/regression_center_alignment.cpp : : : : karma_regression_center_alignment ]
+ [ run karma/regression_container_variant_sequence.cpp : : : : regression_container_variant_sequence ]
 
     ;
 

Modified: branches/quickbook-dev/libs/thread/build/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/thread/build/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/thread/build/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -44,7 +44,15 @@
       -<tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).tag
       <tag>@$(__name__).tag
       <toolset>gcc:<cxxflags>-Wno-long-long
- : default-build <threading>multi
+ <define>BOOST_SYSTEM_NO_DEPRECATED
+ <library>/boost/system//boost_system
+
+ # : default-build <threading>multi
+ : usage-requirements # pass these requirement to dependents (i.e. users)
+ <link>static:<define>BOOST_THREAD_BUILD_LIB=1
+ <link>shared:<define>BOOST_THREAD_BUILD_DLL=1
+ <define>BOOST_SYSTEM_NO_DEPRECATED
+ <library>/boost/system//boost_system
     ;
 
 local rule default_threadapi ( )
@@ -152,6 +160,16 @@
             # in that case?
         }
     }
+
+ if <toolset>vacpp in $(properties)
+ {
+ result += <define>BOOST_THREAD_DONT_USE_CHRONO ;
+ }
+ else
+ {
+ result += <library>/boost/chrono//boost_chrono ;
+ }
+
     return $(result) ;
 }
 
@@ -175,6 +193,15 @@
             }
         }
     }
+ if <toolset>vacpp in $(properties)
+ {
+ result += <define>BOOST_THREAD_DONT_USE_CHRONO ;
+ }
+ else
+ {
+ result += <library>/boost/chrono//boost_chrono ;
+ }
+
     return $(result) ;
 }
 
@@ -198,7 +225,7 @@
 explicit thread_sources ;
 
 lib boost_thread
- : thread_sources
+ : thread_sources future.cpp
     : <conditional>@requirements
     :
     : <link>shared:<define>BOOST_THREAD_USE_DLL=1

Modified: branches/quickbook-dev/libs/thread/doc/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/thread/doc/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/thread/doc/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,4 +1,5 @@
-# (C) Copyright 2008 Anthony Williams
+# (C) Copyright 2008-11 Anthony Williams
+# (C) Copyright 2011-12 Vicente J. Botet Escriba
 #
 # Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -15,13 +16,13 @@
         # Use graphics not text for navigation:
         <xsl:param>navig.graphics=1
         # How far down we chunk nested sections, basically all of them:
- <xsl:param>chunk.section.depth=3
+ <xsl:param>chunk.section.depth=2
         # Don't put the first section on the same page as the TOC:
         <xsl:param>chunk.first.sections=1
         # How far down sections get TOC's
- <xsl:param>toc.section.depth=10
+ <xsl:param>toc.section.depth=4
         # Max depth in each TOC:
- <xsl:param>toc.max.depth=3
+ <xsl:param>toc.max.depth=2
         # How far down we go with TOC's
         <xsl:param>generate.section.toc.level=10
         # Path for links to Boost:

Modified: branches/quickbook-dev/libs/thread/doc/changes.qbk
==============================================================================
--- branches/quickbook-dev/libs/thread/doc/changes.qbk (original)
+++ branches/quickbook-dev/libs/thread/doc/changes.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,13 +1,54 @@
 [/
- (C) Copyright 2007-8 Anthony Williams.
+ (C) Copyright 2007-11 Anthony Williams.
+ (C) Copyright 2011-12 Vicente J. Botet Escriba.
   Distributed under the Boost Software License, Version 1.0.
   (See accompanying file LICENSE_1_0.txt or copy at
   http://www.boost.org/LICENSE_1_0.txt).
 ]
 
-[section:changes Changes since]
+[section:changes History]
 
-[heading Changes since boost 1.41]
+[heading Version 2.0.0 - boost 1.50]
+
+New Features:
+
+* [@http://svn.boost.org/trac/boost/ticket/2741 #2741] Proposal to manage portable and non portable thread attributes.
+* [@http://svn.boost.org/trac/boost/ticket/6195 #6195] c++11 compliance: Provide the standard time related interface using Boost.Chrono.
+* [@http://svn.boost.org/trac/boost/ticket/6224 #6224] c++11 compliance: Add the use of standard noexcept on compilers supporting them.
+* [@http://svn.boost.org/trac/boost/ticket/6226 #6226] c++11 compliance: Add explicit bool conversion from locks.
+* [@http://svn.boost.org/trac/boost/ticket/6230 #6230] c++11 compliance: Follows the exception reporting mechanism as defined in the c++11.
+* [@http://svn.boost.org/trac/boost/ticket/6272 #6272] c++11 compliance: Add thread::id hash specialization.
+* [@http://svn.boost.org/trac/boost/ticket/6273 #6273] c++11 compliance: Add cv_status enum class and use it on the conditions wait functions.
+* [@http://svn.boost.org/trac/boost/ticket/6194 #6194] Adapt to Boost.Move.
+
+Fixed Bugs:
+
+* [@http://svn.boost.org/trac/boost/ticket/2575 #2575] Bug- Boost 1.36.0 on Itanium platform.
+* [@http://svn.boost.org/trac/boost/ticket/4921 #4921] BOOST_THREAD_USE_DLL and BOOST_THREAD_USE_LIB are crucial and need to be documented.
+* [@http://svn.boost.org/trac/boost/ticket/5013 #5013] documentation: boost::thread: pthreas_exit causes terminate().
+
+* [@http://svn.boost.org/trac/boost/ticket/5351 #5351] interrupt a future get boost::unknown_exception.
+* [@http://svn.boost.org/trac/boost/ticket/5516 #5516] Upgrade lock is not acquired when previous upgrade lock releases if another read lock is present.
+* [@http://svn.boost.org/trac/boost/ticket/5990 #5990] shared_future<T>::get() has wrong return type.
+* [@http://svn.boost.org/trac/boost/ticket/6174 #6174] packaged_task doesn't correctly handle moving results.
+
+[/
+
+Deprecated features since boost 1.50 available only until boost 1.55:
+
+These deprecated features will be provided by default up to boost 1.52. If you don't want to include the deprecated features you could define BOOST_THREAD_DONT_PROVIDE_DEPRECATED_FEATURES_SINCE_V2_0_0. Since 1.53 these features will not be included any more by default. Since this version, if you want to include the deprecated features yet you could define BOOST_THREAD_PROVIDE_DEPRECATED_FEATURES_SINCE_V2_0_0. These deprecated features will be only available until boost 1.55, that is you have 1 year and a half to move to the new features.
+
+* Time related functions don't using the Boost.Chrono library, use the chrono overloads instead.
+
+Breaking changes:
+
+There are some new features which share the same interface but with different behavior. These breaking features are not provided by default when BOOST_THREAD_VERSION is 2, but the user can however choose the version 1 behavior by defining the corresponding macro. As for the deprecated features, these broken features will be only available until boost 1.55.
+
+* #6266 c++11 compliance: thread destructor should call terminate if joinable
+* #6269 c++11 compliance: thread move assignment should call terminate if joinable
+]
+
+[heading boost 1.49]
 
 Fixed Bugs:
 
@@ -38,7 +79,6 @@
 * [@http://svn.boost.org/trac/boost/ticket/6207 #6207] shared_lock swap compiler error on clang 3.0 c++11.
 * [@http://svn.boost.org/trac/boost/ticket/6208 #6208] try_lock_wrapper swap compiler error on clang 3.0 c++11.
 
-
 [heading Changes since boost 1.40]
 
 The 1.41.0 release of Boost adds futures to the thread library. There are also a few minor changes.
@@ -124,17 +164,13 @@
 
 The following features will be included in next releases. By order of priority:
 
-* [@http://svn.boost.org/trac/boost/ticket/6194 #6194] Adapt to Boost.Move.
 * [@http://svn.boost.org/trac/boost/ticket/4710 #4710] Missing async().
-* [@http://svn.boost.org/trac/boost/ticket/6195 #6195] Provide the standard time related interface using Boost.Chrono.
- * [@http://svn.boost.org/trac/boost/ticket/2637 #2637] shared mutex lock
 * Lock guards
   * [@http://svn.boost.org/trac/boost/ticket/1850 #1850] request for unlock_guard (and/or unique_unlock) to compliment lock_guard/unique_lock
   * [@http://svn.boost.org/trac/boost/ticket/3567 #3567] Request for shared_lock_guard
-* [@http://svn.boost.org/trac/boost/ticket/2741 #2741] Proposal to manage portable and non portable thread attributes.
- * #2880 Request for Thread scheduler support for boost ..
- * #3696 Boost Thread library lacks any way to set priority of threads
- * #5956 Add optional stack_size argument to thread::start_thread()
+* #2880 Request for Thread scheduler support for boost ..
+* #3696 Boost Thread library lacks any way to set priority of threads
+* #5956 Add optional stack_size argument to thread::start_thread()
 
 [endsect]
 

Modified: branches/quickbook-dev/libs/thread/doc/compliance.qbk
==============================================================================
--- branches/quickbook-dev/libs/thread/doc/compliance.qbk (original)
+++ branches/quickbook-dev/libs/thread/doc/compliance.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- (C) Copyright 2011 Vicente J. Botet Escriba.
+ (C) Copyright 2011-12 Vicente J. Botet Escriba.
   Distributed under the Boost Software License, Version 1.0.
   (See accompanying file LICENSE_1_0.txt or copy at
   http://www.boost.org/LICENSE_1_0.txt).
@@ -16,76 +16,77 @@
     [[30.1] [General] [-] [-] [-]]
     [[30.2] [Requirements] [-] [-] [-]]
     [[30.2.1] [Template parameter names] [-] [-] [-]]
- [[30.2.2] [Exceptions] [No] [-] [#12]]
+ [[30.2.2] [Exceptions] [Yes] [-] [#6230]]
     [[30.2.3] [Native handles] [Yes] [-] [-]]
- [[30.2.4] [Timing specifications] [No] [-] [#6195]]
+ [[30.2.4] [Timing specifications] [Yes] [-] [#6195]]
     [[30.2.5] [Requirements for Lockable types] [Partial] [-] [-]]
     [[30.2.5.1] [In general] [-] [-] [-]]
- [[30.2.5.2] [BasicLockable requirements] [No] [-] [#13]]
+ [[30.2.5.2] [BasicLockable requirements] [No] [-] [#6231]]
     [[30.2.5.3] [Lockable requirements] [yes] [-] [-]]
- [[30.2.5.4] [TimedLockable requirements] [Partial] [chrono] [#6195]]
+ [[30.2.5.4] [TimedLockable requirements] [Yes] [-] [#6195]]
     [[30.2.6] [decay_copy] [-] [-] [-]]
     [[30.3] [Threads] [Partial] [-] [-]]
- [[30.3.1] [Class thread] [Partial] [-] [-]]
- [[30.3.1.1] [Class thread::id] [Partial] [Missing noexcept, template <> struct hash<thread::id>] [#3,#4]]
- [[30.3.1.2] [thread constructors] [Partial] [Missing noexcept and move semantics] [#3,#6194]]
- [[30.3.1.3] [thread destructor] [Yes] [-] [-]]
- [[30.3.1.4] [thread assignment] [Partial] [move semantics] [-]]
- [[30.3.1.5] [thread members] [Partial] [Missing noexcept, chrono] [#3,#6195]]
- [[30.3.1.6] [thread static members] [Partial] [Missing noexcept] [#3,#6195]]
+ [[30.3.1] [Class thread] [Partial] [move,terminate] [-]]
+ [[30.3.1.1] [Class thread::id] [Yes] [-] [#6224,#6272]]
+ [[30.3.1.2] [thread constructors] [Partial] [move] [#6224,#6194, #6270]]
+ [[30.3.1.3] [thread destructor] [Partial] [terminate] [#6266]]
+ [[30.3.1.4] [thread assignment] [Partial] [move, terminate] [#6269]]
+ [[30.3.1.5] [thread members] [Yes] [-] [#6224,#6195]]
+ [[30.3.1.6] [thread static members] [Yes] [-] [#6224]]
     [[30.3.1.7] [thread specialized algorithms] [Yes] [-] [-]]
- [[30.3.2] [Namespace this_thread] [Partial] [chrono] [#6195]]
- [[30.4] [Mutual exclusion] [Partial] [-] [-]]
- [[30.4.1] [Mutex requirements] [Partial] [-] [-]]
- [[30.4.1.1] [In general] [Partial] [-] [-]]
- [[30.4.1.2] [Mutex types] [Partial] [noexcept,delete] [#3,#5]]
- [[30.4.1.2.1] [Class mutex] [Partial] [noexcept,delete] [#3,#5]]
- [[30.4.1.2.2] [Class recursive_mutex] [Partial] [noexcept,delete] [#3,#5]]
- [[30.4.1.3] [Timed mutex types] [Partial] [noexcept,chrono,delete] [#3,#6195,#5]]
- [[30.4.1.3.1] [Class timed_mutex] [Partial] [noexcept,chrono,delete] [#3,#6195,#5]]
- [[30.4.1.3.1] [Class recursive_timed_mutex] [Partial] [noexcept,chrono,delete] [#3,#6195,#5]]
- [[30.4.2] [Locks] [Partial] [noexcept,chrono,move,delete,bool] [#3,#6195,#5,#6]]
- [[30.4.2.1] [Class template lock_guard] [Partial] [cons/dest delete] [#5]]
- [[30.4.2.2] [Class template unique_lock] [Partial] [noexcept, chrono, move, delete] [#3,#6195,#5,#6]]
- [[30.4.2.2.1] [unique_lock constructors, destructor, and assignment] [Partial] [noexcept, chrono, move, delete] [#3,#6195,#5,#6]]
- [[30.4.2.2.2] [unique_lock locking] [Partial] [chrono] [,#6195,]]
+
+ [[30.3.2] [Namespace this_thread] [Yes] [-] [#6195]]
+ [[30.4] [Mutual exclusion] [Partial] [move] [-]]
+ [[30.4.1] [Mutex requirements] [Yes] [-] [-]]
+ [[30.4.1.1] [In general] [Yes] [-] [-]]
+ [[30.4.1.2] [Mutex types] [Yes] [-] [#6224,#6225]]
+ [[30.4.1.2.1] [Class mutex] [Yes] [-] [#6224,#6225]]
+ [[30.4.1.2.2] [Class recursive_mutex] [Yes] [-] [#6224,#6225]]
+ [[30.4.1.3] [Timed mutex types] [Yes] [-] [#6224,#6195,#6225]]
+ [[30.4.1.3.1] [Class timed_mutex] [Yes] [-] [#6224,#6195,#6225]]
+ [[30.4.1.3.1] [Class recursive_timed_mutex] [Yes] [-] [#6224,#6195,#6225]]
+ [[30.4.2] [Locks] [Partial] [move] [#6224,#6195,#6225,#6227]]
+ [[30.4.2.1] [Class template lock_guard] [Yes] [-] [#6225]]
+ [[30.4.2.2] [Class template unique_lock] [Yes] [move] [#6224,#6195,#6225,#6227]]
+ [[30.4.2.2.1] [unique_lock constructors, destructor, and assignment] [Partial] [move] [#6224,#6195,#6225,#6227]]
+ [[30.4.2.2.2] [unique_lock locking] [Yes] [-] [#6195]]
     [[30.4.2.2.3] [unique_lock modifiers] [Yes] [-] [-]]
- [[30.4.2.2.4] [unique_lock observers] [Partial] [explicit operator bool] [#6]]
- [[30.4.3] [Generic locking algorithms] [Partial] [Variadic,] [#7]]
- [[30.4.4] [Call once] [Partial] [move,variadic] [#6194,#7]]
- [[30.4.4.1] [Struct once_flag] [Yes] [-] [-]]
- [[30.4.4.2] [Function call_once] [Yes] [-] [-]]
- [[30.5] [Condition variables] [Partial] [chrono,cv_status,notify_all_at_thread_exit] [#6195,#8,#9]]
+ [[30.4.2.2.4] [unique_lock observers] [Yes] [] [#6227]]
+ [[30.4.3] [Generic locking algorithms] [Partial] [variadic] [#6227]]
+ [[30.4.4] [Call once] [Partial] [move,variadic,] [#6194,#7]]
+ [[30.4.4.1] [Struct once_flag] [Partial] [interface] [#xx]]
+ [[30.4.4.2] [Function call_once] [Partial] [move,variadic,interface] [#xx]]
+ [[30.5] [Condition variables] [Partial] [notify_all_at_thread_exit] [#6195,#6273,#9]]
     [[30.5 6-10] [Function notify_all_at_thread_exit] [No] [-] [#9]]
- [[30.5.1] [Class condition_variable] [Partial] [chrono,cv_status] [#6195,#8]]
- [[30.5.2] [Class condition_variable_any] [Partial] [chrono,cv_status] [#6195,#8]]
+ [[30.5.1] [Class condition_variable] [Yes] [-] [#6195,#6273]]
+ [[30.5.2] [Class condition_variable_any] [Yes] [-] [#6195,#6273]]
     [[30.6] [Futures] [Partial] [-] [-]]
     [[30.6.1] [Overview] [Partial] [-] [-]]
     [[30.6.2] [Error handling] [No] [-] [-]]
     [[30.6.3] [Class future_error] [No] [-] [-]]
     [[30.6.4] [Shared state] [No] [-] [-]]
- [[30.6.5] [Class template promise] [Partial] [allocator,move,delete] [#10,#6194,#5]]
- [[30.6.6] [Class template future] [No] [unique_future is the closest to future] [#11]]
- [[30.6.7] [Class template shared_future] [Partial] [allocator,move,delete] [#10,#6194,#5]]
+ [[30.6.5] [Class template promise] [Partial] [allocator,move] [#6228,#6194,#6225]]
+ [[30.6.6] [Class template future] [No] [unique_future is the closest to future] [##6229,#6228]]
+ [[30.6.7] [Class template shared_future] [Partial] [allocator,move] [#6228,#6194,#6225]]
     [[30.6.8] [Function template async] [No] [async] [#4710]]
- [[30.6.8] [Class template packaged_task] [Partial] [-] [-]]
+ [[30.6.8] [Class template packaged_task] [Partial] [move] [#6194]]
 ]
 
-
+[/
 [table Extension
     [[Section] [Description] [Comments]]
     [[30.3.1.5.x] [interrupt] [-]]
- [[30.3.1.5.y] [operator==,operator!=] [-]]
- [[30.3.2.x] [Interruprion] [-]]
+ [[30.3.2.x] [Interruption] [-]]
     [[30.3.2.y] [at_thread_exit] [-]]
     [[30.4.3.x] [Generic locking algorithms begin/end] [-]]
     [[30.x] [Barriers] [-]]
     [[30.y] [Thread Local Storage] [-]]
     [[30.z] [Class thread_group] [-]]
 ]
-
+]
 [endsect]
 
+[/
 [section:shared Shared Mutex library extension]
 
 [table Clock Requirements
@@ -95,6 +96,6 @@
 ]
 
 [endsect]
-
+]
 
 [endsect]

Modified: branches/quickbook-dev/libs/thread/doc/condition_variables.qbk
==============================================================================
--- branches/quickbook-dev/libs/thread/doc/condition_variables.qbk (original)
+++ branches/quickbook-dev/libs/thread/doc/condition_variables.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,6 @@
 [/
- (C) Copyright 2007-8 Anthony Williams.
+ (C) Copyright 2007-11 Anthony Williams.
+ (C) Copyright 2011-12 Vicente J. Botet Escriba.
   Distributed under the Boost Software License, Version 1.0.
   (See accompanying file LICENSE_1_0.txt or copy at
   http://www.boost.org/LICENSE_1_0.txt).
@@ -9,6 +10,17 @@
 
 [heading Synopsis]
 
+ namespace boost
+ {
+ enum class cv_status;
+ {
+ no_timeout,
+ timeout
+ };
+ class condition_variable;
+ class condition_variable_any;
+ }
+
 The classes `condition_variable` and `condition_variable_any` provide a
 mechanism for one thread to wait for notification from another thread that a
 particular condition has become true. The general usage pattern is that one
@@ -84,31 +96,57 @@
             condition_variable();
             ~condition_variable();
 
- void notify_one();
- void notify_all();
+ void notify_one() noexcept;
+ void notify_all() noexcept;
 
             void wait(boost::unique_lock<boost::mutex>& lock);
 
             template<typename predicate_type>
             void wait(boost::unique_lock<boost::mutex>& lock,predicate_type predicate);
 
- bool timed_wait(boost::unique_lock<boost::mutex>& lock,boost::system_time const& abs_time);
+ bool timed_wait(boost::unique_lock<boost::mutex>& lock,boost::system_time const& abs_time); // DEPRECATED V2
 
             template<typename duration_type>
- bool timed_wait(boost::unique_lock<boost::mutex>& lock,duration_type const& rel_time);
+ bool timed_wait(boost::unique_lock<boost::mutex>& lock,duration_type const& rel_time); // DEPRECATED V2
 
             template<typename predicate_type>
- bool timed_wait(boost::unique_lock<boost::mutex>& lock,boost::system_time const& abs_time,predicate_type predicate);
+ bool timed_wait(boost::unique_lock<boost::mutex>& lock,boost::system_time const& abs_time,predicate_type predicate); // DEPRECATED V2
 
             template<typename duration_type,typename predicate_type>
- bool timed_wait(boost::unique_lock<boost::mutex>& lock,duration_type const& rel_time,predicate_type predicate);
+ bool timed_wait(boost::unique_lock<boost::mutex>& lock,duration_type const& rel_time,predicate_type predicate); // DEPRECATED V2
+
+ template <class Clock, class Duration>
+ typename cv_status::type
+ wait_until(
+ unique_lock<mutex>& lock,
+ const chrono::time_point<Clock, Duration>& t);
+
+ template <class Clock, class Duration, class Predicate>
+ bool
+ wait_until(
+ unique_lock<mutex>& lock,
+ const chrono::time_point<Clock, Duration>& t,
+ Predicate pred);
+
+ template <class Rep, class Period>
+ typename cv_status::type
+ wait_for(
+ unique_lock<mutex>& lock,
+ const chrono::duration<Rep, Period>& d);
+
+ template <class Rep, class Period, class Predicate>
+ bool
+ wait_for(
+ unique_lock<mutex>& lock,
+ const chrono::duration<Rep, Period>& d,
+ Predicate pred);
 
         // backwards compatibility
 
- bool timed_wait(boost::unique_lock<boost::mutex>& lock,boost::xtime const& abs_time);
+ bool timed_wait(boost::unique_lock<boost::mutex>& lock,boost::xtime const& abs_time); // DEPRECATED V2
 
             template<typename predicate_type>
- bool timed_wait(boost::unique_lock<boost::mutex>& lock,boost::xtime const& abs_time,predicate_type predicate);
+ bool timed_wait(boost::unique_lock<boost::mutex>& lock,boost::xtime const& abs_time,predicate_type predicate); // DEPRECATED V2
         };
     }
 
@@ -208,7 +246,7 @@
 
 [endsect]
 
-[section:timed_wait `bool timed_wait(boost::unique_lock<boost::mutex>& lock,boost::system_time const& abs_time)`]
+[section:timed_wait `bool timed_wait(boost::unique_lock<boost::mutex>& lock,boost::system_time const& abs_time)` DEPRECATED V2]
 
 [variablelist
 
@@ -239,7 +277,7 @@
 
 [endsect]
 
-[section:timed_wait_rel `template<typename duration_type> bool timed_wait(boost::unique_lock<boost::mutex>& lock,duration_type const& rel_time)`]
+[section:timed_wait_rel `template<typename duration_type> bool timed_wait(boost::unique_lock<boost::mutex>& lock,duration_type const& rel_time)` DEPRECATED V2]
 
 [variablelist
 
@@ -272,7 +310,7 @@
 
 [endsect]
 
-[section:timed_wait_predicate `template<typename predicate_type> bool timed_wait(boost::unique_lock<boost::mutex>& lock, boost::system_time const& abs_time, predicate_type pred)`]
+[section:timed_wait_predicate `template<typename predicate_type> bool timed_wait(boost::unique_lock<boost::mutex>& lock, boost::system_time const& abs_time, predicate_type pred)` DEPRECATED V2]
 
 [variablelist
 
@@ -292,6 +330,114 @@
 [endsect]
 
 
+[section:wait_until `template <class Clock, class Duration> cv_status wait_until(boost::unique_lock<boost::mutex>& lock, const chrono::time_point<Clock, Duration>& abs_time)`]
+
+[variablelist
+
+[[Precondition:] [`lock` is locked by the current thread, and either no other
+thread is currently waiting on `*this`, or the execution of the `mutex()` member
+function on the `lock` objects supplied in the calls to `wait` or `wait_for` or `wait_until`
+in all the threads currently waiting on `*this` would return the same value as
+`lock->mutex()` for this call to `wait`.]]
+
+[[Effects:] [Atomically call `lock.unlock()` and blocks the current thread. The
+thread will unblock when notified by a call to `this->notify_one()` or
+`this->notify_all()`, when the time as reported by `Clock::now()`
+would be equal to or later than the specified `abs_time`, or spuriously. When
+the thread is unblocked (for whatever reason), the lock is reacquired by
+invoking `lock.lock()` before the call to `wait` returns. The lock is also
+reacquired by invoking `lock.lock()` if the function exits with an exception.]]
+
+[[Returns:] [`cv_status::no_timeout` if the call is returning because the time specified by
+`abs_time` was reached, `cv_status::timeout` otherwise.]]
+
+[[Postcondition:] [`lock` is locked by the current thread.]]
+
+[[Throws:] [__thread_resource_error__ if an error
+occurs. __thread_interrupted__ if the wait was interrupted by a call to
+__interrupt__ on the __thread__ object associated with the current thread of execution.]]
+
+]
+
+[endsect]
+
+[section:wait_for `template <class Rep, class Period> cv_status wait_for(boost::unique_lock<boost::mutex>& lock, const chrono::duration<Rep, Period>& rel_time)`]
+
+
+[variablelist
+
+[[Precondition:] [`lock` is locked by the current thread, and either no other
+thread is currently waiting on `*this`, or the execution of the `mutex()` member
+function on the `lock` objects supplied in the calls to `wait` or `wait_until` or `wait_for`
+in all the threads currently waiting on `*this` would return the same value as
+`lock->mutex()` for this call to `wait`.]]
+
+[[Effects:] [Atomically call `lock.unlock()` and blocks the current thread. The
+thread will unblock when notified by a call to `this->notify_one()` or
+`this->notify_all()`, after the period of time indicated by the `rel_time`
+argument has elapsed, or spuriously. When the thread is unblocked (for whatever
+reason), the lock is reacquired by invoking `lock.lock()` before the call to
+`wait` returns. The lock is also reacquired by invoking `lock.lock()` if the
+function exits with an exception.]]
+
+[[Returns:] [`cv_status::no_timeout ` if the call is returning because the time period specified
+by `rel_time` has elapsed, `cv_status::timeout ` otherwise.]]
+
+[[Postcondition:] [`lock` is locked by the current thread.]]
+
+[[Throws:] [__thread_resource_error__ if an error
+occurs. __thread_interrupted__ if the wait was interrupted by a call to
+__interrupt__ on the __thread__ object associated with the current thread of execution.]]
+
+]
+
+[note The duration overload of timed_wait is difficult to use correctly. The overload taking a predicate should be preferred in most cases.]
+
+[endsect]
+
+[section:wait_until_predicate `template <class Clock, class Duration, class Predicate> bool wait_until(boost::unique_lock<boost::mutex>& lock, const chrono::time_point<Clock, Duration>& abs_time, Predicate pred)`]
+
+
+[variablelist
+
+[[Effects:] [As-if ``
+while(!pred())
+{
+ if(!wait_until(lock,abs_time))
+ {
+ return pred();
+ }
+}
+return true;
+``]]
+
+]
+
+[endsect]
+
+[section:wait_for_predicate `template <class Rep, class Period, class Predicate> bool wait_for(boost::unique_lock<boost::mutex>& lock, const chrono::duration<Rep, Period>& rel_time, Predicate pred)`]
+
+
+[variablelist
+
+[[Effects:] [As-if ``
+while(!pred())
+{
+ if(!wait_for(lock,rel_time))
+ {
+ return pred();
+ }
+}
+return true;
+``]]
+
+]
+
+[endsect]
+
+
+
+
 [endsect]
 
 [section:condition_variable_any Class `condition_variable_any`]
@@ -316,24 +462,47 @@
             void wait(lock_type& lock,predicate_type predicate);
 
             template<typename lock_type>
- bool timed_wait(lock_type& lock,boost::system_time const& abs_time);
+ bool timed_wait(lock_type& lock,boost::system_time const& abs_time) // DEPRECATED V2;
 
             template<typename lock_type,typename duration_type>
- bool timed_wait(lock_type& lock,duration_type const& rel_time);
+ bool timed_wait(lock_type& lock,duration_type const& rel_time) // DEPRECATED V2;
 
             template<typename lock_type,typename predicate_type>
- bool timed_wait(lock_type& lock,boost::system_time const& abs_time,predicate_type predicate);
+ bool timed_wait(lock_type& lock,boost::system_time const& abs_time,predicate_type predicate) // DEPRECATED V2;
 
             template<typename lock_type,typename duration_type,typename predicate_type>
- bool timed_wait(lock_type& lock,duration_type const& rel_time,predicate_type predicate);
+ bool timed_wait(lock_type& lock,duration_type const& rel_time,predicate_type predicate) // DEPRECATED V2;
+
+ template <class lock_type, class Clock, class Duration>
+ cv_status wait_until(
+ lock_type& lock,
+ const chrono::time_point<Clock, Duration>& t);
+
+ template <class lock_type, class Clock, class Duration, class Predicate>
+ bool wait_until(
+ lock_type& lock,
+ const chrono::time_point<Clock, Duration>& t,
+ Predicate pred);
+
+
+ template <class lock_type, class Rep, class Period>
+ cv_status wait_for(
+ lock_type& lock,
+ const chrono::duration<Rep, Period>& d);
+
+ template <class lock_type, class Rep, class Period, class Predicate>
+ bool wait_for(
+ lock_type& lock,
+ const chrono::duration<Rep, Period>& d,
+ Predicate pred);
 
         // backwards compatibility
 
             template<typename lock_type>
- bool timed_wait(lock_type>& lock,boost::xtime const& abs_time);
+ bool timed_wait(lock_type>& lock,boost::xtime const& abs_time) // DEPRECATED V2;
 
             template<typename lock_type,typename predicate_type>
- bool timed_wait(lock_type& lock,boost::xtime const& abs_time,predicate_type predicate);
+ bool timed_wait(lock_type& lock,boost::xtime const& abs_time,predicate_type predicate) // DEPRECATED V2;
         };
     }
 
@@ -427,7 +596,7 @@
 
 [endsect]
 
-[section:timed_wait `template<typename lock_type> bool timed_wait(lock_type& lock,boost::system_time const& abs_time)`]
+[section:timed_wait `template<typename lock_type> bool timed_wait(lock_type& lock,boost::system_time const& abs_time)` DEPRECATED V2]
 
 [variablelist
 
@@ -452,7 +621,7 @@
 
 [endsect]
 
-[section:timed_wait_rel `template<typename lock_type,typename duration_type> bool timed_wait(lock_type& lock,duration_type const& rel_time)`]
+[section:timed_wait_rel `template<typename lock_type,typename duration_type> bool timed_wait(lock_type& lock,duration_type const& rel_time)` DEPRECATED V2]
 
 [variablelist
 
@@ -479,7 +648,7 @@
 
 [endsect]
 
-[section:timed_wait_predicate `template<typename lock_type,typename predicate_type> bool timed_wait(lock_type& lock, boost::system_time const& abs_time, predicate_type pred)`]
+[section:timed_wait_predicate `template<typename lock_type,typename predicate_type> bool timed_wait(lock_type& lock, boost::system_time const& abs_time, predicate_type pred)` DEPRECATED V2]
 
 [variablelist
 
@@ -498,6 +667,96 @@
 
 [endsect]
 
+[section:wait_until `template <class lock_type, class Clock, class Duration> cv_status wait_until(lock_type& lock, const chrono::time_point<Clock, Duration>& abs_time)`]
+
+[variablelist
+
+[[Effects:] [Atomically call `lock.unlock()` and blocks the current thread. The
+thread will unblock when notified by a call to `this->notify_one()` or
+`this->notify_all()`, when the time as reported by `Clock::now()`
+would be equal to or later than the specified `abs_time`, or spuriously. When
+the thread is unblocked (for whatever reason), the lock is reacquired by
+invoking `lock.lock()` before the call to `wait` returns. The lock is also
+reacquired by invoking `lock.lock()` if the function exits with an exception.]]
+
+[[Returns:] [`cv_status::timeout` if the call is returning because the time specified by
+`abs_time` was reached, `cv_status::no_timeout` otherwise.]]
+
+[[Postcondition:] [`lock` is locked by the current thread.]]
+
+[[Throws:] [__thread_resource_error__ if an error
+occurs. __thread_interrupted__ if the wait was interrupted by a call to
+__interrupt__ on the __thread__ object associated with the current thread of execution.]]
+
+]
+
+[endsect]
+
+[section:wait_for `template <class lock_type, class Rep, class Period> cv_status wait_for(lock_type& lock, const chrono::duration<Rep, Period>& rel_time)`]
+
+[variablelist
+
+[[Effects:] [Atomically call `lock.unlock()` and blocks the current thread. The
+thread will unblock when notified by a call to `this->notify_one()` or
+`this->notify_all()`, after the period of time indicated by the `rel_time`
+argument has elapsed, or spuriously. When the thread is unblocked (for whatever
+reason), the lock is reacquired by invoking `lock.lock()` before the call to
+`wait` returns. The lock is also reacquired by invoking `lock.lock()` if the
+function exits with an exception.]]
+
+[[Returns:] [`cv_status::timeout` if the call is returning because the time specified by
+`abs_time` was reached, `cv_status::no_timeout` otherwise.]]
+
+[[Postcondition:] [`lock` is locked by the current thread.]]
+
+[[Throws:] [__thread_resource_error__ if an error
+occurs. __thread_interrupted__ if the wait was interrupted by a call to
+__interrupt__ on the __thread__ object associated with the current thread of execution.]]
+
+]
+
+[note The duration overload of timed_wait is difficult to use correctly. The overload taking a predicate should be preferred in most cases.]
+
+[endsect]
+
+[section:wait_until_predicate `template <class lock_type, class Clock, class Duration, class Predicate> bool wait_until(lock_type& lock, const chrono::time_point<Clock, Duration>& abs_time, Predicate pred)`]
+
+[variablelist
+
+[[Effects:] [As-if ``
+while(!pred())
+{
+ if(!__cvany_wait_until(lock,abs_time))
+ {
+ return pred();
+ }
+}
+return true;
+``]]
+
+]
+
+[endsect]
+
+[section:wait_for_predicate `template <class lock_type, class Rep, class Period, class Predicate> bool wait_until(lock_type& lock, const chrono::duration<Rep, Period>& rel_time, Predicate pred)`]
+
+[variablelist
+
+[[Effects:] [As-if ``
+while(!pred())
+{
+ if(!__cvany_wait_for(lock,rel_time))
+ {
+ return pred();
+ }
+}
+return true;
+``]]
+
+]
+
+[endsect]
+
 [endsect]
 
 [section:condition Typedef `condition`]

Modified: branches/quickbook-dev/libs/thread/doc/future_ref.qbk
==============================================================================
--- branches/quickbook-dev/libs/thread/doc/future_ref.qbk (original)
+++ branches/quickbook-dev/libs/thread/doc/future_ref.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- (C) Copyright 2008-9 Anthony Williams.
+ (C) Copyright 2008-11 Anthony Williams.
   Distributed under the Boost Software License, Version 1.0.
   (See accompanying file LICENSE_1_0.txt or copy at
   http://www.boost.org/LICENSE_1_0.txt).

Modified: branches/quickbook-dev/libs/thread/doc/futures.qbk
==============================================================================
--- branches/quickbook-dev/libs/thread/doc/futures.qbk (original)
+++ branches/quickbook-dev/libs/thread/doc/futures.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,5 @@
 [/
- (C) Copyright 2008-9 Anthony Williams.
+ (C) Copyright 2008-11 Anthony Williams.
   Distributed under the Boost Software License, Version 1.0.
   (See accompanying file LICENSE_1_0.txt or copy at
   http://www.boost.org/LICENSE_1_0.txt).

Modified: branches/quickbook-dev/libs/thread/doc/mutex_concepts.qbk
==============================================================================
--- branches/quickbook-dev/libs/thread/doc/mutex_concepts.qbk (original)
+++ branches/quickbook-dev/libs/thread/doc/mutex_concepts.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,6 @@
 [/
   (C) Copyright 2007-8 Anthony Williams.
+ (C) Copyright 2011-12 Vicente J. Botet Escriba.
   Distributed under the Boost Software License, Version 1.0.
   (See accompanying file LICENSE_1_0.txt or copy at
   http://www.boost.org/LICENSE_1_0.txt).
@@ -38,6 +39,16 @@
 
 [[Throws:] [__thread_resource_error__ if an error occurs.]]
 
+[[Error Conditions:] [
+
+[*operation_not_permitted]: if the thread does not have the privilege to perform the operation.
+
+[*resource_deadlock_would_occur]: if the implementation detects that a deadlock would occur.
+
+[*device_or_resource_busy]: if the mutex is already locked and blocking is not possible.
+
+]]
+
 ]
 [endsect]
 
@@ -51,7 +62,7 @@
 
 [[Postcondition:] [If the call returns `true`, the current thread owns the `*this`.]]
 
-[[Throws:] [__thread_resource_error__ if an error occurs.]]
+[[Throws:] [Nothing.]]
 
 ]
 [endsect]
@@ -66,7 +77,7 @@
 
 [[Postcondition:] [The current thread no longer owns `*this`.]]
 
-[[Throws:] [Nothing]]
+[[Throws:] [Nothing.]]
 ]
 [endsect]
 [endsect]
@@ -80,12 +91,17 @@
 of the __lockable_concept__. In addition, the following member functions must be
 provided:
 
-* [timed_lock_ref_link `bool timed_lock(boost::system_time const& abs_time);`]
-* [timed_lock_duration_ref_link `template<typename DurationType> bool timed_lock(DurationType const& rel_time);`]
+* [timed_lock_ref_link `bool timed_lock(boost::system_time const& abs_time);` DEPRECATED V2]
+* [timed_lock_duration_ref_link `template<typename DurationType> bool timed_lock(DurationType const& rel_time);` DEPRECATED V2]
+
+ template <class Rep, class Period>
+ bool try_lock_for(const chrono::duration<Rep, Period>& rel_time);
+ template <class Clock, class Duration>
+ bool try_lock_until(const chrono::time_point<Clock, Duration>& t);
 
-Lock ownership acquired through a call to __timed_lock_ref__ must be released through a call to __unlock_ref__.
+Lock ownership acquired through a call to __timed_lock_ref__, __try_lock_for or __try_lock_until must be released through a call to __unlock_ref__.
 
-[section:timed_lock `bool timed_lock(boost::system_time const& abs_time)`]
+[section:timed_lock `bool timed_lock(boost::system_time const& abs_time)` DEPRECATED V2]
 
 [variablelist
 
@@ -101,7 +117,7 @@
 [endsect]
 
 [section:timed_lock_duration `template<typename DurationType> bool
-timed_lock(DurationType const& rel_time)`]
+timed_lock(DurationType const& rel_time)` DEPRECATED V2]
 
 [variablelist
 
@@ -111,6 +127,32 @@
 ]
 [endsect]
 
+[section:try_lock_until `template <class Clock, class Duration> bool try_lock_until(const chrono::time_point<Clock, Duration>& abs_time)`]
+
+[variablelist
+
+[[Effects:] [Attempt to obtain ownership for the current thread. Blocks until ownership can be obtained, or the specified time is
+reached. If the specified time has already passed, behaves as __try_lock_ref__.]]
+
+[[Returns:] [`true` if ownership was obtained for the current thread, `false` otherwise.]]
+
+[[Postcondition:] [If the call returns `true`, the current thread owns `*this`.]]
+
+[[Throws:] [Nothing.]]
+]
+[endsect]
+
+[section:try_lock_for `template <class Rep, class Period> bool
+try_lock_for(const chrono::duration<Rep, Period>& rel_time)`]
+
+[variablelist
+
+[[Effects:] [As-if `__try_lock_until(chrono::steady_clock::now() + rel_time)`.]]
+
+]
+[endsect]
+
+
 [endsect]
 
 [section:shared_lockable `SharedLockable` Concept]
@@ -403,41 +445,54 @@
     class unique_lock
     {
     public:
- unique_lock();
+ unique_lock() noexcept;
         explicit unique_lock(Lockable& m_);
         unique_lock(Lockable& m_,adopt_lock_t);
- unique_lock(Lockable& m_,defer_lock_t);
+ unique_lock(Lockable& m_,defer_lock_t) noexcept;
         unique_lock(Lockable& m_,try_to_lock_t);
- unique_lock(Lockable& m_,system_time const& target_time);
+ unique_lock(Lockable& m_,system_time const& target_time); // DEPRECATED V2
 
+ template <class Clock, class Duration>
+ unique_lock(Mutex& mtx, const chrono::time_point<Clock, Duration>& t);
+ template <class Rep, class Period>
+ unique_lock(Mutex& mtx, const chrono::duration<Rep, Period>& d);
         ~unique_lock();
 
- unique_lock(detail::thread_move_t<unique_lock<Lockable> > other);
- unique_lock(detail::thread_move_t<upgrade_lock<Lockable> > other);
+ unique_lock(unique_lock<Lockable>&& other) noexcept;
+ unique_lock(detail::thread_move_t<unique_lock<Lockable> > other) noexcept;
+ unique_lock(upgrade_lock<Lockable>&& other) noexcept;
+ unique_lock(detail::thread_move_t<upgrade_lock<Lockable> > other) noexcept;
 
         operator detail::thread_move_t<unique_lock<Lockable> >();
         detail::thread_move_t<unique_lock<Lockable> > move();
- unique_lock& operator=(detail::thread_move_t<unique_lock<Lockable> > other);
- unique_lock& operator=(detail::thread_move_t<upgrade_lock<Lockable> > other);
+ unique_lock& operator=(unique_lock<Lockable>&& other) noexcept;
+ unique_lock& operator=(detail::thread_move_t<unique_lock<Lockable> > other) noexcept;
+ unique_lock& operator=(upgrade_lock<Lockable>&& other) noexcept;
+ unique_lock& operator=(detail::thread_move_t<upgrade_lock<Lockable> > other) noexcept;
 
- void swap(unique_lock& other);
- void swap(detail::thread_move_t<unique_lock<Lockable> > other);
+ void swap(unique_lock& other) noexcept;
+ void swap(detail::thread_move_t<unique_lock<Lockable> > other) noexcept;
 
         void lock();
         bool try_lock();
 
         template<typename TimeDuration>
- bool timed_lock(TimeDuration const& relative_time);
- bool timed_lock(::boost::system_time const& absolute_time);
+ bool timed_lock(TimeDuration const& relative_time); // DEPRECATED V2
+ bool timed_lock(::boost::system_time const& absolute_time); // DEPRECATED V2
+ template <class Rep, class Period>
+ bool try_lock_for(const chrono::duration<Rep, Period>& rel_time);
+ template <class Clock, class Duration>
+ bool try_lock_until(const chrono::time_point<Clock, Duration>& abs_time);
 
         void unlock();
 
- bool owns_lock() const;
- operator ``['unspecified-bool-type]``() const;
- bool operator!() const;
+ bool owns_lock() const noexcept;
+ explicit operator bool() const noexcept;
+ operator ``['unspecified-bool-type]``() const noexcept;
+ bool operator!() const noexcept;
 
- Lockable* mutex() const;
- Lockable* release();
+ Lockable* mutex() const noexcept;
+ Lockable* release() noexcept;
     };
 
 __unique_lock__ is more complex than __lock_guard__: not only does it provide for RAII-style locking, it also allows for deferring
@@ -533,7 +588,7 @@
 
 [endsect]
 
-[section:constructor_abs_time `unique_lock(Lockable & m,boost::system_time const& abs_time)`]
+[section:constructor_abs_time `unique_lock(Lockable & m,boost::system_time const& abs_time)` // DEPRECATED V2]
 
 [variablelist
 
@@ -551,6 +606,47 @@
 
 [endsect]
 
+[section:constructor_time_point `template <class Clock, class Duration> unique_lock(Lockable & m,const chrono::time_point<Clock, Duration>& abs_time)`]
+
+ template <class Rep, class Period>
+ unique_lock(Mutex& mtx, const chrono::duration<Rep, Period>& d);
+
+
+[variablelist
+
+[[Effects:] [Stores a reference to `m`. Invokes
+`m.__try_lock_until(abs_time)`, and takes ownership of the lock state if the call
+returns `true`.]]
+
+[[Postcondition:] [__mutex_func_ref__ returns `&m`. If the call to __try_lock_until
+returned `true`, then __owns_lock_ref__ returns `true`, otherwise __owns_lock_ref__
+returns `false`.]]
+
+[[Throws:] [Any exceptions thrown by the call to `m.__try_lock_until(abs_time)`.]]
+
+]
+
+[endsect]
+
+[section:constructor_duration `template <class Rep, class Period> unique_lock(Lockable & m,const chrono::duration<Rep, Period>& abs_time)`]
+
+
+[variablelist
+
+[[Effects:] [Stores a reference to `m`. Invokes
+`m.__try_lock_for(rel_time)`, and takes ownership of the lock state if the call
+returns `true`.]]
+
+[[Postcondition:] [__mutex_func_ref__ returns `&m`. If the call to __try_lock_for
+returned `true`, then __owns_lock_ref__ returns `true`, otherwise __owns_lock_ref__
+returns `false`.]]
+
+[[Throws:] [Any exceptions thrown by the call to `m.__try_lock_for(rel_time)`.]]
+
+]
+
+[endsect]
+
 [section:destructor `~unique_lock()`]
 
 [variablelist
@@ -604,6 +700,18 @@
 
 [endsect]
 
+[section:explicit_bool_conversion `explicit operator bool() const`]
+
+[variablelist
+
+[[Returns:] [`__owns_lock_ref__()`.]]
+
+[[Throws:] [Nothing.]]
+
+]
+
+[endsect]
+
 [section:operator_not `bool operator!() const`]
 
 [variablelist

Modified: branches/quickbook-dev/libs/thread/doc/mutexes.qbk
==============================================================================
--- branches/quickbook-dev/libs/thread/doc/mutexes.qbk (original)
+++ branches/quickbook-dev/libs/thread/doc/mutexes.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,6 @@
 [/
- (C) Copyright 2007-8 Anthony Williams.
+ (C) Copyright 2007-11 Anthony Williams
+ (C) Copyright 2011-12 Vicente J. Botet Escriba
   Distributed under the Boost Software License, Version 1.0.
   (See accompanying file LICENSE_1_0.txt or copy at
   http://www.boost.org/LICENSE_1_0.txt).
@@ -75,10 +76,14 @@
         void lock();
         void unlock();
         bool try_lock();
- bool timed_lock(system_time const & abs_time);
-
+ bool timed_lock(system_time const & abs_time); // DEPRECATED V2
         template<typename TimeDuration>
- bool timed_lock(TimeDuration const & relative_time);
+ bool timed_lock(TimeDuration const & relative_time); // DEPRECATED V2
+
+ template <class Rep, class Period>
+ bool try_lock_for(const chrono::duration<Rep, Period>& rel_time);
+ template <class Clock, class Duration>
+ bool try_lock_until(const chrono::time_point<Clock, Duration>& t);
 
         typedef platform-specific-type native_handle_type;
         native_handle_type native_handle();
@@ -181,10 +186,14 @@
         bool try_lock();
         void unlock();
 
- bool timed_lock(system_time const & abs_time);
-
+ bool timed_lock(system_time const & abs_time); // DEPRECATED V2
         template<typename TimeDuration>
- bool timed_lock(TimeDuration const & relative_time);
+ bool timed_lock(TimeDuration const & relative_time); // DEPRECATED V2
+
+ template <class Rep, class Period>
+ bool try_lock_for(const chrono::duration<Rep, Period>& rel_time);
+ template <class Clock, class Duration>
+ bool try_lock_until(const chrono::time_point<Clock, Duration>& t);
 
         typedef platform-specific-type native_handle_type;
         native_handle_type native_handle();

Modified: branches/quickbook-dev/libs/thread/doc/overview.qbk
==============================================================================
--- branches/quickbook-dev/libs/thread/doc/overview.qbk (original)
+++ branches/quickbook-dev/libs/thread/doc/overview.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,6 @@
 [/
- (C) Copyright 2007-8 Anthony Williams.
+ (C) Copyright 2007-12 Anthony Williams.
+ (C) Copyright 20012 Vicente J. Botet Escriba.
   Distributed under the Boost Software License, Version 1.0.
   (See accompanying file LICENSE_1_0.txt or copy at
   http://www.boost.org/LICENSE_1_0.txt).
@@ -11,13 +12,14 @@
 functions for managing the threads themselves, along with others for synchronizing data between the threads or providing separate
 copies of data specific to individual threads.
 
-The __boost_thread__ library was originally written and designed by William E. Kempf. This version is a major rewrite designed to
+The __boost_thread__ library was originally written and designed by William E. Kempf (version 0). Anthony Williams version (version 1) was a major rewrite designed to
 closely follow the proposals presented to the C++ Standards Committee, in particular
 [@http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2497.html N2497],
 [@http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2320.html N2320],
 [@http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2184.html N2184],
 [@http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2139.html N2139], and
 [@http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2094.html N2094]
+Vicente J. Botet Escriba started in version 2 the adaptation to comply with the accepted Thread C++11 library.
 
 In order to use the classes and functions described here, you can
 either include the specific headers specified by the descriptions of

Modified: branches/quickbook-dev/libs/thread/doc/thread.qbk
==============================================================================
--- branches/quickbook-dev/libs/thread/doc/thread.qbk (original)
+++ branches/quickbook-dev/libs/thread/doc/thread.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,14 +1,16 @@
 [/
- (C) Copyright 2007-8 Anthony Williams.
+ (C) Copyright 2008-11 Anthony Williams
+ (C) Copyright 2011-12 Vicente J. Botet Escriba
   Distributed under the Boost Software License, Version 1.0.
   (See accompanying file LICENSE_1_0.txt or copy at
   http://www.boost.org/LICENSE_1_0.txt).
 ]
 
 [article Thread
- [quickbook 1.4]
- [authors [Williams, Anthony]]
- [copyright 2007-8 Anthony Williams]
+ [quickbook 1.5]
+ [authors [Williams, Anthony] [Botet Escriba, Vicente J.]]
+ [copyright 2007-11 Anthony Williams]
+ [copyright 2011-12 Vicente J. Botet Escriba]
     [purpose C++ Library for launching threads and synchronizing data between them]
     [category text]
     [license
@@ -53,6 +55,9 @@
 [template timed_lock_ref_link[link_text] [link thread.synchronization.mutex_concepts.timed_lockable.timed_lock [link_text]]]
 [def __timed_lock_ref__ [timed_lock_ref_link `timed_lock()`]]
 
+[def __try_lock_for [link thread.synchronization.mutex_concepts.timed_lockable.try_lock_for `try_lock_for`]]
+[def __try_lock_until [link thread.synchronization.mutex_concepts.timed_lockable.try_lock_until `try_lock_until`]]
+
 [template timed_lock_duration_ref_link[link_text] [link thread.synchronization.mutex_concepts.timed_lockable.timed_lock_duration [link_text]]]
 [def __timed_lock_duration_ref__ [timed_lock_duration_ref_link `timed_lock()`]]
 
@@ -117,14 +122,22 @@
 
 
 [def __thread__ [link thread.thread_management.thread `boost::thread`]]
+[def __thread [link thread.thread_management.thread `boost::thread`]]
 [def __thread_id__ [link thread.thread_management.thread.id `boost::thread::id`]]
 [template join_link[link_text] [link thread.thread_management.thread.join [link_text]]]
 [def __join__ [join_link `join()`]]
+
+[def __try_join_for [link thread.thread_management.thread.try_join_for `try_join_for`]]
+[def __try_join_until [link thread.thread_management.thread.try_join_until `try_join_until`]]
+
+
 [template timed_join_link[link_text] [link thread.thread_management.thread.timed_join [link_text]]]
 [def __timed_join__ [timed_join_link `timed_join()`]]
 [def __detach__ [link thread.thread_management.thread.detach `detach()`]]
 [def __interrupt__ [link thread.thread_management.thread.interrupt `interrupt()`]]
 [def __sleep__ [link thread.thread_management.this_thread.sleep `boost::this_thread::sleep()`]]
+[def __sleep_for [link thread.thread_management.this_thread.sleep_for `sleep_for`]]
+[def __sleep_until [link thread.thread_management.this_thread.sleep_until `sleep_until`]]
 
 [def __interruption_enabled__ [link thread.thread_management.this_thread.interruption_enabled `boost::this_thread::interruption_enabled()`]]
 [def __interruption_requested__ [link thread.thread_management.this_thread.interruption_requested `boost::this_thread::interruption_requested()`]]
@@ -140,11 +153,21 @@
 [def __cond_wait__ [cond_wait_link `wait()`]]
 [template cond_timed_wait_link[link_text] [link thread.synchronization.condvar_ref.condition_variable.timed_wait [link_text]]]
 [def __cond_timed_wait__ [cond_timed_wait_link `timed_wait()`]]
+
+[def __condition_variable [link thread.synchronization.condvar_ref.condition_variable `condition_variable`]]
+[def __wait_for [link thread.synchronization.condvar_ref.condition_variable.wait_for `wait_for`]]
+[def __wait_until [link thread.synchronization.condvar_ref.condition_variable.wait_until `wait_until`]]
+
+
 [template cond_any_wait_link[link_text] [link thread.synchronization.condvar_ref.condition_variable_any.wait [link_text]]]
 [def __cond_any_wait__ [cond_any_wait_link `wait()`]]
 [template cond_any_timed_wait_link[link_text] [link thread.synchronization.condvar_ref.condition_variable_any.timed_wait [link_text]]]
 [def __cond_any_timed_wait__ [cond_any_timed_wait_link `timed_wait()`]]
 
+[def __condition_variable_any [link thread.synchronization.condvar_ref.condition_variable_any `condition_variable_any`]]
+[def __cvany_wait_for [link thread.synchronization.condvar_ref.condition_variable_any.wait_for `wait_for`]]
+[def __cvany_wait_until [link thread.synchronization.condvar_ref.condition_variable_any.wait_until `wait_until`]]
+
 [def __blocked__ ['blocked]]
 
 [include overview.qbk]

Modified: branches/quickbook-dev/libs/thread/doc/thread_ref.qbk
==============================================================================
--- branches/quickbook-dev/libs/thread/doc/thread_ref.qbk (original)
+++ branches/quickbook-dev/libs/thread/doc/thread_ref.qbk 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,5 +1,6 @@
 [/
   (C) Copyright 2007-8 Anthony Williams.
+ (C) Copyright 2011-12 Vicente J. Botet Escriba.
   Distributed under the Boost Software License, Version 1.0.
   (See accompanying file LICENSE_1_0.txt or copy at
   http://www.boost.org/LICENSE_1_0.txt).
@@ -7,7 +8,35 @@
 
 [section:thread_management Thread Management]
 
-[heading Synopsis]
+[section:synopsis Synopsis]
+
+ namespace boost
+ {
+ class thread;
+ void swap(thread& lhs,thread& rhs);
+ namespace this_thread
+ {
+ thread::id get_id() noexcept;
+ template<typename TimeDuration>
+ void sleep(TimeDuration const& rel_time); // DEPRECATED
+ void sleep(system_time const& abs_time) // DEPRECATED
+ void yield() noexcept;
+ template <class Clock, class Duration>
+ void sleep_until(const chrono::time_point<Clock, Duration>& abs_time);
+ template <class Rep, class Period>
+ void sleep_for(const chrono::duration<Rep, Period>& rel_time);
+
+ void interruption_point();
+ bool interruption_requested();
+ bool interruption_enabled();
+ class disable_interruption;
+ class restore_interruption;
+ }
+ }
+
+[endsect] [/section:synopsis Synopsis]
+
+[section:tutorial Tutorial]
 
 The __thread__ class is responsible for launching and managing threads. Each __thread__ object represents a single thread of execution,
 or __not_a_thread__, and at most one __thread__ object represents a given thread of execution: objects of type __thread__ are not
@@ -24,14 +53,14 @@
         some_thread.join();
     }
 
-[Note: On compilers that support rvalue references, __thread__ provides a proper move constructor and move-assignment operator, and
+[note On compilers that support rvalue references, __thread__ provides a proper move constructor and move-assignment operator, and
 therefore meets the C++0x ['MoveConstructible] and ['MoveAssignable] concepts. With such compilers, __thread__ can therefore be used
 with containers that support those concepts.
 
 For other compilers, move support is provided with a move emulation layer, so containers must explicitly detect that move emulation
 layer. See <boost/thread/detail/move.hpp> for details.]
 
-[heading Launching threads]
+[section:launching Launching threads]
 
 A new thread is launched by passing an object of a callable type that can be invoked with no parameters to the constructor. The
 object is then copied into internal storage, and invoked on the newly-created thread of execution. If the object must not (or
@@ -68,12 +97,99 @@
 
 There is an unspecified limit on the number of additional arguments that can be passed.
 
-[heading Exceptions in thread functions]
+[endsect]
+
+[section:attributes Thread attributes]
+
+Thread launched in this way are created with implementation defined thread attributes as stack size, scheduling,
+priority, ... or any platform specific attributes. It is not evident how to provide a portable interface that allows
+the user to set the platform specific attributes. Boost.Thread stay in the middle road through the class
+thread::attributes which allows to set at least in a portable way the stack size as follows:
+
+ boost::thread::attributes attrs;
+ attrs.set_size(4096*10);
+ boost::thread deep_thought_2(attrs, find_the_question, 42);
+
+Even for this simple attribute there could be portable issues as some platforms could require that the stack size
+should have a minimal size and/or be a multiple of a given page size.
+The library adapts the requested size to the platform constraints so that the user doesn't need to take care of it.
+
+This is the single attribute that is provided in a portable way. In order to set any other thread attribute at
+construction time the user needs to use non portable code.
+
+On PThread platforms the user will need to get the thread attributes handle and use it for whatever attribute.
+
+Next follows how the user could set the stack size and the scheduling policy on PThread platforms.
+
+ boost::thread::attributes attrs;
+ // set portable attributes
+ // ...
+ attr.set_stack_size(4096*10);
+ #if defined(BOOST_THREAD_PLATFORM_WIN32)
+ // ... window version
+ #elif defined(BOOST_THREAD_PLATFORM_PTHREAD)
+ // ... pthread version
+ pthread_attr_setschedpolicy(attr.get_native_handle(), SCHED_RR);
+ #else
+ #error "Boost threads unavailable on this platform"
+ #endif
+ boost::thread th(attrs, find_the_question, 42);
+
+On Windows platforms it is not so simple as there is no type that compiles the thread attributes.
+There is a linked to the creation of a thread on Windows that is emulated via the thread::attributes class. This is the LPSECURITY_ATTRIBUTES lpThreadAttributes.
+Boost.Thread provides a non portable set_security function so that the user can provide it before the thread creation as follows
+
+[/Boost.Thread creates Windows threads that are suspended. Then it calls to the virtual function set_attributes and last it resumes the thread.
+The user needs to define a class that inherits from the class thread::attributes that defines a virtual function set_attributes to set any specific Windows thread attribute.
+
+
+ class MyWinTthreadAttributes : boost::thread::attributes
+ {
+ public:
+ void set_attributes(boost::thread::native_handle_type h)
+ {
+ // use any specific windows thread setting
+
+ }
+ };
+ #if defined(BOOST_THREAD_PLATFORM_WIN32)
+
+ MyWinTthreadAttributes attrs;
+ // set portable attributes
+ // ...
+ attr.set_stack_size(4096*10);
+ boost::thread th(attrs, find_the_question, 42);
+ #else
+ #error "Platform not supported"
+ #endif
+
+]
+
+ #if defined(BOOST_THREAD_PLATFORM_WIN32)
+ boost::thread::attributes attrs;
+ // set portable attributes
+ attr.set_stack_size(4096*10);
+ // set non portable attribute
+ LPSECURITY_ATTRIBUTES sec;
+ // init sec
+ attr.set_security(sec);
+ boost::thread th(attrs, find_the_question, 42);
+ // Set other thread attributes using the native_handle_type.
+ //...
+ #else
+ #error "Platform not supported"
+ #endif
+
+[endsect]
+
+[section:exceptions Exceptions in thread functions]
 
 If the function or callable object passed to the __thread__ constructor propagates an exception when invoked that is not of type
 __thread_interrupted__, `std::terminate()` is called.
 
-[heading Joining and detaching]
+[endsect]
+
+[section:join Joining and detaching]
 
 When the __thread__ object that represents a thread of execution is destroyed the thread becomes ['detached]. Once a thread is
 detached, it will continue executing until the invocation of the function or callable object supplied on construction has completed,
@@ -86,7 +202,9 @@
 returns immediately. __timed_join__ is similar, except that a call to __timed_join__ will also return if the thread being waited for
 does not complete when the specified time has elapsed.
 
-[heading Interruption]
+[endsect]
+
+[section:interruption Interruption]
 
 A running thread can be ['interrupted] by invoking the __interrupt__ member function of the corresponding __thread__ object. When the
 interrupted thread next executes one of the specified __interruption_points__ (or if it is currently __blocked__ whilst executing one)
@@ -142,16 +260,25 @@
 current thread, and interruption is requested for the current thread:
 
 * [join_link `boost::thread::join()`]
-* [timed_join_link `boost::thread::timed_join()`]
+* [timed_join_link `boost::thread::timed_join()` DEPRECATED V2]
+* `boost::__thread::__try_join_for()`,
+* `boost::__thread::__try_join_until()`,
 * [cond_wait_link `boost::condition_variable::wait()`]
-* [cond_timed_wait_link `boost::condition_variable::timed_wait()`]
+* [cond_timed_wait_link `boost::condition_variable::timed_wait()` DEPRECATED V2]
+* `boost::__condition_variable::__wait_for()`
+* `boost::__condition_variable::__wait_until()`
 * [cond_any_wait_link `boost::condition_variable_any::wait()`]
-* [cond_any_timed_wait_link `boost::condition_variable_any::timed_wait()`]
-* [link thread.thread_management.thread.sleep `boost::thread::sleep()`]
-* __sleep__
+* [cond_any_timed_wait_link `boost::condition_variable_any::timed_wait()` DEPRECATED V2]
+* `boost::__condition_variable_any::__cvany_wait_for()`
+* `boost::__condition_variable_any::__cvany_wait_until()`
+* [link thread.thread_management.thread.sleep `boost::thread::sleep()` DEPRECATED V2]
+* `boost::this_thread::__sleep_for()`
+* `boost::this_thread::__sleep_until()`
 * __interruption_point__
 
-[heading Thread IDs]
+[endsect]
+
+[section:id Thread IDs]
 
 Objects of class __thread_id__ can be used to identify threads. Each running thread of execution has a unique ID obtainable
 from the corresponding __thread__ by calling the `get_id()` member function, or by calling `boost::this_thread::get_id()` from
@@ -163,14 +290,15 @@
 compare equal to each other, but not equal to any instances that refer to an actual thread of execution. The comparison operators on
 __thread_id__ yield a total order for every non-equal thread ID.
 
-[heading Using native interfaces with Boost.Thread resources]
+[endsect]
+
+[section:native_in Using native interfaces with Boost.Thread resources]
 
 
 __thread__ class has members `native_handle_type` and `native_handle` providing access to the underlying native handle.
          
 This native handle can be used to change for example the scheduling.
 
-
 In general, it is not safe to use this handle with operations that can conflict with the ones provided by Boost.Thread. An example of bad usage could be detaching a thread directly as it will not change the internals of the __thread__ instance, so for example the joinable function will continue to return true, while the native thread is no more joinable.
 
   thread t(fct);
@@ -178,19 +306,21 @@
   pthread_detach(hnd);
   assert(t.joinable());
 
-[heading Using Boost.Thread interfaces in a native thread]
+[endsect]
+
+[section:native_from Using Boost.Thread interfaces in a native thread]
  
 
 Any thread of execution created using the native interface is called a native thread in this documentation.
 
 The first example of a native thread of execution is the main thread.
 
-The user can access to some synchronization functions related to the native current thread using the `boost::this_thread` `yield`, `sleep`, functions.
+The user can access to some synchronization functions related to the native current thread using the `boost::this_thread` `yield`, `sleep`, __sleep_for, __sleep_until, functions.
 
 
   int main() {
     // ...
- boost::this_thread::sleep();
+ boost::this_thread::sleep_for(boost::chrono::milliseconds(10));
     // ...
   }
 
@@ -207,6 +337,10 @@
 
 This behavior is incompatible with the current Boost.Thread design, so the use of this function in a POSIX thread result in undefined behavior of any Boost.Thread function.
 
+[endsect]
+
+[endsect] [/section:tutorial Tutorial]
+
 [section:thread Class `thread`]
 
     #include <boost/thread/thread.hpp>
@@ -214,7 +348,12 @@
     class thread
     {
     public:
- thread();
+ thread() noexcept;
+ thread(const thread&) = delete;
+ thread& operator=(const thread&) = delete;
+
+ thread(thread&&) noexcept;
+ thread& operator=(thread&&) noexcept;
         ~thread();
 
         template <class F>
@@ -226,27 +365,32 @@
         template <class F>
         thread(detail::thread_move_t<F> f);
 
+ template <class F, class ...Args> explicit thread(F&& f, Args&&... args);
+
         // move support
         thread(detail::thread_move_t<thread> x);
         thread& operator=(detail::thread_move_t<thread> x);
         operator detail::thread_move_t<thread>();
         detail::thread_move_t<thread> move();
 
- void swap(thread& x);
+ void swap(thread& x) noexcept;
 
         class id;
- id get_id() const;
+ id get_id() const noexcept;
 
- bool joinable() const;
+ bool joinable() const noexcept;
         void join();
- bool timed_join(const system_time& wait_until);
-
+ bool timed_join(const system_time& wait_until); // DEPRECATED V2
         template<typename TimeDuration>
- bool timed_join(TimeDuration const& rel_time);
+ bool timed_join(TimeDuration const& rel_time); // DEPRECATED V2
+ template <class Rep, class Period>
+ bool try_join_for(const chrono::duration<Rep, Period>& rel_time);
+ template <class Clock, class Duration>
+ bool try_join_until(const chrono::time_point<Clock, Duration>& t);
 
         void detach();
 
- static unsigned hardware_concurrency();
+ static unsigned hardware_concurrency() noexcept;
 
         typedef platform-specific-type native_handle_type;
         native_handle_type native_handle();
@@ -255,19 +399,20 @@
         bool interruption_requested() const;
 
         // backwards compatibility
- bool operator==(const thread& other) const;
- bool operator!=(const thread& other) const;
+ bool operator==(const thread& other) const; // DEPRECATED V2
+ bool operator!=(const thread& other) const; // DEPRECATED V2
+
+ static void yield(); // DEPRECATED V2
+ static void sleep(const system_time& xt); // DEPRECATED V2
 
- static void yield();
- static void sleep(const system_time& xt);
     };
 
- void swap(thread& lhs,thread& rhs);
+ void swap(thread& lhs,thread& rhs) noexcep;
     detail::thread_move_t<thread> move(detail::thread_move_t<thread> t);
 
 [section:default_constructor Default Constructor]
 
- thread();
+ thread() noexcep;
 
 [variablelist
 
@@ -281,6 +426,7 @@
 
 [section:move_constructor Move Constructor]
 
+ thread(thread&& other) noexcept;
     thread(detail::thread_move_t<thread> other);
 
 [variablelist
@@ -297,6 +443,7 @@
 
 [section:move_assignment Move assignment operator]
 
+ thread& operator=(thread&& other) noexcept;
     thread& operator=(detail::thread_move_t<thread> other);
 
 [variablelist
@@ -328,7 +475,13 @@
 
 [[Postconditions:] [`*this` refers to the newly created thread of execution.]]
 
-[[Throws:] [__thread_resource_error__ if an error occurs.]]
+[[Throws:] [__thread_resource_error__ if an error occurs. ]]
+
+[[Error Conditions:] [
+
+[*resource_unavailable_try_again] : the system lacked the necessary resources to create an- other thread, or the system-imposed limit on the number of threads in a process would be exceeded.
+
+]]
 
 ]
 
@@ -352,6 +505,12 @@
 
 [[Throws:] [__thread_resource_error__ if an error occurs.]]
 
+[[Error Conditions:] [
+
+[*resource_unavailable_try_again] : the system lacked the necessary resources to create an- other thread, or the system-imposed limit on the number of threads in a process would be exceeded.
+
+]]
+
 [[Note:] [Currently up to nine additional arguments `a1` to `a9` can be specified in addition to the function `f`.]]
 
 ]
@@ -374,7 +533,7 @@
 
 [section:joinable Member function `joinable()`]
 
- bool joinable() const;
+ bool joinable() const noexcept;
 
 [variablelist
 
@@ -399,7 +558,19 @@
 
 [[Postconditions:] [If `*this` refers to a thread of execution on entry, that thread of execution has completed. `*this` no longer refers to any thread of execution.]]
 
-[[Throws:] [__thread_interrupted__ if the current thread of execution is interrupted.]]
+[[Throws:] [__thread_interrupted__ if the current thread of execution is interrupted or `system_error`]]
+
+[[Error Conditions:] [
+
+[*resource_deadlock_would_occur]: if deadlock is detected or this->get_id() == std::this_thread::get_id().
+
+[/
+[*no_such_process]: if the thread is not valid.
+
+[*invalid_argument]: if the thread is not joinable.
+]
+
+]]
 
 [[Notes:] [`join()` is one of the predefined __interruption_points__.]]
 
@@ -407,7 +578,7 @@
 
 [endsect]
 
-[section:timed_join Member function `timed_join()`]
+[section:timed_join Member function `timed_join()` DEPRECATED V2]
 
     bool timed_join(const system_time& wait_until);
 
@@ -428,7 +599,19 @@
 has completed, and `*this` no longer refers to any thread of execution. If this call to `timed_join` returns `false`, `*this` is
 unchanged.]]
 
-[[Throws:] [__thread_interrupted__ if the current thread of execution is interrupted.]]
+[[Throws:] [__thread_interrupted__ if the current thread of execution is interrupted or `system_error`]]
+
+[[Error Conditions:] [
+
+[*resource_deadlock_would_occur]: if deadlock is detected or this->get_id() == std::this_thread::get_id().
+
+[/
+[*no_such_process]: if the thread is not valid.
+
+[*invalid_argument]: if the thread is not joinable.
+]
+
+]]
 
 [[Notes:] [`timed_join()` is one of the predefined __interruption_points__.]]
 
@@ -436,6 +619,86 @@
 
 [endsect]
 
+[section:try_join_for Member function `try_join_for()`]
+
+ template <class Rep, class Period>
+ bool try_join_for(const chrono::duration<Rep, Period>& rel_time);
+
+[variablelist
+
+[[Preconditions:] [`this->get_id()!=boost::this_thread::get_id()`]]
+
+[[Effects:] [If `*this` refers to a thread of execution, waits for that thread of execution to complete,
+the specified duration `rel_time` has elapsed. If `*this` doesn't refer to a thread of execution, returns immediately.]]
+
+[[Returns:] [`true` if `*this` refers to a thread of execution on entry, and that thread of execution has completed before the call
+times out, `false` otherwise.]]
+
+[[Postconditions:] [If `*this` refers to a thread of execution on entry, and `try_join_for` returns `true`, that thread of execution
+has completed, and `*this` no longer refers to any thread of execution. If this call to `try_join_for` returns `false`, `*this` is
+unchanged.]]
+
+[[Throws:] [__thread_interrupted__ if the current thread of execution is interrupted or `system_error`]]
+
+[[Error Conditions:] [
+
+[*resource_deadlock_would_occur]: if deadlock is detected or this->get_id() == std::this_thread::get_id().
+
+[/
+[*no_such_process]: if the thread is not valid.
+
+[*invalid_argument]: if the thread is not joinable.
+]
+
+]]
+
+[[Notes:] [`try_join_for()` is one of the predefined __interruption_points__.]]
+
+]
+
+[endsect]
+
+[section:try_join_until Member function `try_join_until()`]
+
+ template <class Clock, class Duration>
+ bool try_join_until(const chrono::time_point<Clock, Duration>& abs_time);
+
+[variablelist
+
+[[Preconditions:] [`this->get_id()!=boost::this_thread::get_id()`]]
+
+[[Effects:] [If `*this` refers to a thread of execution, waits for that thread of execution to complete, the time `abs_time` has
+been reach. If `*this` doesn't refer to a thread of execution, returns immediately.]]
+
+[[Returns:] [`true` if `*this` refers to a thread of execution on entry, and that thread of execution has completed before the call
+times out, `false` otherwise.]]
+
+[[Postconditions:] [If `*this` refers to a thread of execution on entry, and `try_join_until` returns `true`, that thread of execution
+has completed, and `*this` no longer refers to any thread of execution. If this call to `try_join_until` returns `false`, `*this` is
+unchanged.]]
+
+[[Throws:] [__thread_interrupted__ if the current thread of execution is interrupted or `system_error`]]
+
+[[Error Conditions:] [
+
+[*resource_deadlock_would_occur]: if deadlock is detected or this->get_id() == std::this_thread::get_id().
+
+[/
+[*no_such_process]: if the thread is not valid.
+
+[*invalid_argument]: if the thread is not joinable.
+]
+
+]]
+
+[[Notes:] [`try_join_until()` is one of the predefined __interruption_points__.]]
+
+]
+
+[endsect]
+
+
+
 [section:detach Member function `detach()`]
 
     void detach();
@@ -455,7 +718,7 @@
 
 [section:get_id Member function `get_id()`]
 
- thread::id get_id() const;
+ thread::id get_id() const noexcept;
 
 [variablelist
 
@@ -487,7 +750,7 @@
 
 [section:hardware_concurrency Static member function `hardware_concurrency()`]
 
- unsigned hardware_concurrency();
+ unsigned hardware_concurrency() noexecpt;
 
 [variablelist
 
@@ -540,7 +803,7 @@
 
 [endsect]
 
-[section:sleep Static member function `sleep()`]
+[section:sleep Static member function `sleep()` DEPRECATED V2]
 
     void sleep(system_time const& abs_time);
 
@@ -556,7 +819,7 @@
 
 [endsect]
 
-[section:yield Static member function `yield()`]
+[section:yield Static member function `yield()` DEPRECATED V2]
 
     void yield();
 
@@ -570,7 +833,7 @@
 
 [section:swap Member function `swap()`]
 
- void swap(thread& other);
+ void swap(thread& other) noexcept;
 
 [variablelist
 
@@ -590,7 +853,7 @@
 
     #include <boost/thread/thread.hpp>
 
- void swap(thread& lhs,thread& rhs);
+ void swap(thread& lhs,thread& rhs) noexcept;
 
 [variablelist
 
@@ -628,14 +891,14 @@
     class thread::id
     {
     public:
- id();
+ id() noexcept;
 
- bool operator==(const id& y) const;
- bool operator!=(const id& y) const;
- bool operator<(const id& y) const;
- bool operator>(const id& y) const;
- bool operator<=(const id& y) const;
- bool operator>=(const id& y) const;
+ bool operator==(const id& y) const noexcept;
+ bool operator!=(const id& y) const noexcept;
+ bool operator<(const id& y) const noexcept;
+ bool operator>(const id& y) const noexcept;
+ bool operator<=(const id& y) const noexcept;
+ bool operator>=(const id& y) const noexcept;
 
         template<class charT, class traits>
         friend std::basic_ostream<charT, traits>&
@@ -644,7 +907,7 @@
 
 [section:constructor Default constructor]
 
- id();
+ id() noexcept;
 
 [variablelist
 
@@ -658,7 +921,7 @@
 
 [section:is_equal `operator==`]
 
- bool operator==(const id& y) const;
+ bool operator==(const id& y) const noexcept;
 
 [variablelist
 
@@ -673,7 +936,7 @@
 
 [section:not_equal `operator!=`]
 
- bool operator!=(const id& y) const;
+ bool operator!=(const id& y) const noexcept;
 
 [variablelist
 
@@ -688,7 +951,7 @@
 
 [section:less_than `operator<`]
 
- bool operator<(const id& y) const;
+ bool operator<(const id& y) const noexcept;
 
 [variablelist
 
@@ -707,7 +970,7 @@
 
 [section:greater_than `operator>`]
 
- bool operator>(const id& y) const;
+ bool operator>(const id& y) const noexcept;
 
 [variablelist
 
@@ -721,7 +984,7 @@
 
 [section:less_than_or_equal `operator<=`]
 
- bool operator<=(const id& y) const;
+ bool operator<=(const id& y) const noexcept;
 
 [variablelist
 
@@ -735,7 +998,7 @@
 
 [section:greater_than_or_equal `operator>=`]
 
- bool operator>=(const id& y) const;
+ bool operator>=(const id& y) const noexcept;
 
 [variablelist
 
@@ -771,13 +1034,34 @@
 
 [section:this_thread Namespace `this_thread`]
 
+
+ namespace boost {
+ namespace this_thread {
+ thread::id get_id() noexcept;
+ template<typename TimeDuration>
+ void sleep(TimeDuration const& rel_time); // DEPRECATED V2
+ void sleep(system_time const& abs_time) // DEPRECATED V2
+ void yield() noexcept;
+ template <class Clock, class Duration>
+ void sleep_until(const chrono::time_point<Clock, Duration>& abs_time);
+ template <class Rep, class Period>
+ void sleep_for(const chrono::duration<Rep, Period>& rel_time);
+
+ void interruption_point();
+ bool interruption_requested();
+ bool interruption_enabled();
+ class disable_interruption;
+ class restore_interruption;
+ }
+ }
+
 [section:get_id Non-member function `get_id()`]
 
     #include <boost/thread/thread.hpp>
 
     namespace this_thread
     {
- thread::id get_id();
+ thread::id get_id() noexcept;
     }
 
 [variablelist
@@ -847,7 +1131,7 @@
 
 [endsect]
 
-[section:sleep Non-member function `sleep()`]
+[section:sleep Non-member function `sleep()` DEPRECATED V2]
 
     #include <boost/thread/thread.hpp>
 
@@ -872,6 +1156,55 @@
 
 [endsect]
 
+[section:sleep_until Non-member function `sleep_until()`]
+
+ #include <boost/thread/thread.hpp>
+
+ namespace this_thread
+ {
+ template <class Clock, class Duration>
+ void sleep_until(const chrono::time_point<Clock, Duration>& abs_time);
+ }
+
+[variablelist
+
+[[Effects:] [Suspends the current thread until the time period
+specified by `rel_time` has elapsed or the time point specified by
+`abs_time` has been reached.]]
+
+[[Throws:] [Nothing if Clock satisfies the TrivialClock requirements and operations of Duration
+do not throw exceptions. __thread_interrupted__ if the current thread of execution is interrupted. ]]
+
+[[Notes:] [`sleep_until()` is one of the predefined __interruption_points__.]]
+
+]
+
+[endsect]
+
+[section:sleep_for Non-member function `sleep_for()`]
+
+ #include <boost/thread/thread.hpp>
+
+ namespace this_thread
+ {
+ template <class Rep, class Period>
+ void sleep_for(const chrono::duration<Rep, Period>& rel_time);
+ }
+
+[variablelist
+
+[[Effects:] [Suspends the current thread until the time point specified by
+`abs_time` has been reached.]]
+
+[[Throws:] [Nothing if operations of chrono::duration<Rep, Period> do not throw exceptions. __thread_interrupted__ if the current thread of execution is interrupted.]]
+
+[[Notes:] [`sleep_for()` is one of the predefined __interruption_points__.]]
+
+]
+
+[endsect]
+
+
 [section:yield Non-member function `yield()`]
 
     #include <boost/thread/thread.hpp>

Modified: branches/quickbook-dev/libs/thread/src/pthread/once.cpp
==============================================================================
--- branches/quickbook-dev/libs/thread/src/pthread/once.cpp (original)
+++ branches/quickbook-dev/libs/thread/src/pthread/once.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Copyright (C) 2007 Anthony Williams
 //
-// Distributed under the Boost Software License, Version 1.0. (See accompanying
+// Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
 #define __STDC_CONSTANT_MACROS
@@ -8,6 +8,7 @@
 #include <boost/assert.hpp>
 #include <pthread.h>
 #include <stdlib.h>
+#include <memory>
 
 namespace boost
 {
@@ -21,7 +22,7 @@
         {
             pthread_key_t epoch_tss_key;
             pthread_once_t epoch_tss_key_flag=PTHREAD_ONCE_INIT;
-
+
             extern "C"
             {
                 static void delete_epoch_tss_data(void* data)
@@ -34,8 +35,26 @@
                     BOOST_VERIFY(!pthread_key_create(&epoch_tss_key,delete_epoch_tss_data));
                 }
             }
+
+#if defined BOOST_THREAD_PATCH
+ const pthread_once_t pthread_once_init_value=PTHREAD_ONCE_INIT;
+ struct BOOST_THREAD_DECL delete_epoch_tss_key_on_dlclose_t
+ {
+ delete_epoch_tss_key_on_dlclose_t()
+ {
+ }
+ ~delete_epoch_tss_key_on_dlclose_t()
+ {
+ if(memcmp(&epoch_tss_key_flag, &pthread_once_init_value, sizeof(pthread_once_t)))
+ {
+ pthread_key_delete(epoch_tss_key);
+ }
+ }
+ };
+ delete_epoch_tss_key_on_dlclose_t delete_epoch_tss_key_on_dlclose;
+#endif
         }
-
+
         boost::uintmax_t& get_once_per_thread_epoch()
         {
             BOOST_VERIFY(!pthread_once(&epoch_tss_key_flag,create_epoch_tss_key));
@@ -49,5 +68,5 @@
             return *static_cast<boost::uintmax_t*>(data);
         }
     }
-
+
 }

Modified: branches/quickbook-dev/libs/thread/src/pthread/thread.cpp
==============================================================================
--- branches/quickbook-dev/libs/thread/src/pthread/thread.cpp (original)
+++ branches/quickbook-dev/libs/thread/src/pthread/thread.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,7 @@
 // Copyright (C) 2001-2003
 // William E. Kempf
 // Copyright (C) 2007-8 Anthony Williams
+// (C) Copyright 2011 Vicente J. Botet Escriba
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -87,6 +88,23 @@
                 }
             }
 
+#if defined BOOST_THREAD_PATCH
+
+ struct delete_current_thread_tls_key_on_dlclose_t
+ {
+ delete_current_thread_tls_key_on_dlclose_t()
+ {
+ }
+ ~delete_current_thread_tls_key_on_dlclose_t()
+ {
+ if (current_thread_tls_init_flag.epoch!=BOOST_ONCE_INITIAL_FLAG_VALUE)
+ {
+ pthread_key_delete(current_thread_tls_key);
+ }
+ }
+ };
+ delete_current_thread_tls_key_on_dlclose_t delete_current_thread_tls_key_on_dlclose;
+#endif
 
             void create_current_thread_tls_key()
             {
@@ -177,7 +195,7 @@
     }
 
 
- thread::thread()
+ thread::thread() BOOST_NOEXCEPT
     {}
 
     void thread::start_thread()
@@ -187,7 +205,42 @@
         if (res != 0)
         {
             thread_info->self.reset();
- boost::throw_exception(thread_resource_error());
+ boost::throw_exception(thread_resource_error(res, "boost thread: failed in pthread_create"));
+ }
+ }
+
+ void thread::start_thread(const attributes& attr)
+ {
+ thread_info->self=thread_info;
+ const attributes::native_handle_type* h = attr.native_handle();
+ int res = pthread_create(&thread_info->thread_handle, h, &thread_proxy, thread_info.get());
+ if (res != 0)
+ {
+ thread_info->self.reset();
+ throw thread_resource_error();
+ }
+ int detached_state;
+ res = pthread_attr_getdetachstate(h, &detached_state);
+ if (res != 0)
+ {
+ thread_info->self.reset();
+ throw thread_resource_error();
+ }
+ if (PTHREAD_CREATE_DETACHED==detached_state)
+ {
+ detail::thread_data_ptr local_thread_info;
+ thread_info.swap(local_thread_info);
+
+ if(local_thread_info)
+ {
+ //lock_guard<mutex> lock(local_thread_info->data_mutex);
+ if(!local_thread_info->join_started)
+ {
+ //BOOST_VERIFY(!pthread_detach(local_thread_info->thread_handle));
+ local_thread_info->join_started=true;
+ local_thread_info->joined=true;
+ }
+ }
         }
     }
 
@@ -203,6 +256,10 @@
 
     void thread::join()
     {
+ if (this_thread::get_id() == get_id())
+ {
+ boost::throw_exception(thread_resource_error(system::errc::resource_deadlock_would_occur, "boost thread: trying joining itself"));
+ }
         detail::thread_data_ptr const local_thread_info=(get_thread_info)();
         if(local_thread_info)
         {
@@ -244,8 +301,12 @@
         }
     }
 
- bool thread::timed_join(system_time const& wait_until)
+ bool thread::do_try_join_until(struct timespec const &timeout)
     {
+ if (this_thread::get_id() == get_id())
+ {
+ boost::throw_exception(thread_resource_error(system::errc::resource_deadlock_would_occur, "boost thread: trying joining itself"));
+ }
         detail::thread_data_ptr const local_thread_info=(get_thread_info)();
         if(local_thread_info)
         {
@@ -255,7 +316,7 @@
                 unique_lock<mutex> lock(local_thread_info->data_mutex);
                 while(!local_thread_info->done)
                 {
- if(!local_thread_info->done_condition.timed_wait(lock,wait_until))
+ if(!local_thread_info->done_condition.do_timed_wait(lock,timeout))
                     {
                         return false;
                     }
@@ -291,7 +352,7 @@
         return true;
     }
 
- bool thread::joinable() const
+ bool thread::joinable() const BOOST_NOEXCEPT
     {
         return (get_thread_info)();
     }
@@ -361,7 +422,34 @@
             }
         }
 
- void yield()
+#ifdef BOOST_THREAD_USES_CHRONO
+ void
+ sleep_for(const chrono::nanoseconds& ns)
+ {
+ using namespace chrono;
+ if (ns >= nanoseconds::zero())
+ {
+ timespec ts;
+ ts.tv_sec = static_cast<long>(duration_cast<seconds>(ns).count());
+ ts.tv_nsec = static_cast<long>((ns - seconds(ts.tv_sec)).count());
+
+# if defined(BOOST_HAS_PTHREAD_DELAY_NP)
+ BOOST_VERIFY(!pthread_delay_np(&ts));
+# elif defined(BOOST_HAS_NANOSLEEP)
+ // nanosleep takes a timespec that is an offset, not
+ // an absolute time.
+ nanosleep(&ts, 0);
+# else
+ mutex mx;
+ mutex::scoped_lock lock(mx);
+ condition_variable cond;
+ cond.wait_for(lock, ns);
+# endif
+ }
+ }
+#endif
+
+ void yield() BOOST_NOEXCEPT
         {
 # if defined(BOOST_HAS_SCHED_YIELD)
             BOOST_VERIFY(!sched_yield());
@@ -374,8 +462,7 @@
 # endif
         }
     }
-
- unsigned thread::hardware_concurrency()
+ unsigned thread::hardware_concurrency() BOOST_NOEXCEPT
     {
 #if defined(PTW32_VERSION) || defined(__hpux)
         return pthread_num_processors_np();
@@ -393,7 +480,7 @@
 #endif
     }
 
- thread::id thread::get_id() const
+ thread::id thread::get_id() const BOOST_NOEXCEPT
     {
         detail::thread_data_ptr const local_thread_info=(get_thread_info)();
         if(local_thread_info)
@@ -453,7 +540,7 @@
 
     namespace this_thread
     {
- thread::id get_id()
+ thread::id get_id() BOOST_NOEXCEPT
         {
             boost::detail::thread_data_base* const thread_info=get_or_make_current_thread_data();
             return thread::id(thread_info?thread_info->shared_from_this():detail::thread_data_ptr());

Modified: branches/quickbook-dev/libs/thread/src/win32/thread.cpp
==============================================================================
--- branches/quickbook-dev/libs/thread/src/win32/thread.cpp (original)
+++ branches/quickbook-dev/libs/thread/src/win32/thread.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -193,7 +193,7 @@
         }
     }
 
- thread::thread()
+ thread::thread() BOOST_NOEXCEPT
     {}
 
     void thread::start_thread()
@@ -208,6 +208,19 @@
         ResumeThread(thread_info->thread_handle);
     }
 
+ void thread::start_thread(const attributes& attr)
+ {
+ //uintptr_t const new_thread=_beginthreadex(attr.get_security(),attr.get_stack_size(),&thread_start_function,thread_info.get(),CREATE_SUSPENDED,&thread_info->id);
+ uintptr_t const new_thread=_beginthreadex(0,attr.get_stack_size(),&thread_start_function,thread_info.get(),CREATE_SUSPENDED,&thread_info->id);
+ if(!new_thread)
+ {
+ boost::throw_exception(thread_resource_error());
+ }
+ intrusive_ptr_add_ref(thread_info.get());
+ thread_info->thread_handle=(detail::win32::handle)(new_thread);
+ ResumeThread(thread_info->thread_handle);
+ }
+
     thread::thread(detail::thread_data_ptr data):
         thread_info(data)
     {}
@@ -262,18 +275,22 @@
         detach();
     }
 
- thread::id thread::get_id() const
+ thread::id thread::get_id() const BOOST_NOEXCEPT
     {
         return thread::id((get_thread_info)());
     }
 
- bool thread::joinable() const
+ bool thread::joinable() const BOOST_NOEXCEPT
     {
         return (get_thread_info)();
     }
 
     void thread::join()
     {
+ if (this_thread::get_id() == get_id())
+ {
+ boost::throw_exception(thread_resource_error(system::errc::resource_deadlock_would_occur, "boost thread: trying joining itself"));
+ }
         detail::thread_data_ptr local_thread_info=(get_thread_info)();
         if(local_thread_info)
         {
@@ -284,6 +301,10 @@
 
     bool thread::timed_join(boost::system_time const& wait_until)
     {
+ if (this_thread::get_id() == get_id())
+ {
+ boost::throw_exception(thread_resource_error(system::errc::resource_deadlock_would_occur, "boost thread: trying joining itself"));
+ }
         detail::thread_data_ptr local_thread_info=(get_thread_info)();
         if(local_thread_info)
         {
@@ -296,6 +317,26 @@
         return true;
     }
 
+#ifdef BOOST_THREAD_USES_CHRONO
+ bool thread::do_try_join_for(chrono::milliseconds const &rel_time_in_milliseconds) {
+ if (this_thread::get_id() == get_id())
+ {
+ boost::throw_exception(thread_resource_error(system::errc::resource_deadlock_would_occur, "boost thread: trying joining itself"));
+ }
+ detail::thread_data_ptr local_thread_info=(get_thread_info)();
+ if(local_thread_info)
+ {
+ if(!this_thread::interruptible_wait(local_thread_info->thread_handle,rel_time_in_milliseconds.count()))
+ {
+ return false;
+ }
+ release_handle();
+ }
+ return true;
+
+ }
+#endif
+
     void thread::detach()
     {
         release_handle();
@@ -321,7 +362,7 @@
         return local_thread_info.get() && (detail::win32::WaitForSingleObject(local_thread_info->interruption_handle,0)==0);
     }
 
- unsigned thread::hardware_concurrency()
+ unsigned thread::hardware_concurrency() BOOST_NOEXCEPT
     {
         SYSTEM_INFO info={{0}};
         GetSystemInfo(&info);
@@ -491,7 +532,7 @@
             return false;
         }
 
- thread::id get_id()
+ thread::id get_id() BOOST_NOEXCEPT
         {
             return thread::id(get_or_make_current_thread_data());
         }
@@ -515,7 +556,7 @@
             return get_current_thread_data() && (detail::win32::WaitForSingleObject(get_current_thread_data()->interruption_handle,0)==0);
         }
 
- void yield()
+ void yield() BOOST_NOEXCEPT
         {
             detail::win32::Sleep(0);
         }

Modified: branches/quickbook-dev/libs/thread/test/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/thread/test/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/thread/test/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
-# (C) Copyright William E. Kempf 2001.
-# (C) Copyright 2007 Anthony Williams.
-# Distributed under the Boost Software License, Version 1.0. (See accompanying
+# (C) Copyright William E. Kempf 2001.
+# (C) Copyright 2007 Anthony Williams.
+# Distributed under the Boost Software License, Version 1.0. (See accompanying
 # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 #
 # Boost.Threads test Jamfile
@@ -25,16 +25,38 @@
 
 rule thread-run ( sources )
 {
- return
+ return
     [ run $(sources) ../build//boost_thread ]
- [ run $(sources) ../src/tss_null.cpp ../build//boost_thread/<link>static
+ [ run $(sources) ../src/tss_null.cpp ../build//boost_thread/<link>static
         : : : : $(sources[1]:B)_lib ]
     ;
-}
+}
+
+rule thread-run2 ( sources : name )
+{
+ return
+ [ run $(sources) ../build//boost_thread : : :
+ : $(name) ]
+ [ run $(sources) ../src/tss_null.cpp ../build//boost_thread/<link>static
+ : : :
+ : $(name)_lib ]
+ ;
+}
+
+
+rule thread-compile-fail-V2 ( sources : reqs * : name )
+{
+ return
+ [ compile-fail $(sources)
+ : $(reqs)
+ : $(name) ]
+ ;
+}
 
 {
- test-suite "threads"
- : [ thread-run test_thread.cpp ]
+ test-suite threads
+ :
+ [ thread-run test_thread.cpp ]
           [ thread-run test_thread_id.cpp ]
           [ thread-run test_hardware_concurrency.cpp ]
           [ thread-run test_thread_move.cpp ]
@@ -62,4 +84,165 @@
           [ compile-fail no_implicit_move_from_lvalue_thread.cpp ]
           [ compile-fail no_implicit_assign_from_lvalue_thread.cpp ]
     ;
+
+
+ #explicit tickets ;
+ test-suite tickets
+ :
+ [ thread-run test_2309.cpp ]
+ [ thread-run test_2501.cpp ]
+ [ thread-run test_2741.cpp ]
+ [ thread-run test_4521.cpp ]
+ [ thread-run test_4648.cpp ]
+ [ thread-run test_4882.cpp ]
+ [ thread-run test_5542_1.cpp ]
+ [ thread-run test_5542_2.cpp ]
+ [ thread-run test_5542_3.cpp ]
+ [ thread-run test_5891.cpp ]
+ [ thread-run test_6130.cpp ]
+ [ thread-run test_6170.cpp ]
+ [ thread-run test_6174.cpp ]
+ ;
+
+
+ explicit oth_tickets ;
+ test-suite oth_tickets
+ :
+ [ thread-run test_5351.cpp ]
+ [ thread-run test_5502.cpp ]
+ ;
+
+
+
+ #explicit conditions ;
+ test-suite conditions
+ :
+ [ thread-compile-fail-V2 ./sync/conditions/condition_variable/assign_fail.cpp : : conditions__condition_variable__assign_fail ]
+ [ thread-compile-fail-V2 ./sync/conditions/condition_variable/copy_fail.cpp : : conditions__condition_variable__copy_fail ]
+ [ thread-run2 ./sync/conditions/condition_variable/default_pass.cpp : conditions__condition_variable__default_pass ]
+ [ thread-run2 ./sync/conditions/condition_variable/dtor_pass.cpp : conditions__condition_variable__dtor_pass ]
+ [ thread-run2 ./sync/conditions/condition_variable/native_handle_pass.cpp : conditions__condition_variable__native_handle_pass ]
+ [ thread-run2 ./sync/conditions/condition_variable/wait_for_pass.cpp : conditions__condition_variable__wait_for_pass ]
+ [ thread-run2 ./sync/conditions/condition_variable/wait_for_pred_pass.cpp : conditions__condition_variable__wait_for_pred_pass ]
+ [ thread-run2 ./sync/conditions/condition_variable/wait_until_pass.cpp : conditions__condition_variable__wait_until_pass ]
+ [ thread-run2 ./sync/conditions/condition_variable/wait_until_pred_pass.cpp : conditions__condition_variable__wait_until_pred_pass ]
+
+ [ thread-compile-fail-V2 ./sync/conditions/condition_variable_any/assign_fail.cpp : : conditions__condition_variable_any__assign_fail ]
+ [ thread-compile-fail-V2 ./sync/conditions/condition_variable_any/copy_fail.cpp : : conditions__condition_variable_any__copy_fail ]
+ [ thread-run2 ./sync/conditions/condition_variable_any/default_pass.cpp : conditions__condition_variable_any__default_pass ]
+ [ thread-run2 ./sync/conditions/condition_variable_any/dtor_pass.cpp : conditions__condition_variable_any__dtor_pass ]
+ [ thread-run2 ./sync/conditions/condition_variable_any/wait_for_pass.cpp : conditions__condition_variable_any__wait_for_pass ]
+ [ thread-run2 ./sync/conditions/condition_variable_any/wait_for_pred_pass.cpp : conditions__condition_variable_any__wait_for_pred_pass ]
+ [ thread-run2 ./sync/conditions/condition_variable_any/wait_until_pass.cpp : conditions__condition_variable_any__wait_until_pass ]
+ [ thread-run2 ./sync/conditions/condition_variable_any/wait_until_pred_pass.cpp : conditions__condition_variable_any__wait_until_pred_pass ]
+ [ thread-run2 ./sync/conditions/cv_status/cv_status_pass.cpp : conditions__cv_status__cv_status_pass ]
+ ;
+
+ #explicit futures ;
+ test-suite futures
+ :
+ # [ thread-run2 ./sync/futures/async/async_pass.cpp : futures__async__async_pass ]
+ [ thread-run2 ./sync/futures/promise/default_pass.cpp : futures__promise__default_pass ]
+ [ thread-run2 ./sync/futures/promise/dtor_pass.cpp : futures__promise__dtor_pass ]
+ [ thread-run2 ./sync/futures/promise/get_future_pass.cpp : futures__promise__get_future_pass ]
+ ;
+
+ explicit tt ;
+ test-suite tt
+ :
+ [ thread-run2 ./sync/mutual_exclusion/locks/unique_lock/cons/try_to_lock_pass.cpp : xmutual_exclusion__locks__unique_lock__cons__try_to_lock_pass ]
+ ;
+
+ #explicit mutual_exclusion ;
+ test-suite mutual_exclusion
+ :
+
+ [ thread-compile-fail-V2 ./sync/mutual_exclusion/locks/unique_lock/cons/copy_assign_fail.cpp : : mutual_exclusion__locks__unique_lock__cons__copy_assign_fail ]
+ [ thread-compile-fail-V2 ./sync/mutual_exclusion/locks/unique_lock/cons/copy_ctor_fail.cpp : : mutual_exclusion__locks__unique_lock__cons__copy_ctor_fail ]
+ [ thread-run2 ./sync/mutual_exclusion/locks/unique_lock/cons/adopt_lock_pass.cpp : mutual_exclusion__locks__unique_lock__cons__adopt_lock_pass ]
+ [ thread-run2 ./sync/mutual_exclusion/locks/unique_lock/cons/default_pass.cpp : mutual_exclusion__locks__unique_lock__cons__default_pass ]
+ [ thread-run2 ./sync/mutual_exclusion/locks/unique_lock/cons/defer_lock_pass.cpp : mutual_exclusion__locks__unique_lock__cons__defer_lock_pass ]
+ [ thread-run2 ./sync/mutual_exclusion/locks/unique_lock/cons/duration_pass.cpp : mutual_exclusion__locks__unique_lock__cons__duration_pass ]
+ [ thread-run2 ./sync/mutual_exclusion/locks/unique_lock/cons/move_assign_pass.cpp : mutual_exclusion__locks__unique_lock__cons__move_assign_pass ]
+ [ thread-run2 ./sync/mutual_exclusion/locks/unique_lock/cons/move_ctor_pass.cpp : mutual_exclusion__locks__unique_lock__cons__move_ctor_pass ]
+ [ thread-run2 ./sync/mutual_exclusion/locks/unique_lock/cons/mutex_pass.cpp : mutual_exclusion__locks__unique_lock__cons__mutex_pass ]
+ [ thread-run2 ./sync/mutual_exclusion/locks/unique_lock/cons/time_point_pass.cpp : mutual_exclusion__locks__unique_lock__cons__time_point_pass ]
+ [ thread-run2 ./sync/mutual_exclusion/locks/unique_lock/cons/try_to_lock_pass.cpp : mutual_exclusion__locks__unique_lock__cons__try_to_lock_pass ]
+ [ thread-run2 ./sync/mutual_exclusion/locks/unique_lock/locking/lock_pass.cpp : mutual_exclusion__locks__unique_lock__locking__lock_pass ]
+ [ thread-run2 ./sync/mutual_exclusion/locks/unique_lock/locking/try_lock_for_pass.cpp : mutual_exclusion__locks__unique_lock__locking__try_lock_for_pass ]
+ [ thread-run2 ./sync/mutual_exclusion/locks/unique_lock/locking/try_lock_pass.cpp : mutual_exclusion__locks__unique_lock__locking__try_lock_pass ]
+ [ thread-run2 ./sync/mutual_exclusion/locks/unique_lock/locking/try_lock_until_pass.cpp : mutual_exclusion__locks__unique_lock__locking__try_lock_until_pass ]
+ [ thread-run2 ./sync/mutual_exclusion/locks/unique_lock/locking/unlock_pass.cpp : mutual_exclusion__locks__unique_lock__locking__unlock_pass ]
+ [ thread-run2 ./sync/mutual_exclusion/locks/unique_lock/mod/member_swap_pass.cpp : mutual_exclusion__locks__unique_lock__mod__member_swap_pass ]
+ [ thread-run2 ./sync/mutual_exclusion/locks/unique_lock/mod/non_member_swap_pass.cpp : mutual_exclusion__locks__unique_lock__mod__non_member_swap_pass ]
+ [ thread-run2 ./sync/mutual_exclusion/locks/unique_lock/mod/release_pass.cpp : mutual_exclusion__locks__unique_lock__mod__release_pass ]
+ [ thread-run2 ./sync/mutual_exclusion/locks/unique_lock/obs/mutex_pass.cpp : mutual_exclusion__locks__unique_lock__obs__mutex_pass ]
+ [ thread-run2 ./sync/mutual_exclusion/locks/unique_lock/obs/op_bool_pass.cpp : mutual_exclusion__locks__unique_lock__obs__op_bool_pass ]
+ [ thread-run2 ./sync/mutual_exclusion/locks/unique_lock/obs/owns_lock_pass.cpp : mutual_exclusion__locks__unique_lock__obs__owns_lock_pass ]
+ [ thread-run2 ./sync/mutual_exclusion/locks/unique_lock/types_pass.cpp : mutual_exclusion__locks__unique_lock__types_pass ]
+
+ [ thread-compile-fail-V2 ./sync/mutual_exclusion/mutex/assign_fail.cpp : : mutual_exclusion__mutex__assign_fail ]
+ [ thread-compile-fail-V2 ./sync/mutual_exclusion/mutex/copy_fail.cpp : : mutual_exclusion__mutex__copy_fail ]
+ [ thread-run2 ./sync/mutual_exclusion/mutex/default_pass.cpp : mutual_exclusion__mutex__default_pass ]
+ [ thread-run2 ./sync/mutual_exclusion/mutex/lock_pass.cpp : mutual_exclusion__mutex__lock_pass ]
+ [ thread-run2 ./sync/mutual_exclusion/mutex/native_handle_pass.cpp : mutual_exclusion__mutex__native_handle_pass ]
+ [ thread-run2 ./sync/mutual_exclusion/mutex/try_lock_pass.cpp : mutual_exclusion__mutex__try_lock_pass ]
+
+ [ thread-compile-fail-V2 ./sync/mutual_exclusion/recursive_mutex/assign_fail.cpp : : mutual_exclusion__recursive_mutex__assign_fail ]
+ [ thread-compile-fail-V2 ./sync/mutual_exclusion/recursive_mutex/copy_fail.cpp : : mutual_exclusion__recursive_mutex__copy_fail ]
+ [ thread-run2 ./sync/mutual_exclusion/recursive_mutex/default_pass.cpp : mutual_exclusion__recursive_mutex__default_pass ]
+ [ thread-run2 ./sync/mutual_exclusion/recursive_mutex/lock_pass.cpp : mutual_exclusion__recursive_mutex__lock_pass ]
+ [ thread-run2 ./sync/mutual_exclusion/recursive_mutex/native_handle_pass.cpp : mutual_exclusion__recursive_mutex__native_handle_pass ]
+ [ thread-run2 ./sync/mutual_exclusion/recursive_mutex/try_lock_pass.cpp : mutual_exclusion__recursive_mutex__try_lock_pass ]
+
+ [ thread-compile-fail-V2 ./sync/mutual_exclusion/recursive_timed_mutex/assign_fail.cpp : : mutual_exclusion__recursive_timed_mutex__assign_fail ]
+ [ thread-compile-fail-V2 ./sync/mutual_exclusion/recursive_timed_mutex/copy_fail.cpp : : mutual_exclusion__recursive_timed_mutex__copy_fail ]
+ [ thread-run2 ./sync/mutual_exclusion/recursive_timed_mutex/default_pass.cpp : mutual_exclusion__recursive_timed_mutex__default_pass ]
+ [ thread-run2 ./sync/mutual_exclusion/recursive_timed_mutex/lock_pass.cpp : mutual_exclusion__recursive_timed_mutex__lock_pass ]
+ [ thread-run2 ./sync/mutual_exclusion/recursive_timed_mutex/native_handle_pass.cpp : mutual_exclusion__recursive_timed_mutex__native_handle_pass ]
+ [ thread-run2 ./sync/mutual_exclusion/recursive_timed_mutex/try_lock_for_pass.cpp : mutual_exclusion__recursive_timed_mutex__try_lock_for_pass ]
+ [ thread-run2 ./sync/mutual_exclusion/recursive_timed_mutex/try_lock_pass.cpp : mutual_exclusion__recursive_timed_mutex__try_lock_pass ]
+ [ thread-run2 ./sync/mutual_exclusion/recursive_timed_mutex/try_lock_until_pass.cpp : mutual_exclusion__recursive_timed_mutex__try_lock_until_pass ]
+
+ [ thread-compile-fail-V2 ./sync/mutual_exclusion/timed_mutex/assign_fail.cpp : : mutual_exclusion__timed_mutex__assign_fail ]
+ [ thread-compile-fail-V2 ./sync/mutual_exclusion/timed_mutex/copy_fail.cpp : : mutual_exclusion__timed_mutex__copy_fail ]
+
+ [ thread-run2 ./sync/mutual_exclusion/timed_mutex/default_pass.cpp : mutual_exclusion__timed_mutex__default_pass ]
+ [ thread-run2 ./sync/mutual_exclusion/timed_mutex/lock_pass.cpp : mutual_exclusion__timed_mutex__lock_pass ]
+ [ thread-run2 ./sync/mutual_exclusion/timed_mutex/native_handle_pass.cpp : mutual_exclusion__timed_mutex__native_handle_pass ]
+ [ thread-run2 ./sync/mutual_exclusion/timed_mutex/try_lock_for_pass.cpp : mutual_exclusion__timed_mutex__try_lock_for_pass ]
+ [ thread-run2 ./sync/mutual_exclusion/timed_mutex/try_lock_pass.cpp : mutual_exclusion__timed_mutex__try_lock_pass ]
+ [ thread-run2 ./sync/mutual_exclusion/timed_mutex/try_lock_until_pass.cpp : mutual_exclusion__timed_mutex__try_lock_until_pass ]
+ ;
+
+ #explicit this_thread ;
+ test-suite this_thread
+ :
+ [ thread-run2 ./threads/this_thread/get_id/get_id_pass.cpp : this_thread__get_id__get_id_pass ]
+ [ thread-run2 ./threads/this_thread/sleep_for/sleep_for_pass.cpp : this_thread__sleep_for__sleep_for_pass ]
+ [ thread-run2 ./threads/this_thread/sleep_until/sleep_until_pass.cpp : this_thread__sleep_until__sleep_until_pass ]
+ ;
+
+ #explicit thread ;
+ test-suite thread
+ :
+ [ thread-compile-fail-V2 ./threads/thread/assign/copy_fail.cpp : : thread__assign__copy_fail ]
+ [ thread-run2 ./threads/thread/assign/move_pass.cpp : thread__assign__move_pass ]
+ [ thread-compile-fail-V2 ./threads/thread/constr/copy_fail.cpp : : thread__constr__copy_fail ]
+ [ thread-run2 ./threads/thread/constr/default_pass.cpp : thread__constr__default_pass ]
+ [ thread-run2 ./threads/thread/constr/F_pass.cpp : thread__constr__F_pass ]
+ [ thread-run2 ./threads/thread/constr/Frvalue_pass.cpp : thread__constr__Frvalue_pass ]
+ #[ thread-run2 ./threads/thread/constr/FrvalueArgs_pass.cpp : thread__constr__FrvalueArgs_pass ]
+ [ thread-run2 ./threads/thread/constr/move_pass.cpp : thread__constr__move_pass ]
+ [ thread-run2 ./threads/thread/destr/dtor_pass.cpp : thread__destr__dtor_pass ]
+ [ thread-run2 ./threads/thread/id/hash_pass.cpp : thread__id__hash_pass ]
+ [ thread-run2 ./threads/thread/members/detach_pass.cpp : thread__members__detach_pass ]
+ [ thread-run2 ./threads/thread/members/get_id_pass.cpp : thread__members__get_id_pass ]
+ [ thread-run2 ./threads/thread/members/join_pass.cpp : thread__members__join_pass ]
+ [ thread-run2 ./threads/thread/members/joinable_pass.cpp : thread__members__joinable_pass ]
+ [ thread-run2 ./threads/thread/members/native_handle_pass.cpp : thread__members__native_handle_pass ]
+ [ thread-run2 ./threads/thread/members/swap_pass.cpp : thread__members__swap_pass ]
+ [ thread-run2 ./threads/thread/non_members/swap_pass.cpp : thread__non_members__swap_pass ]
+ [ thread-run2 ./threads/thread/static/hardware_concurrency_pass.cpp : thread__static__hardware_concurrency_pass ]
+ ;
 }

Modified: branches/quickbook-dev/libs/thread/test/test_futures.cpp
==============================================================================
--- branches/quickbook-dev/libs/thread/test/test_futures.cpp (original)
+++ branches/quickbook-dev/libs/thread/test/test_futures.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,4 +1,4 @@
-// (C) Copyright 2008-10 Anthony Williams
+// (C) Copyright 2008-10 Anthony Williams
 //
 // Distributed under the Boost Software License, Version 1.0. (See
 // accompanying file LICENSE_1_0.txt or copy at
@@ -21,23 +21,31 @@
         return static_cast<typename boost::remove_reference<T>::type&&>(t);
     }
 #else
+#if defined BOOST_THREAD_USES_MOVE
+ template<typename T>
+ boost::rv<T>& cast_to_rval(T& t)
+ {
+ return boost::move(t);
+ }
+#else
     template<typename T>
     boost::detail::thread_move_t<T> cast_to_rval(T& t)
     {
         return boost::move(t);
     }
 #endif
+#endif
 
 struct X
 {
 private:
-
+
     X(X& other);
-
+
 public:
-
+
     int i;
-
+
     X():
         i(42)
     {}
@@ -48,6 +56,21 @@
         other.i=0;
     }
 #else
+#if defined BOOST_THREAD_USES_MOVE
+ X(boost::rv<X>& other):
+ i(other.i)
+ {
+ other.i=0;
+ }
+ operator ::boost::rv<X>&()
+ {
+ return *static_cast< ::boost::rv<X>* >(this);
+ }
+ operator const ::boost::rv<X>&() const
+ {
+ return *static_cast<const ::boost::rv<X>* >(this);
+ }
+#else
     X(boost::detail::thread_move_t<X> other):
         i(other->i)
     {
@@ -58,6 +81,7 @@
         return boost::detail::thread_move_t<X>(*this);
     }
 #endif
+#endif
     ~X()
     {}
 };
@@ -114,7 +138,7 @@
     {
         BOOST_CHECK(true);
     }
-
+
     BOOST_CHECK(fi3.is_ready());
     BOOST_CHECK(!fi3.has_value());
     BOOST_CHECK(fi3.has_exception());
@@ -177,7 +201,7 @@
     fi=pi.get_future();
 
     pi.set_value(42);
-
+
     BOOST_CHECK(fi.is_ready());
     BOOST_CHECK(fi.has_value());
     BOOST_CHECK(!fi.has_exception());
@@ -191,7 +215,7 @@
     fi=pi.get_future();
 
     pi.set_value(42);
-
+
     int i=0;
     BOOST_CHECK(i=fi.get());
     BOOST_CHECK(i==42);
@@ -208,7 +232,7 @@
 // fi=pi.get_future();
 
 // pi.set_value(42);
-
+
 // int i=0;
 // BOOST_CHECK(i=fi.get());
 // BOOST_CHECK(i==42);
@@ -302,7 +326,7 @@
     {
         BOOST_CHECK(!"Unknown exception thrown");
     }
-
+
 }
 
 void test_void_promise()
@@ -474,7 +498,7 @@
 {
     boost::promise<int> pi;
     boost::unique_future<int> fi=pi.get_future();
-
+
     boost::promise<int> pi2(::cast_to_rval(pi));
     boost::unique_future<int> fi2=pi.get_future();
 
@@ -491,7 +515,7 @@
 {
     boost::promise<void> pi;
     boost::unique_future<void> fi=pi.get_future();
-
+
     boost::promise<void> pi2(::cast_to_rval(pi));
     boost::unique_future<void> fi2=pi.get_future();
 
@@ -525,7 +549,7 @@
     fi=pt2.get_future();
 
     std::string const s="goodbye";
-
+
     pt2.set_value(s);
     res=fi.get();
     BOOST_CHECK(res=="goodbye");
@@ -534,7 +558,7 @@
     fi=pt3.get_future();
 
     std::string s2="foo";
-
+
     pt3.set_value(s2);
     res=fi.get();
     BOOST_CHECK(res=="foo");
@@ -634,7 +658,7 @@
     boost::unique_future<int> fi=pt.get_future();
 
     BOOST_CHECK(!fi.is_ready());
-
+
     boost::packaged_task<int> pt2(::cast_to_rval(pt));
 
     BOOST_CHECK(!fi.is_ready());
@@ -650,14 +674,14 @@
     BOOST_CHECK(!fi.is_ready());
 
     pt2();
-
+
     BOOST_CHECK(fi.is_ready());
 }
 
 void test_destroying_a_promise_stores_broken_promise()
 {
     boost::unique_future<int> f;
-
+
     {
         boost::promise<int> p;
         f=p.get_future();
@@ -676,7 +700,7 @@
 void test_destroying_a_packaged_task_stores_broken_promise()
 {
     boost::unique_future<int> f;
-
+
     {
         boost::packaged_task<int> p(make_int);
         f=p.get_future();
@@ -704,11 +728,11 @@
     boost::unique_future<int> f1(pt.get_future());
     boost::packaged_task<int> pt2(make_int_slowly);
     boost::unique_future<int> f2(pt2.get_future());
-
+
     boost::thread(::cast_to_rval(pt));
-
+
     unsigned const future=boost::wait_for_any(f1,f2);
-
+
     BOOST_CHECK(future==0);
     BOOST_CHECK(f1.is_ready());
     BOOST_CHECK(!f2.is_ready());
@@ -721,11 +745,11 @@
     boost::unique_future<int> f1(pt.get_future());
     boost::packaged_task<int> pt2(make_int_slowly);
     boost::unique_future<int> f2(pt2.get_future());
-
+
     boost::thread(::cast_to_rval(pt2));
-
+
     unsigned const future=boost::wait_for_any(f1,f2);
-
+
     BOOST_CHECK(future==1);
     BOOST_CHECK(!f1.is_ready());
     BOOST_CHECK(f2.is_ready());
@@ -740,11 +764,11 @@
     boost::unique_future<int> f2(pt2.get_future());
     boost::packaged_task<int> pt3(make_int_slowly);
     boost::unique_future<int> f3(pt3.get_future());
-
+
     boost::thread(::cast_to_rval(pt));
-
+
     unsigned const future=boost::wait_for_any(f1,f2,f3);
-
+
     BOOST_CHECK(future==0);
     BOOST_CHECK(f1.is_ready());
     BOOST_CHECK(!f2.is_ready());
@@ -760,11 +784,11 @@
     boost::unique_future<int> f2(pt2.get_future());
     boost::packaged_task<int> pt3(make_int_slowly);
     boost::unique_future<int> f3(pt3.get_future());
-
+
     boost::thread(::cast_to_rval(pt2));
-
+
     unsigned const future=boost::wait_for_any(f1,f2,f3);
-
+
     BOOST_CHECK(future==1);
     BOOST_CHECK(!f1.is_ready());
     BOOST_CHECK(f2.is_ready());
@@ -780,11 +804,11 @@
     boost::unique_future<int> f2(pt2.get_future());
     boost::packaged_task<int> pt3(make_int_slowly);
     boost::unique_future<int> f3(pt3.get_future());
-
+
     boost::thread(::cast_to_rval(pt3));
-
+
     unsigned const future=boost::wait_for_any(f1,f2,f3);
-
+
     BOOST_CHECK(future==2);
     BOOST_CHECK(!f1.is_ready());
     BOOST_CHECK(!f2.is_ready());
@@ -802,11 +826,11 @@
     boost::unique_future<int> f3(pt3.get_future());
     boost::packaged_task<int> pt4(make_int_slowly);
     boost::unique_future<int> f4(pt4.get_future());
-
+
     boost::thread(::cast_to_rval(pt));
-
+
     unsigned const future=boost::wait_for_any(f1,f2,f3,f4);
-
+
     BOOST_CHECK(future==0);
     BOOST_CHECK(f1.is_ready());
     BOOST_CHECK(!f2.is_ready());
@@ -825,11 +849,11 @@
     boost::unique_future<int> f3(pt3.get_future());
     boost::packaged_task<int> pt4(make_int_slowly);
     boost::unique_future<int> f4(pt4.get_future());
-
+
     boost::thread(::cast_to_rval(pt2));
-
+
     unsigned const future=boost::wait_for_any(f1,f2,f3,f4);
-
+
     BOOST_CHECK(future==1);
     BOOST_CHECK(!f1.is_ready());
     BOOST_CHECK(f2.is_ready());
@@ -848,11 +872,11 @@
     boost::unique_future<int> f3(pt3.get_future());
     boost::packaged_task<int> pt4(make_int_slowly);
     boost::unique_future<int> f4(pt4.get_future());
-
+
     boost::thread(::cast_to_rval(pt3));
-
+
     unsigned const future=boost::wait_for_any(f1,f2,f3,f4);
-
+
     BOOST_CHECK(future==2);
     BOOST_CHECK(!f1.is_ready());
     BOOST_CHECK(!f2.is_ready());
@@ -871,11 +895,11 @@
     boost::unique_future<int> f3(pt3.get_future());
     boost::packaged_task<int> pt4(make_int_slowly);
     boost::unique_future<int> f4(pt4.get_future());
-
+
     boost::thread(::cast_to_rval(pt4));
-
+
     unsigned const future=boost::wait_for_any(f1,f2,f3,f4);
-
+
     BOOST_CHECK(future==3);
     BOOST_CHECK(!f1.is_ready());
     BOOST_CHECK(!f2.is_ready());
@@ -896,11 +920,11 @@
     boost::unique_future<int> f4(pt4.get_future());
     boost::packaged_task<int> pt5(make_int_slowly);
     boost::unique_future<int> f5(pt5.get_future());
-
+
     boost::thread(::cast_to_rval(pt));
-
+
     unsigned const future=boost::wait_for_any(f1,f2,f3,f4,f5);
-
+
     BOOST_CHECK(future==0);
     BOOST_CHECK(f1.is_ready());
     BOOST_CHECK(!f2.is_ready());
@@ -922,11 +946,11 @@
     boost::unique_future<int> f4(pt4.get_future());
     boost::packaged_task<int> pt5(make_int_slowly);
     boost::unique_future<int> f5(pt5.get_future());
-
+
     boost::thread(::cast_to_rval(pt2));
-
+
     unsigned const future=boost::wait_for_any(f1,f2,f3,f4,f5);
-
+
     BOOST_CHECK(future==1);
     BOOST_CHECK(!f1.is_ready());
     BOOST_CHECK(f2.is_ready());
@@ -947,11 +971,11 @@
     boost::unique_future<int> f4(pt4.get_future());
     boost::packaged_task<int> pt5(make_int_slowly);
     boost::unique_future<int> f5(pt5.get_future());
-
+
     boost::thread(::cast_to_rval(pt3));
-
+
     unsigned const future=boost::wait_for_any(f1,f2,f3,f4,f5);
-
+
     BOOST_CHECK(future==2);
     BOOST_CHECK(!f1.is_ready());
     BOOST_CHECK(!f2.is_ready());
@@ -972,11 +996,11 @@
     boost::unique_future<int> f4(pt4.get_future());
     boost::packaged_task<int> pt5(make_int_slowly);
     boost::unique_future<int> f5(pt5.get_future());
-
+
     boost::thread(::cast_to_rval(pt4));
-
+
     unsigned const future=boost::wait_for_any(f1,f2,f3,f4,f5);
-
+
     BOOST_CHECK(future==3);
     BOOST_CHECK(!f1.is_ready());
     BOOST_CHECK(!f2.is_ready());
@@ -997,11 +1021,11 @@
     boost::unique_future<int> f4(pt4.get_future());
     boost::packaged_task<int> pt5(make_int_slowly);
     boost::unique_future<int> f5(pt5.get_future());
-
+
     boost::thread(::cast_to_rval(pt5));
-
+
     unsigned const future=boost::wait_for_any(f1,f2,f3,f4,f5);
-
+
     BOOST_CHECK(future==4);
     BOOST_CHECK(!f1.is_ready());
     BOOST_CHECK(!f2.is_ready());
@@ -1021,7 +1045,7 @@
     pt.set_wait_callback(wait_callback_for_task);
 
     boost::thread(::cast_to_rval(pt));
-
+
     boost::wait_for_any(fi,fi2);
     BOOST_CHECK(callback_called==1);
     BOOST_CHECK(fi.get()==42);
@@ -1040,11 +1064,11 @@
             futures[j]=tasks[j].get_future();
         }
         boost::thread(::cast_to_rval(tasks[i]));
-
+
         BOOST_CHECK(boost::wait_for_any(futures,futures)==futures);
-
+
         boost::unique_future<int>* const future=boost::wait_for_any(futures,futures+count);
-
+
         BOOST_CHECK(future==(futures+i));
         for(unsigned j=0;j<count;++j)
         {
@@ -1071,9 +1095,9 @@
         futures[j]=task.get_future();
         boost::thread(::cast_to_rval(task));
     }
-
+
     boost::wait_for_all(futures,futures+count);
-
+
     for(unsigned j=0;j<count;++j)
     {
         BOOST_CHECK(futures[j].is_ready());
@@ -1090,9 +1114,9 @@
         futures[j]=task.get_future();
         boost::thread(::cast_to_rval(task));
     }
-
+
     boost::wait_for_all(futures[0],futures[1]);
-
+
     for(unsigned j=0;j<count;++j)
     {
         BOOST_CHECK(futures[j].is_ready());
@@ -1109,9 +1133,9 @@
         futures[j]=task.get_future();
         boost::thread(::cast_to_rval(task));
     }
-
+
     boost::wait_for_all(futures[0],futures[1],futures[2]);
-
+
     for(unsigned j=0;j<count;++j)
     {
         BOOST_CHECK(futures[j].is_ready());
@@ -1128,9 +1152,9 @@
         futures[j]=task.get_future();
         boost::thread(::cast_to_rval(task));
     }
-
+
     boost::wait_for_all(futures[0],futures[1],futures[2],futures[3]);
-
+
     for(unsigned j=0;j<count;++j)
     {
         BOOST_CHECK(futures[j].is_ready());
@@ -1147,9 +1171,9 @@
         futures[j]=task.get_future();
         boost::thread(::cast_to_rval(task));
     }
-
+
     boost::wait_for_all(futures[0],futures[1],futures[2],futures[3],futures[4]);
-
+
     for(unsigned j=0;j<count;++j)
     {
         BOOST_CHECK(futures[j].is_ready());

Modified: branches/quickbook-dev/libs/thread/test/test_lock_concept.cpp
==============================================================================
--- branches/quickbook-dev/libs/thread/test/test_lock_concept.cpp (original)
+++ branches/quickbook-dev/libs/thread/test/test_lock_concept.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -18,7 +18,7 @@
     {
         Mutex m;
         Lock lock(m);
-
+
         BOOST_CHECK(lock);
         BOOST_CHECK(lock.owns_lock());
     }
@@ -32,7 +32,7 @@
     bool done;
     bool locked;
     boost::condition_variable done_cond;
-
+
     test_initially_unlocked_if_other_thread_has_lock():
         done(false),locked(false)
     {}
@@ -51,7 +51,7 @@
     {
         return done;
     }
-
+
 
     void operator()()
     {
@@ -69,7 +69,7 @@
                                                  boost::bind(&this_type::is_done,this)));
                 BOOST_CHECK(!locked);
             }
-
+
             lock.unlock();
             t.join();
         }
@@ -90,7 +90,7 @@
     bool done;
     bool locked;
     boost::condition_variable done_cond;
-
+
     test_initially_unlocked_with_try_lock_if_other_thread_has_unique_lock():
         done(false),locked(false)
     {}
@@ -109,7 +109,7 @@
     {
         return done;
     }
-
+
 
     void operator()()
     {
@@ -127,7 +127,7 @@
                                                  boost::bind(&this_type::is_done,this)));
                 BOOST_CHECK(!locked);
             }
-
+
             lock.unlock();
             t.join();
         }
@@ -148,7 +148,7 @@
     bool done;
     bool locked;
     boost::condition_variable done_cond;
-
+
     test_initially_locked_if_other_thread_has_shared_lock():
         done(false),locked(false)
     {}
@@ -167,7 +167,7 @@
     {
         return done;
     }
-
+
 
     void operator()()
     {
@@ -185,7 +185,7 @@
                                                  boost::bind(&this_type::is_done,this)));
                 BOOST_CHECK(locked);
             }
-
+
             lock.unlock();
             t.join();
         }
@@ -205,7 +205,7 @@
     {
         Mutex m;
         Lock lock(m,boost::defer_lock);
-
+
         BOOST_CHECK(!lock);
         BOOST_CHECK(!lock.owns_lock());
     }
@@ -219,7 +219,7 @@
         Mutex m;
         m.lock();
         Lock lock(m,boost::adopt_lock);
-
+
         BOOST_CHECK(lock);
         BOOST_CHECK(lock.owns_lock());
     }
@@ -273,7 +273,7 @@
     bool done;
     bool locked;
     boost::condition_variable done_cond;
-
+
     test_unlocked_after_try_lock_if_other_thread_has_lock():
         done(false),locked(false)
     {}
@@ -292,7 +292,7 @@
     {
         return done;
     }
-
+
 
     void operator()()
     {
@@ -310,7 +310,7 @@
                                                  boost::bind(&this_type::is_done,this)));
                 BOOST_CHECK(!locked);
             }
-
+
             lock.unlock();
             t.join();
         }
@@ -330,7 +330,7 @@
     {
         Mutex m;
         Lock lock(m);
-
+
         BOOST_CHECK_THROW( lock.lock(), boost::lock_error );
     }
 };
@@ -342,7 +342,7 @@
     {
         Mutex m;
         Lock lock(m);
-
+
         BOOST_CHECK_THROW( lock.try_lock(), boost::lock_error );
     }
 };
@@ -355,7 +355,7 @@
         Mutex m;
         Lock lock(m);
         lock.unlock();
-
+
         BOOST_CHECK_THROW( lock.unlock(), boost::lock_error );
     }
 };
@@ -387,18 +387,21 @@
         BOOST_CHECK_EQUAL(l2.mutex(),&m2);
 
         l1.swap(l2);
-
+
         BOOST_CHECK_EQUAL(l1.mutex(),&m2);
         BOOST_CHECK_EQUAL(l2.mutex(),&m1);
-
+
         swap(l1,l2);
 
         BOOST_CHECK_EQUAL(l1.mutex(),&m1);
         BOOST_CHECK_EQUAL(l2.mutex(),&m2);
 
+#if 0
         l1.swap(Lock(m3));
 
         BOOST_CHECK_EQUAL(l1.mutex(),&m3);
+#endif
+
     }
 };
 
@@ -437,7 +440,7 @@
 BOOST_TEST_CASE_TEMPLATE_FUNCTION(test_scoped_try_lock_concept,Mutex)
 {
     typedef typename Mutex::scoped_try_lock Lock;
-
+
     test_default_constructed_has_no_mutex_and_unlocked<Lock>()();
     test_initially_locked<Mutex,Lock>()();
     test_initially_unlocked_if_other_thread_has_lock<Mutex,Lock>()();
@@ -470,25 +473,25 @@
         timed_locked_relative(false),
         timed_locked_absolute(false)
     {}
-
+
     void lock()
     {
         locked=true;
     }
-
+
     void lock_shared()
     {
         shared_locked=true;
     }
-
+
     void unlock()
     {}
-
+
     void unlock_shared()
     {
         shared_unlocked=true;
     }
-
+
     bool timed_lock_shared(boost::system_time)
     {
         shared_timed_locked_absolute=true;
@@ -511,7 +514,7 @@
         timed_locked_relative=true;
         return false;
     }
-
+
 };
 
 
@@ -519,7 +522,7 @@
 {
     typedef boost::shared_mutex Mutex;
     typedef boost::shared_lock<Mutex> Lock;
-
+
     test_default_constructed_has_no_mutex_and_unlocked<Lock>()();
     test_initially_locked<Mutex,Lock>()();
     test_initially_unlocked_with_try_lock_if_other_thread_has_unique_lock<Mutex,Lock>()();
@@ -552,7 +555,7 @@
 
     typedef boost::mpl::vector<boost::mutex,boost::try_mutex,boost::timed_mutex,
         boost::recursive_mutex,boost::recursive_try_mutex,boost::recursive_timed_mutex> mutex_types_with_scoped_lock;
-
+
     test->add(BOOST_TEST_CASE_TEMPLATE(test_scoped_lock_concept,mutex_types_with_scoped_lock));
 
     typedef boost::mpl::vector<boost::try_mutex,boost::timed_mutex,
@@ -562,7 +565,7 @@
 
     typedef boost::mpl::vector<boost::mutex,boost::try_mutex,boost::timed_mutex,
         boost::recursive_mutex,boost::recursive_try_mutex,boost::recursive_timed_mutex,boost::shared_mutex> all_mutex_types;
-
+
     test->add(BOOST_TEST_CASE_TEMPLATE(test_unique_lock_is_scoped_lock,all_mutex_types));
     test->add(BOOST_TEST_CASE(&test_shared_lock));
 

Modified: branches/quickbook-dev/libs/thread/test/test_move_function.cpp
==============================================================================
--- branches/quickbook-dev/libs/thread/test/test_move_function.cpp (original)
+++ branches/quickbook-dev/libs/thread/test/test_move_function.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -47,7 +47,8 @@
 
 void test_thread_move_from_rvalue_using_explicit_move()
 {
- boost::thread x(boost::move(start_thread()));
+ //boost::thread x(boost::move(start_thread()));
+ boost::thread x=start_thread();
     BOOST_CHECK(x.get_id()!=boost::thread::id());
     x.join();
 }
@@ -108,6 +109,16 @@
     };
 }
 
+#ifdef BOOST_NO_RVALUE_REFERENCES
+namespace boost
+{
+ template <>
+ struct has_move_emulation_enabled_aux<user_test_ns::nc>
+ : BOOST_MOVE_BOOST_NS::integral_constant<bool, true>
+ {};
+}
+#endif
+
 void test_move_for_user_defined_type_unaffected()
 {
     user_test_ns::nc src;

Modified: branches/quickbook-dev/libs/thread/test/test_thread_move.cpp
==============================================================================
--- branches/quickbook-dev/libs/thread/test/test_thread_move.cpp (original)
+++ branches/quickbook-dev/libs/thread/test/test_thread_move.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Copyright (C) 2007-9 Anthony Williams
 //
-// Distributed under the Boost Software License, Version 1.0. (See accompanying
+// Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 #include <boost/thread/thread.hpp>
 #include <boost/test/unit_test.hpp>

Modified: branches/quickbook-dev/libs/thread/test/test_thread_return_local.cpp
==============================================================================
--- branches/quickbook-dev/libs/thread/test/test_thread_return_local.cpp (original)
+++ branches/quickbook-dev/libs/thread/test/test_thread_return_local.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -1,6 +1,6 @@
 // Copyright (C) 2009 Anthony Williams
 //
-// Distributed under the Boost Software License, Version 1.0. (See accompanying
+// Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 #include <boost/thread/thread.hpp>
 #include <boost/test/unit_test.hpp>
@@ -13,7 +13,7 @@
 boost::thread make_thread_return_local(boost::thread::id* the_id)
 {
     boost::thread t(do_nothing,the_id);
- return t;
+ return boost::move(t);
 }
 
 void test_move_from_function_return_local()

Modified: branches/quickbook-dev/libs/thread/test/util.inl
==============================================================================
--- branches/quickbook-dev/libs/thread/test/util.inl (original)
+++ branches/quickbook-dev/libs/thread/test/util.inl 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -98,7 +98,9 @@
     wait_type type;
     int secs;
 };
-
+}
+namespace thread_detail_anon
+{
 template <typename F>
 class indirect_adapter
 {
@@ -126,18 +128,28 @@
     void operator=(indirect_adapter&);
 };
 
+}
+// boostinspect:nounnamed
+namespace
+{
+
 template <typename F>
 void timed_test(F func, int secs,
     execution_monitor::wait_type type=DEFAULT_EXECUTION_MONITOR_TYPE)
 {
     execution_monitor monitor(type, secs);
- indirect_adapter<F> ifunc(func, monitor);
+ thread_detail_anon::indirect_adapter<F> ifunc(func, monitor);
     monitor.start();
     boost::thread thrd(ifunc);
     BOOST_REQUIRE_MESSAGE(monitor.wait(),
         "Timed test didn't complete in time, possible deadlock.");
 }
 
+}
+
+namespace thread_detail_anon
+{
+
 template <typename F, typename T>
 class thread_binder
 {
@@ -151,12 +163,21 @@
     T param;
 };
 
+}
+
+// boostinspect:nounnamed
+namespace
+{
 template <typename F, typename T>
-thread_binder<F, T> bind(const F& func, const T& param)
+thread_detail_anon::thread_binder<F, T> bind(const F& func, const T& param)
 {
- return thread_binder<F, T>(func, param);
+ return thread_detail_anon::thread_binder<F, T>(func, param);
+}
 }
 
+namespace thread_detail_anon
+{
+
 template <typename R, typename T>
 class thread_member_binder
 {
@@ -172,11 +193,15 @@
     T& param;
 };
 
+}
 
+// boostinspect:nounnamed
+namespace
+{
 template <typename R, typename T>
-thread_member_binder<R, T> bind(R (T::*func)(), T& param)
+thread_detail_anon::thread_member_binder<R, T> bind(R (T::*func)(), T& param)
 {
- return thread_member_binder<R, T>(func, param);
+ return thread_detail_anon::thread_member_binder<R, T>(func, param);
 }
 } // namespace
 

Modified: branches/quickbook-dev/libs/unordered/test/objects/cxx11_allocator.hpp
==============================================================================
--- branches/quickbook-dev/libs/unordered/test/objects/cxx11_allocator.hpp (original)
+++ branches/quickbook-dev/libs/unordered/test/objects/cxx11_allocator.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -168,10 +168,10 @@
             new(p) T(t);
         }
 
-#if defined(BOOST_UNORDERED_STD_FORWARD_MOVE)
+#if defined(BOOST_UNORDERED_VARIADIC_MOVE)
         template<typename... Args> void construct(T* p, Args&&... args) {
             detail::tracker.track_construct((void*) p, sizeof(T), tag_);
- new(p) T(std::forward<Args>(args)...);
+ new(p) T(boost::forward<Args>(args)...);
         }
 #endif
 

Modified: branches/quickbook-dev/libs/unordered/test/objects/exception.hpp
==============================================================================
--- branches/quickbook-dev/libs/unordered/test/objects/exception.hpp (original)
+++ branches/quickbook-dev/libs/unordered/test/objects/exception.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -357,11 +357,11 @@
             detail::tracker.track_construct((void*) p, sizeof(T), tag_);
         }
 
-#if defined(BOOST_UNORDERED_STD_FORWARD_MOVE)
+#if defined(BOOST_UNORDERED_VARIADIC_MOVE)
         template<class... Args> void construct(T* p, Args&&... args) {
             UNORDERED_SCOPE(allocator::construct(pointer, Args&&...)) {
                 UNORDERED_EPOINT("Mock allocator construct function.");
- new(p) T(std::forward<Args>(args)...);
+ new(p) T(boost::forward<Args>(args)...);
             }
             detail::tracker.track_construct((void*) p, sizeof(T), tag_);
         }

Modified: branches/quickbook-dev/libs/unordered/test/objects/minimal.hpp
==============================================================================
--- branches/quickbook-dev/libs/unordered/test/objects/minimal.hpp (original)
+++ branches/quickbook-dev/libs/unordered/test/objects/minimal.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -367,9 +367,9 @@
 
         void construct(T* p, T const& t) { new((void*)p) T(t); }
 
-#if defined(BOOST_UNORDERED_STD_FORWARD_MOVE)
+#if defined(BOOST_UNORDERED_VARIADIC_MOVE)
         template<class... Args> void construct(T* p, Args&&... args) {
- new((void*)p) T(std::forward<Args>(args)...);
+ new((void*)p) T(boost::forward<Args>(args)...);
         }
 #endif
 
@@ -439,9 +439,9 @@
 
         void construct(T* p, T const& t) { new((void*)p) T(t); }
 
-#if defined(BOOST_UNORDERED_STD_FORWARD_MOVE)
+#if defined(BOOST_UNORDERED_VARIADIC_MOVE)
         template<class... Args> void construct(T* p, Args&&... args) {
- new((void*)p) T(std::forward<Args>(args)...);
+ new((void*)p) T(boost::forward<Args>(args)...);
         }
 #endif
 

Modified: branches/quickbook-dev/libs/unordered/test/objects/test.hpp
==============================================================================
--- branches/quickbook-dev/libs/unordered/test/objects/test.hpp (original)
+++ branches/quickbook-dev/libs/unordered/test/objects/test.hpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -259,10 +259,10 @@
             new(p) T(t);
         }
 
-#if defined(BOOST_UNORDERED_STD_FORWARD_MOVE)
+#if defined(BOOST_UNORDERED_VARIADIC_MOVE)
         template<class... Args> void construct(T* p, Args&&... args) {
             detail::tracker.track_construct((void*) p, sizeof(T), tag_);
- new(p) T(std::forward<Args>(args)...);
+ new(p) T(boost::forward<Args>(args)...);
         }
 #endif
 

Modified: branches/quickbook-dev/libs/unordered/test/unordered/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/libs/unordered/test/unordered/Jamfile.v2 (original)
+++ branches/quickbook-dev/libs/unordered/test/unordered/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -50,4 +50,20 @@
         [ run equality_tests.cpp ]
         [ run equality_deprecated.cpp ]
         [ run swap_tests.cpp ]
+
+ [ run compile_set.cpp : :
+ : <define>BOOST_UNORDERED_USE_MOVE
+ : bmove_compile_set ]
+ [ run compile_map.cpp : :
+ : <define>BOOST_UNORDERED_USE_MOVE
+ : bmove_compile_map ]
+ [ run copy_tests.cpp : :
+ : <define>BOOST_UNORDERED_USE_MOVE
+ : bmove_copy ]
+ [ run move_tests.cpp : :
+ : <define>BOOST_UNORDERED_USE_MOVE
+ : bmove_move ]
+ [ run assign_tests.cpp : :
+ : <define>BOOST_UNORDERED_USE_MOVE
+ : bmove_assign ]
     ;

Modified: branches/quickbook-dev/libs/unordered/test/unordered/move_tests.cpp
==============================================================================
--- branches/quickbook-dev/libs/unordered/test/unordered/move_tests.cpp (original)
+++ branches/quickbook-dev/libs/unordered/test/unordered/move_tests.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -22,6 +22,11 @@
 namespace move_tests
 {
     test::seed_t seed(98624);
+#if defined(BOOST_UNORDERED_USE_MOVE) || !defined(BOOST_NO_RVALUE_REFERENCES)
+#define BOOST_UNORDERED_TEST_MOVING 1
+#else
+#define BOOST_UNORDERED_TEST_MOVING 0
+#endif
 
     template<class T>
     T empty(T*) {
@@ -95,7 +100,7 @@
             test::object_count count;
             T y;
             y = create(v, count);
-#if defined(BOOST_HAS_NRVO)
+#if BOOST_UNORDERED_TEST_MOVING && defined(BOOST_HAS_NRVO)
             BOOST_TEST(count == test::global_object_count);
 #endif
             test::check_container(y, v);
@@ -195,7 +200,10 @@
             BOOST_TEST(y.max_load_factor() == 2.0);
 
 #if defined(BOOST_HAS_NRVO)
- if (allocator_type::is_propagate_on_move) {
+ if (BOOST_UNORDERED_TEST_MOVING ?
+ (bool) allocator_type::is_propagate_on_move :
+ (bool) allocator_type::is_propagate_on_assign)
+ {
                 BOOST_TEST(test::equivalent(y.get_allocator(), al2));
             }
             else {
@@ -210,7 +218,9 @@
             T y(0, hf, eq, al1);
             y = create(v, count, hf, eq, al2, 0.5);
 #if defined(BOOST_HAS_NRVO)
- if (allocator_type::is_propagate_on_move) {
+ if (BOOST_UNORDERED_TEST_MOVING &&
+ allocator_type::is_propagate_on_move)
+ {
                 BOOST_TEST(count == test::global_object_count);
             }
 #endif
@@ -219,7 +229,10 @@
             BOOST_TEST(y.max_load_factor() == 0.5);
 
 #if defined(BOOST_HAS_NRVO)
- if (allocator_type::is_propagate_on_move) {
+ if (BOOST_UNORDERED_TEST_MOVING ?
+ (bool) allocator_type::is_propagate_on_move :
+ (bool) allocator_type::is_propagate_on_assign)
+ {
                 BOOST_TEST(test::equivalent(y.get_allocator(), al2));
             }
             else {
@@ -240,14 +253,19 @@
 
             test::object_count count = test::global_object_count;
             y = boost::move(x);
- if (allocator_type::is_propagate_on_move) {
+ if (BOOST_UNORDERED_TEST_MOVING &&
+ allocator_type::is_propagate_on_move)
+ {
                 BOOST_TEST(count == test::global_object_count);
             }
             test::check_container(y, v);
             test::check_equivalent_keys(y);
             BOOST_TEST(y.max_load_factor() == 0.25);
 
- if (allocator_type::is_propagate_on_move) {
+ if (BOOST_UNORDERED_TEST_MOVING ?
+ (bool) allocator_type::is_propagate_on_move :
+ (bool) allocator_type::is_propagate_on_assign)
+ {
                 BOOST_TEST(test::equivalent(y.get_allocator(), al2));
             }
             else {
@@ -272,7 +290,9 @@
 
             test::object_count count2 = test::global_object_count;
 
- if (allocator_type::is_propagate_on_move) {
+ if (BOOST_UNORDERED_TEST_MOVING &&
+ allocator_type::is_propagate_on_move)
+ {
                 BOOST_TEST(count1.instances ==
                     test::global_object_count.instances);
                 BOOST_TEST(count2.constructions ==
@@ -283,7 +303,10 @@
             test::check_equivalent_keys(y);
             BOOST_TEST(y.max_load_factor() == 0.5);
 
- if (allocator_type::is_propagate_on_move) {
+ if (BOOST_UNORDERED_TEST_MOVING ?
+ (bool) allocator_type::is_propagate_on_move :
+ (bool) allocator_type::is_propagate_on_assign)
+ {
                 BOOST_TEST(test::equivalent(y.get_allocator(), al2));
             }
             else {

Modified: branches/quickbook-dev/libs/unordered/test/unordered/unnecessary_copy_tests.cpp
==============================================================================
--- branches/quickbook-dev/libs/unordered/test/unordered/unnecessary_copy_tests.cpp (original)
+++ branches/quickbook-dev/libs/unordered/test/unordered/unnecessary_copy_tests.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -9,6 +9,23 @@
 #include <boost/unordered_map.hpp>
 #include "../helpers/test.hpp"
 
+#if defined(BOOST_UNORDERED_VARIADIC_MOVE)
+# if defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
+# elif defined(__STD_RWCOMPILER_H__) || defined(_RWSTD_VER)
+# elif defined(_LIBCPP_VERSION)
+# define BOOST_UNORDERED_VARIADIC_MOVE
+# elif defined(__GLIBCPP__) || defined(__GLIBCXX__)
+# if defined(__GLIBCXX__) && __GLIBCXX__ >= 20090804
+# define BOOST_UNORDERED_VARIADIC_MOVE
+# endif
+# elif defined(__STL_CONFIG_H)
+# elif defined(__MSL_CPP__)
+# elif defined(__IBMCPP__)
+# elif defined(MSIPL_COMPILE_H)
+# elif (defined(_YVALS) && !defined(__IBMCPP__)) || defined(_CPPLIB_VER)
+# endif
+#endif
+
 namespace unnecessary_copy_tests
 {
     struct count_copies
@@ -243,9 +260,7 @@
         // the existing element.
         reset();
         x.emplace();
-#if defined(BOOST_UNORDERED_STD_FORWARD_MOVE)
- COPY_COUNT(1); MOVE_COUNT(0);
-#elif !defined(BOOST_NO_RVALUE_REFERENCES)
+#if !defined(BOOST_NO_RVALUE_REFERENCES)
         // source_cost doesn't make much sense here, but it seems to fit.
         COPY_COUNT(1); MOVE_COUNT(source_cost);
 #else

Modified: branches/quickbook-dev/libs/uuid/test/test_sha1.cpp
==============================================================================
--- branches/quickbook-dev/libs/uuid/test/test_sha1.cpp (original)
+++ branches/quickbook-dev/libs/uuid/test/test_sha1.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -263,6 +263,24 @@
     }
 }
 
+void test_long()
+{
+ // test 1 million 'a's
+
+ boost::uuids::detail::sha1 sha;
+ for (size_t i=0; i<1000000; i++) {
+ sha.process_byte('a');
+ }
+
+ unsigned int correct_digest[5] =
+ { 0x34aa973c, 0xd4c4daa4, 0xf61eeb2b, 0xdbad2731, 0x6534016f };
+
+ unsigned int digest[5];
+ sha.get_digest(digest);
+
+ BOOST_TEST_SHA1_DEGEST(digest, correct_digest);
+}
+
 int main(int, char*[])
 {
     test_quick();

Modified: branches/quickbook-dev/status/Jamfile.v2
==============================================================================
--- branches/quickbook-dev/status/Jamfile.v2 (original)
+++ branches/quickbook-dev/status/Jamfile.v2 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -47,6 +47,7 @@
 # Please keep these in alphabetic order by test-suite name
 run-tests libs :
     accumulators/test # test-suite accumulators
+ algorithm/test # test-suite algorithm
     algorithm/minmax/test # test-suite algorith/minmax
     algorithm/string/test # test-suite algorithm/string
     array/test # test-suite array

Modified: branches/quickbook-dev/status/explicit-failures-markup.xml
==============================================================================
--- branches/quickbook-dev/status/explicit-failures-markup.xml (original)
+++ branches/quickbook-dev/status/explicit-failures-markup.xml 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -659,6 +659,7 @@
                 <toolset name="msvc-8.0*"/>
                 <toolset name="msvc-9.0*"/>
                 <toolset name="msvc-10.0*"/>
+ <toolset name="msvc-11.0*"/>
                 <toolset name="msvc-7.1*"/>
                 <toolset name="vacpp-10.1"/>
                 <toolset name="qcc-4*"/>
@@ -668,14 +669,6 @@
                 </note>
             </mark-failure>
         </test>
- <test name="lexical_cast_typedefed_wchar_test_runtime">
- <mark-failure>
- <toolset name="msvc-10.0*"/>
- <note author="Antony Polukhin">
- Some VC compilers take too long to compile and link this test.
- </note>
- </mark-failure>
- </test>
         <test name="lexical_cast_float_types_test">
             <mark-failure>
                 <toolset name="gcc-mingw-4.*"/>
@@ -1402,6 +1395,32 @@
         </mark-expected-failures>
 
         <mark-expected-failures>
+ <test name="correctly_disable"/>
+ <toolset name="gcc-4.2*"/>
+ <toolset name="gcc-4.3*"/>
+ <toolset name="gcc-4.4*"/>
+ <toolset name="gcc-4.5*"/>
+ <toolset name="gcc-4.6*"/>
+ <toolset name="gcc-4.7*"/>
+ <toolset name="gcc-mingw-*"/>
+ <toolset name="darwin-4.2*"/>
+ <toolset name="darwin-4.3*"/>
+ <toolset name="darwin-4.4*"/>
+ <toolset name="clang-darwin-trunk"/>
+ <toolset name="clang-darwin-normal"/>
+ <toolset name="clang-darwin-linux-2.9"/>
+ <toolset name="intel-linux-*"/>
+ <toolset name="intel-darwin-*"/>
+ <note author="Daniel James">
+ GCC's libstdc++ has a versioned namespace feature which breaks
+ container forwarding. I don't know how to detect it so I'm just
+ always disabling it, which means that a lot of setups which
+ means that it's disabled for a lot of setups where it could
+ work - which is what these failures represent.
+ </note>
+ </mark-expected-failures>
+
+ <mark-expected-failures>
             <test name="container_fwd"/>
             <test name="container_fwd_debug"/>
             <test name="container_no_fwd_test"/>
@@ -1424,6 +1443,7 @@
             <test name="container_fwd_debug"/>
             <toolset name="clang-darwin-0x"/>
             <toolset name="clang-darwin-normal"/>
+ <toolset name="clang-darwin-trunk"/>
             <note author="Daniel James">
             Some old versions of GCC's libstdc++ don't work on clang with
             _GLIBCXX_DEBUG defined.

Modified: branches/quickbook-dev/tools/boostbook/xsl/docbook-layout.xsl
==============================================================================
--- branches/quickbook-dev/tools/boostbook/xsl/docbook-layout.xsl (original)
+++ branches/quickbook-dev/tools/boostbook/xsl/docbook-layout.xsl 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -208,4 +208,19 @@
       <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
     </xsl:apply-templates>
   </xsl:template>
+
+
+ <!-- Adds the section ID as a class to the section DIV so that we
+ can style sections individually. -->
+ <xsl:template match="section" mode="class.value">
+ <xsl:param name="class" select="local-name(.)"/>
+ <xsl:param name="node" select="."/>
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id">
+ <xsl:with-param name="object" select="$node"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="concat($class,' ',translate($id, '.', '_'))"/>
+ </xsl:template>
+
 </xsl:stylesheet>

Modified: branches/quickbook-dev/tools/boostbook/xsl/html-single.xsl
==============================================================================
--- branches/quickbook-dev/tools/boostbook/xsl/html-single.xsl (original)
+++ branches/quickbook-dev/tools/boostbook/xsl/html-single.xsl 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -13,8 +13,21 @@
   <!-- Import the HTML stylesheet -->
   <xsl:import
     href="http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl"/>
- <xsl:import href="admon.xsl"/>
- <xsl:import href="relative-href.xsl"/>
+ <xsl:import
+ href="http://docbook.sourceforge.net/release/xsl/current/html/math.xsl"/>
+
+ <!-- Override the encoding to the more universally usefull utf8. -->
+ <xsl:output method="html" encoding="UTF-8" indent="no"/>
+
+ <!-- We have to make sure that our templates override all
+ docbook templates. Therefore, we include our own templates
+ instead of importing them. In order for this to work,
+ the stylesheets included here cannot also include each other -->
+ <xsl:include href="docbook-layout.xsl"/>
+ <xsl:include href="admon.xsl"/>
+ <xsl:include href="xref.xsl"/>
+ <xsl:include href="relative-href.xsl"/>
+ <xsl:include href="callout.xsl"/>
 
   <xsl:param name="admon.style"/>
   <xsl:param name="admon.graphics">1</xsl:param>

Modified: branches/quickbook-dev/tools/build/v2/tools/pgi.jam
==============================================================================
--- branches/quickbook-dev/tools/build/v2/tools/pgi.jam (original)
+++ branches/quickbook-dev/tools/build/v2/tools/pgi.jam 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -29,7 +29,7 @@
 
   common.handle-options pgi : $(condition) : $(l_command) : $(options) ;
     
- command_c = $(command_c[1--2]) $(l_command[-1]:B=cc) ;
+ command_c = $(command_c[1--2]) $(l_command[-1]:B=pgcc) ;
 
   toolset.flags pgi CONFIG_C_COMMAND $(condition) : $(command_c) ;
 

Modified: branches/quickbook-dev/tools/index.html
==============================================================================
--- branches/quickbook-dev/tools/index.html (original)
+++ branches/quickbook-dev/tools/index.html 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -83,9 +83,14 @@
          &nbsp;
          <li>
            <a href="../libs/wave/doc/wave_driver.html">Wave</a> - A Standards conformant C/C++
- preprocessor usable on top of any other compiler. Usable for instance for the debugging
- of the expansion of macros in your code or as a replacement for your built-in
- preprocessor. <br>
+ preprocessor usable on top of any other compiler. Usable for instance for the debugging
+ of the expansion of macros in your code or as a replacement for your built-in
+ preprocessor. <br>
+ &nbsp;
+ <li>
+ AutoIndex - A tool for indexing Boostbook/Docbook
+ documents. <br>
+ &nbsp;
       </li>
    </ul>
       <hr>

Modified: branches/quickbook-dev/tools/quickbook/src/quickbook.cpp
==============================================================================
--- branches/quickbook-dev/tools/quickbook/src/quickbook.cpp (original)
+++ branches/quickbook-dev/tools/quickbook/src/quickbook.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -36,7 +36,7 @@
 #pragma warning(disable:4355)
 #endif
 
-#define QUICKBOOK_VERSION "Quickbook Version 1.5.7 (dev)"
+#define QUICKBOOK_VERSION "Quickbook Version 1.5.8 (dev)"
 
 namespace quickbook
 {

Modified: branches/quickbook-dev/tools/regression/src/compiler_status.cpp
==============================================================================
--- branches/quickbook-dev/tools/regression/src/compiler_status.cpp (original)
+++ branches/quickbook-dev/tools/regression/src/compiler_status.cpp 2012-01-21 16:43:17 EST (Sat, 21 Jan 2012)
@@ -34,7 +34,7 @@
 namespace xml = boost::tiny_xml;
 
 #include <cstdlib> // for abort, exit
-#include <cctype> // for toupper
+#include <cctype> // for toupper, isdigit
 #include <string>
 #include <vector>
 #include <set>
@@ -46,6 +46,15 @@
 #include <stdexcept>
 #include <cassert>
 
+#include <stdio.h> // for popen, pclose
+#if defined(_MSC_VER)
+# define POPEN _popen
+# define PCLOSE _pclose
+#else
+# define POPEN popen
+# define PCLOSE pclose
+#endif
+
 using std::string;
 
 const string pass_msg( "Pass" );
@@ -107,15 +116,24 @@
   string revision( const fs::path & boost_root )
   {
     string rev;
- fs::path entries( boost_root / ".svn" / "entries" );
- fs::ifstream entries_file( entries );
- if ( entries_file )
- {
- std::getline( entries_file, rev );
- std::getline( entries_file, rev );
- std::getline( entries_file, rev );
- std::getline( entries_file, rev ); // revision number as a string
+ string command("cd ");
+ command += boost_root.string() + " & svn info";
+ FILE* fp = POPEN(command.c_str(), "r");
+ if (fp)
+ {
+ static const int line_max = 128;
+ char line[line_max];
+ while (fgets(line, line_max, fp) != NULL)
+ {
+ string ln(line);
+ if (ln.find("Revision: ") != string::npos)
+ {
+ for(auto itr = ln.begin()+10; itr != ln.end() && isdigit(*itr); ++itr)
+ rev += *itr;
+ }
+ }
     }
+ std::cout << "Revision: " << rev << std::endl;
     return rev;
   }
 


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk